I've been working on, more for a hobbyist sake (and my personal use), a music player program. Actually playing the files is not at issue, but what is more at issue is the layout of the functions. The main things I wanted to accomplish in terms of requirements, which will hopefully help guide in what I'm asking:
- Minimally intrusive. More or less, the program sits in the notification area and only shows forms when certain functions require it. A popup menu controls the player.
- Able to take a collection of music files and select specific files based on certain criteria and play them continually until the user stops the program.
- Able to select/load specific files on demand.
- Offer certain controls related to the player itself and the ability to skip tracks when they are played.
While I have it more or less functional, minus a few crashes that need to get fixed, the whole layout of the functions seems a bit awkward and I've been struggling to think of a better way to handle it:
Jukebox Controls - related to #2 (Load collection, settings, start, stop set).
File Controls - related to #3 (Load/Previous/Next)
Player Controls - related to #4.
Now, for a number of reasons, this layout is striking me as awkward, both in terms of coding the functions (the actual player code has an "open" and "playing" event that's a little different depending on what part is in operation) and using the program. This seems to especially happen when it comes to using the file controls for the same general functions in the Jukebox set of functions. I thought about completely disabling the other group of functions when the other is in use (i.e. "File Controls" is grayed out while "Jukebox" function is in use) and duplicating the "Next" function, but that seems a bit awkward, too.
Since I'm more or less at a loss thinking of a way to do this that seems "natural", I thought I'd ask here. Does anyone have any suggestions on how to change the layout of the menu to make things act smoother?
Edit: As I wrote before, the program operates in the system notification area using a popup menu. There's really not much to see for a screen shot. But I restated the popup menu structure a little more literally here: