Just wanted to post an update...
I decided to plunge forward with rebuilding the input system. I had originally decided to put this off, figuring that what I have now was "good enough", but after looking into it I decided that it would only delay a release by a week, so I'm plunging forward.
The goals of the input system changes are to allow mouse support (mostly for touchscreens, with an invisible mouse pointer, but also for those with trackball-only cabinets), flexibility on the number of songs shown at once, and flexibility on the number of songs per title strip. Being able to support mice also means having to be able to define icons in the skin to support little things like changing pages.
The good news is that most of this is now done. The splits are working and mouseable, but only the first 16 songs on any given screen are available because I haven't rebuilt the keyboard support yet; I'm working on that now. They new keyboard system writes into a message queue instead of taking actions directly, so I can have icons send or react to the same messages; it also allows any number of keys to perform the same function, which is necessary for cocktail cabinets.
You can now specify any number of songs per strip. If you specify 1, it looks like Arcade Jukebox; if you specify 2, it looks like it always has; and if you specify more than 2, it switches to an album sort and renders as a CD-style jukebox. Being able to change the number of title strips means that when all is done, it should be possible to make skins to emulate Arcade Jukebox or any of the CD jukeboxes, but rotatable and in DOS or Windows. Essentially I'll have a "Jukebox Construction Set" of sorts...
After I finish the new keyboard input, I'll need to add icon support, figure out how to rotate mouse input on a rotated monitor, and add support for CD cover art when in CD mode. After that, I'll call 3.0 done. I'm hoping to have a public beta this weekend.
Here's the change log so far for 3.0:
- Added multiple resolution support.
- Added rotation support.
- Added skin support.
- Added TrueType font support.
- Added multiple dot-matrix font sizes to support multiple resolutions.
- Added support for multiple song paths.
- Added ID3 support.
- Added function to release unused time slices so jukebox no longer uses 100% CPU in Windows.
- Added mouse support.
- Added mouse cursors to jukebox.dat.
- Added support for single (Arcade Jukebox-style) title strips in addition to the standard double (45-style) title strips.
- Added support for CD-style title cards; in this mode, songs are sorted by album, not artist.
- Added splash screen/indexer status display.
- Added file version block.
- Added BTN_EXIT; the ESC key is no longer hardcoded to exit.
- Added ability to disable unused displays
- Added ability to adjust the number of lines in Now Playing and Coming Up displays.
- Added album name to Now Playing display when at least 5 lines are displayed.
- Added ability to specify number of titlestrips per page; removed hardcoded setting of 8 titlestrips per page.
- Added JPG support.
- Rebuilt indexer; eliminated need for jukelist.
- Changed screenshot function to output BMP files instead of PCX.
- Moved play counts to song database.
- Moved graphics from datafile to individual files to support skins.
- Moved symbol definitions to symbols.ini.
- When using Artist Sort, the word "The" at the beginning of an artist name is now ignored for sorting purposes, so "The Beatles" now sorts under B rather than T.
- Songs are grouped on labels by album and in track order (when known) within an artist.
- Fixed major bug that was causing excessive CPU usage (labels continually redrawn).
- Fixed bug where songs wouldn't start in the background in Windows.
- Fixed bug where SongPath wasn't actually working in Windows.
- Fixed bug where files with a # in them could not be played.
- Fixed bug where read-only files could not be played.
- Fixed bug where last titlestrip wasn't being displayed
If anyone has any last minute small requests, now is the time... I can't guarantee that they'll all get in, but I'll see whhat I can do...
Thank you all for your support!
--Chris