Partymode.xml is just an example of a smartplaylist. Thus, we basically just need a GUI designed for construction of a smartplaylist.
Smartplaylists basically consist of a set of rules that are either ANDed or ORed together, and may be limited in length, and sorted by some criterion.
The GUI should therefore have:
1. Ability to configure a single rule. Such rules are "Artist like U2" or "Genre like Pop".
2. Ability to have a list of rules and add/subtract rules, and specify how the rules should be combined (either ANDed or ORed).
3. Ability to alter the limiting and sorting - these can probably be spin controls.
4. A name for the smartplaylist.
I suggest something like the "Add Source" dialog. A list control would hold the rules, clicking a rule would bring up a separate rule configuration dialog. Under the list would be the other configurable items (limits, sorting, name) and to the right of the list would be Add, Remove and Edit.
The first step is getting a design that will incorporate all we need to do.
Once the design is done, the coding isn't too much of a hassle
In addition to the above, we'd just need a good design idea for how to organise the choosing of the smartplaylist. One idea would be a simple selector on screen which showed the "source" for the party mode. As to where this should be, and what it should consist of (and how navigation is performed), I'll leave that up to you.
Cheers,
Jonathan