summaryrefslogtreecommitdiff
path: root/src/music.cpp
AgeCommit message (Collapse)Author
2018-06-24Change: Modernise music control logic implementation (#6839)Niels Martin Hansen
Rewrite of almost the entire music control logic to a more modern style, hopefully also easier to understand. The old playlist handling made it look like arcane magic, which it doesn't have to be. - Playlists are now stored in std::vector of objects instead of arrays of bytes with magic sentinel values, that need to be rotated around all the time. Position in playlist is stored as a simple index. - The theme song is now reserved for the title screen, it doesn't play on any of the standard playlists, but is still available for use on custom playlists. - When the player enters/leaves the game from the main menu, the music always restarts. - Playback state (playing or not) is kept even if music becomes unavailable due to an empty playlist (or an empty music set), so it can restart immediately if music becomes available again. - The shuffle algorithm was changed to a standard Fisher-Yates. - Possibly better behavior when editing a custom playlist while it's playing. - Custom playlists should be compatible. - Framework for supporting custom playlists with songs from multiple music sets.
2018-06-15Fix: Don't complain if CAT music files are missing entirelyNiels Martin Hansen
Just complain if an index into a CAT file that exists is invalid.
2018-06-15Change #6684: Cutting point overrides for music base setsNiels Martin Hansen
This improves bad looping of title screen song from Windows TTD, and fixes a long silence at the end of "Can't get there from here" from Windows TTD.
2018-06-05Feature: Decoder for DOS version musicNiels Martin Hansen
This is based on reverse-engineering the TTD DOS driver for General MIDI music.
2018-06-05Codechange: Pass a MusicSongInfo struct instead of bare filename to music ↵Niels Martin Hansen
drivers. Preparation for later extending the info passed to music drivers.
2014-04-23(svn r26482) -Codechange: add an include that allows us to undefine/redefine ↵rubidium
"unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
2011-11-14(svn r23214) -Codechange: for base media sets pass the "search in tars" ↵rubidium
parameter to determine what to do
2011-05-02(svn r22410) -Document: some more bits ;)rubidium
2010-04-19(svn r19674) -Fix [FS#3774]: crash when the music/graphics metadata files ↵rubidium
were unreadable
2010-02-23(svn r19219) -Fix: having OpenMSX's files in a subdirectory did not work as ↵rubidium
it should.
2010-02-22(svn r19206) -Add: concept of fallback base sets, i.e. do not automatically ↵rubidium
load the NoMusic/NoSound sets when there is another set
2010-02-11(svn r19095) -Fix: segfault when a baseset has an empty metadata fieldyexo
2010-01-15(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, ↵rubidium
if a header require a header make it include that header
2009-12-23(svn r18610) -Codechange: don't consider a music set at all for 'best' set ↵rubidium
when it's missing files
2009-12-22(svn r18608) -Change: add the concept of music setsrubidium
2009-08-21(svn r17248) -Fix: add GPL license notice where appropriaterubidium
2009-01-03(svn r14810) -Codechange: use the proper style for global variables.rubidium
2008-05-06(svn r12971) -Documentation: add @file in files that missed them and add ↵rubidium
something more than whitespace as description of files that don't have a description.
2008-04-04(svn r12557) -Cleanup: use MAX_PATH at two more placessmatz
2007-03-03(svn r8987) -Cleanup: doxygen changes. Again. Mostly (still) @files missing ↵belugas
tags and (more than just) a few comments style.
2007-01-10(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files ↵KUDr
renamed to .cpp)