Ill comment on the skinning engine.
There are many methods and depending on how you actually build the skin will determine which method you should go with. If there is going to be a full blown skinning app that can be used and never have to hand edit the text files, this would be the easiest approach (but also more work for you to support the skinning app, bugs etc). I like the method of using Up and Down images as it cuts down significantly on file management and saving out dozens of images for each element. That alone will turn me off from skinning any app (main reason i havent skinned winamp and wont try). I also think using percent instead of pixels is a good idea, who wants to count pixels and percentages are just easier to understand for the average joe.
I think using everything in the app as a seperate object like you stated is a good idea, that way you can skin (build) the app layout the way you want it to be, and add or remove anything you like.
Skinning FP is very easy, but still rough around the edges in that you have to hand edit, and the skinning app that is available could be more robust but still gets the job done and makes things a lot easier. The skinning app for PhoneControl is great. It even packages up the skin for you to make it easier to distribute to your fellow carpc brotheren
One idea i like is the ability to use up and down images, define the area that is the object, and also the ability to layer another image on top of this area, say an icon (image). So if i design a skin and someone likes it , but wants to change the icons but keep everything else the same they can just create new icon images, or sliders. So a hybrid method (no pun) of using up/down images with layered seperate images would rock. Gives the ease of use to first timers and more flexibility and
power to those more experienced etc.
Scripting engine.
If you are using a scripting engine PLEASE make it as easy as possible. Something that does the scripting in the background would be nice. For example, if the play command is a 1 line function, it would be nice to just pick from a list of possible commands or elements and the script associated with that command or element would be used. If someone wants to go in and edit the script for that command so it does something else or combine functions into one element that too should be possible. Easiest for newbies and script pros will feel right at home.
I think you are on the right track.
A skin engine that will alow the user to completely change the look and functions of the app will please everybody and offer the maximum flexibility. If people want a mp3 centric driven player someone can create it, if someone else wants a menu centric player that also can be done, both running the same engine.

Bookmarks