Perhaps this is the hardest part of software development and decisions. This is so because it determines how the software will look like, technically speaking, how it can be easily extended, effectiveness in terms of computer resources et al. It involves from simple decision like "what will program support?" to complex decision like "should player support Python Plugins?". So we have to be slow, careful with what we do here. This place will be divided into three parts: 1. Design Patterns 2. Features 3. UI Design
Before I go further here are libraries we will be using:
wxWidgets for UI and all non-playing core functionalities
libvlc - For Detecting and Playing files. The core of Player functions
undecided libraries (you can point good library for the functionality)
- Reading Meta data (for Audio/video??)
- Transcoding Audio and video
1. Design Patterns
I will not use the term to its strictness because I want it to be understood, in layman terms. So here it will mean both "SE design patterns" and "architectural design" interchangeably. Here are few Questions to be answered:
1. what functionalities should be visible globally and hence singletons?
2. The App is going to be modular, plugin based kind of architecture. So what languages should player support for plugins?
3. What should be exposed to plugins as Official Plugins API? (What can plugin access, manipulate or even delete?)
2. Features
Here is what we expect the player to do? Of course some features are must for player. So here are features that will be naturally supported and you should **not** mention them in your suggestions list
- NORMAL FUNCTIONALITIES: PLAYING, PAUSING, FF, REW, NEXT, PREVIOUS, PROGRESS (Audio and Video)
- PLAYLIST FUNCTIONALITIES: LOAD FILES AND SORT THEM TO VIDEO AND AUDIO SUB-LISTS (Also Sort each Per Meta tags i.e Artist/Album/et al).
- - FILE MANAGEMENT: IMPORT FILE/FOLDER (To Multimedia Directory), DELETE, RENAME FILES
You can suggest your feature here that i not mentioned
Suggested Additional Features
1. Screenshot Capture (
elmagnifico)
2. Editing Tags and Album Cover (@nurbert)
3. Streaming Youtube (CTO)
UI Design
The place for designers! You can design a mockup that will simulate features above. You can go ahead and add features that are not said here (Just mention them in same thread you upload your mockup).
Also here we need icon designers for all needed buttons and images.
If you feel I have left something here. Please include in your post and I will add it here. Also if something need clarification, point it out and I will try to explain even more!
Meanwhile if you have not casted your vote do so here:
https://www.jamiiforums.com/tech-ga...g-foss-media-player-name-voting-new-post.html
God bless you and Enjoy!
BH,
CTO Hosanna Higher Technologies!