(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

This commit is contained in:
rubidium 2010-07-09 22:25:25 +00:00
parent 58f1470129
commit d4da257ff9
4 changed files with 20 additions and 4 deletions

View File

@ -66,6 +66,22 @@ No suitable AI can be found
"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

View File

@ -165,8 +165,8 @@ void MusicDriver_DMusic::PlaySong(const char *filename)
/* 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 */

View File

@ -32,7 +32,7 @@ public:
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(); }

View File

@ -32,7 +32,7 @@ public:
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(); }