shithub: choc

Download patch

ref: 42fa6a211c6820004e4530b67f728729a1216e28
parent: 725c9b8ab73131f2d8a527e90ebc2938b6093948
author: ceski <[email protected]>
date: Wed Dec 14 06:39:11 EST 2022

win midi: Reduce messages sent on startup/reset (#1559)

* Update reverb and chorus defaults

* Don't send volume twice on startup

--- a/src/i_winmusic.c
+++ b/src/i_winmusic.c
@@ -122,6 +122,7 @@
     unsigned int elapsed_time;
     unsigned int saved_elapsed_time;
     unsigned int num_tracks;
+    boolean registered;
     boolean looping;
     boolean ff_loop;
     boolean ff_restart;
@@ -1226,7 +1227,7 @@
 
     volume_factor = sqrtf((float)volume / 120);
 
-    update_volume = true;
+    update_volume = song.registered;
 }
 
 static void I_WIN_StopSong(void)
@@ -1392,6 +1393,7 @@
     {
         song.tracks[i].iter = MIDI_IterateTrack(file, i);
     }
+    song.registered = true;
 
     ResetEvent(hBufferReturnEvent);
     ResetEvent(hExitEvent);
@@ -1419,6 +1421,7 @@
     song.elapsed_time = 0;
     song.saved_elapsed_time = 0;
     song.num_tracks = 0;
+    song.registered = false;
     song.looping = false;
     song.ff_loop = false;
     song.ff_restart = false;
--- a/src/setup/sound.c
+++ b/src/setup/sound.c
@@ -82,8 +82,8 @@
 static int midi_num_devices;
 static int midi_index;
 char *winmm_midi_device = NULL;
-int winmm_reverb_level = 40;
-int winmm_chorus_level = 0;
+int winmm_reverb_level = -1;
+int winmm_chorus_level = -1;
 #endif
 
 // DOS specific variables: these are unused but should be maintained