1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-19 04:29:09 +00:00

Change #6685: Replace Win32 music driver with one not depending on MCI

MCI MIDI is poorly supported on newer versions of Windows and can cause large
delays at the beginning of tracks.

The new driver is based on a from-scratch reader for Standard MIDI Files. This
should be re-usable in other music drivers too, and can allow for finer control
of playback in general.

It also provides a better framework for reading MIDI data from other formats
than just SMF.
This commit is contained in:
Niels Martin Hansen
2018-03-10 22:23:10 +01:00
committed by Michael Lutz
parent 9959cd9522
commit b902e01e10
13 changed files with 1047 additions and 129 deletions

View File

@@ -569,6 +569,8 @@
<ClInclude Include="..\src\news_func.h" />
<ClInclude Include="..\src\news_gui.h" />
<ClInclude Include="..\src\news_type.h" />
<ClInclude Include="..\src\music\midi.h" />
<ClInclude Include="..\src\music\midifile.hpp" />
<ClInclude Include="..\src\music\null_m.h" />
<ClInclude Include="..\src\sound\null_s.h" />
<ClInclude Include="..\src\video\null_v.h" />
@@ -1290,6 +1292,7 @@
<ClCompile Include="..\src\video\win32_v.cpp" />
<ClCompile Include="..\src\music\dmusic.cpp" />
<ClCompile Include="..\src\music\null_m.cpp" />
<ClCompile Include="..\src\music\midifile.cpp" />
<ClCompile Include="..\src\music\win32_m.cpp" />
<ClCompile Include="..\src\sound\null_s.cpp" />
<ClCompile Include="..\src\sound\sdl_s.cpp" />

View File

@@ -864,6 +864,12 @@
<ClInclude Include="..\src\news_type.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\music\midi.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\music\midifile.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\music\null_m.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -3027,6 +3033,9 @@
<ClCompile Include="..\src\music\null_m.cpp">
<Filter>Music</Filter>
</ClCompile>
<ClCompile Include="..\src\music\midifile.cpp">
<Filter>Music</Filter>
</ClCompile>
<ClCompile Include="..\src\music\win32_m.cpp">
<Filter>Music</Filter>
</ClCompile>

View File

@@ -590,6 +590,8 @@
<ClInclude Include="..\src\news_func.h" />
<ClInclude Include="..\src\news_gui.h" />
<ClInclude Include="..\src\news_type.h" />
<ClInclude Include="..\src\music\midi.h" />
<ClInclude Include="..\src\music\midifile.hpp" />
<ClInclude Include="..\src\music\null_m.h" />
<ClInclude Include="..\src\sound\null_s.h" />
<ClInclude Include="..\src\video\null_v.h" />
@@ -1311,6 +1313,7 @@
<ClCompile Include="..\src\video\win32_v.cpp" />
<ClCompile Include="..\src\music\dmusic.cpp" />
<ClCompile Include="..\src\music\null_m.cpp" />
<ClCompile Include="..\src\music\midifile.cpp" />
<ClCompile Include="..\src\music\win32_m.cpp" />
<ClCompile Include="..\src\sound\null_s.cpp" />
<ClCompile Include="..\src\sound\sdl_s.cpp" />

View File

@@ -864,6 +864,12 @@
<ClInclude Include="..\src\news_type.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\music\midi.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\music\midifile.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\music\null_m.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -3027,6 +3033,9 @@
<ClCompile Include="..\src\music\null_m.cpp">
<Filter>Music</Filter>
</ClCompile>
<ClCompile Include="..\src\music\midifile.cpp">
<Filter>Music</Filter>
</ClCompile>
<ClCompile Include="..\src\music\win32_m.cpp">
<Filter>Music</Filter>
</ClCompile>

View File

@@ -590,6 +590,8 @@
<ClInclude Include="..\src\news_func.h" />
<ClInclude Include="..\src\news_gui.h" />
<ClInclude Include="..\src\news_type.h" />
<ClInclude Include="..\src\music\midi.h" />
<ClInclude Include="..\src\music\midifile.hpp" />
<ClInclude Include="..\src\music\null_m.h" />
<ClInclude Include="..\src\sound\null_s.h" />
<ClInclude Include="..\src\video\null_v.h" />
@@ -1311,6 +1313,7 @@
<ClCompile Include="..\src\video\win32_v.cpp" />
<ClCompile Include="..\src\music\dmusic.cpp" />
<ClCompile Include="..\src\music\null_m.cpp" />
<ClCompile Include="..\src\music\midifile.cpp" />
<ClCompile Include="..\src\music\win32_m.cpp" />
<ClCompile Include="..\src\sound\null_s.cpp" />
<ClCompile Include="..\src\sound\sdl_s.cpp" />

View File

@@ -864,6 +864,12 @@
<ClInclude Include="..\src\news_type.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\music\midi.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\music\midifile.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\music\null_m.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -3027,6 +3033,9 @@
<ClCompile Include="..\src\music\null_m.cpp">
<Filter>Music</Filter>
</ClCompile>
<ClCompile Include="..\src\music\midifile.cpp">
<Filter>Music</Filter>
</ClCompile>
<ClCompile Include="..\src\music\win32_m.cpp">
<Filter>Music</Filter>
</ClCompile>

View File

@@ -1462,6 +1462,14 @@
RelativePath=".\..\src\news_type.h"
>
</File>
<File
RelativePath=".\..\src\music\midi.h"
>
</File>
<File
RelativePath=".\..\src\music\midifile.hpp"
>
</File>
<File
RelativePath=".\..\src\music\null_m.h"
>
@@ -4458,6 +4466,10 @@
RelativePath=".\..\src\music\null_m.cpp"
>
</File>
<File
RelativePath=".\..\src\music\midifile.cpp"
>
</File>
<File
RelativePath=".\..\src\music\win32_m.cpp"
>

View File

@@ -1459,6 +1459,14 @@
RelativePath=".\..\src\news_type.h"
>
</File>
<File
RelativePath=".\..\src\music\midi.h"
>
</File>
<File
RelativePath=".\..\src\music\midifile.hpp"
>
</File>
<File
RelativePath=".\..\src\music\null_m.h"
>
@@ -4455,6 +4463,10 @@
RelativePath=".\..\src\music\null_m.cpp"
>
</File>
<File
RelativePath=".\..\src\music\midifile.cpp"
>
</File>
<File
RelativePath=".\..\src\music\win32_m.cpp"
>