Mercurial > hg > openttd
changeset 15456:191f2e65fb67 draft
(svn r20105) -Revert (r20102) [FS#3938]: resetting DirectMusic completely, although working, causes a temporary freeze of OpenTTD. As MCI behaves better than DirectMusic that has become the default music driver; small delay between songs beats wrongly pitched/bad sounding songs
author | rubidium <rubidium@openttd.org> |
---|---|
date | Fri, 09 Jul 2010 22:25:25 +0000 |
parents | 1482501b8d08 |
children | a4ca05c4772a |
files | known-bugs.txt src/music/dmusic.cpp src/music/dmusic.h src/music/win32_m.h |
diffstat | 4 files changed, 20 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/known-bugs.txt +++ b/known-bugs.txt @@ -66,6 +66,22 @@ "AI Settings" -> "Select AI" -> "Check Online Content" which is also accessed via the main menu. +Long delay between switching songs/music + On Windows there is a delay of a (few) second(s) between switching of + songs for the "win32" driver. This delay is caused by the fact that + opening a MIDI file via MCI is extremely slow. + + DirectMusic, known as "dmusic" in OpenTTD, has a much shorter delay. + However, under some circumstances DirectMusic does not reset its + state properly causing wrongly pitched/bad sounding songs. This + problem is in DirectMusic as it is reproducable with Microsoft's + DirectMusic Producer. DirectMusic has been deprecated since 2004 + and as such has no support for 64 bits OpenTTD. + + As a delay is favourable over bad sounding music the "win32" driver + is the default driver for OpenTTD. You can change this default by + setting the "musicdriver" in your openttd.cfg to "dmusic". + Clipping problems [FS#119] In some cases sprites are not drawn as one would expect. Examples of this are aircraft that might be hidden below the runway or trees that
--- a/src/music/dmusic.cpp +++ b/src/music/dmusic.cpp @@ -165,8 +165,8 @@ /* release the existing segment if we have any */ if (segment != NULL) { - this->Stop(); - if (this->Start(NULL) != NULL) return; + segment->Release(); + segment = NULL; } /* make a new segment */
--- a/src/music/dmusic.h +++ b/src/music/dmusic.h @@ -32,7 +32,7 @@ class FMusicDriver_DMusic: public MusicDriverFactory<FMusicDriver_DMusic> { public: - static const int priority = 10; + static const int priority = 5; /* virtual */ const char *GetName() { return "dmusic"; } /* virtual */ const char *GetDescription() { return "DirectMusic MIDI Driver"; } /* virtual */ Driver *CreateInstance() { return new MusicDriver_DMusic(); }
--- a/src/music/win32_m.h +++ b/src/music/win32_m.h @@ -32,7 +32,7 @@ class FMusicDriver_Win32: public MusicDriverFactory<FMusicDriver_Win32> { public: - static const int priority = 5; + static const int priority = 10; /* virtual */ const char *GetName() { return "win32"; } /* virtual */ const char *GetDescription() { return "Win32 Music Driver"; } /* virtual */ Driver *CreateInstance() { return new MusicDriver_Win32(); }