foxygit / doom Log in
commit 307a78f61e4ba9d94e20b441f92cf30f21e70392
Author:     Simon Howard <fraggle@soulsphere.org>
AuthorDate: Wed May 27 22:03:25 2015 -0400
Commit:     Simon Howard <fraggle@soulsphere.org>
CommitDate: Wed May 27 22:03:25 2015 -0400

    opl: Some minor tweaks to the last merge.

    Formatting, variable names, don't pollute global variable namespace.
---
 src/i_oplmusic.c | 31 ++++++++++++++++++++-----------
 src/i_sound.c    |  5 -----
 src/i_sound.h    |  5 +++--
 3 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/src/i_oplmusic.c b/src/i_oplmusic.c
index 2df361e5..54f92465 100644
--- a/src/i_oplmusic.c
+++ b/src/i_oplmusic.c
@@ -297,7 +297,7 @@ static const unsigned int volume_mapping_table[] = {
     124, 124, 125, 125, 126, 126, 127, 127
 };

-opl_driver_ver_t opl_drv_ver = opl_v_new;
+static opl_driver_ver_t opl_drv_ver = opl_v_new;
 static boolean music_initialized = false;

 //static boolean musicpaused = false;
@@ -433,12 +433,12 @@ static void ReleaseVoice(opl_voice_t *voice)
 {
     opl_voice_t **rover;
     opl_voice_t *next;
-    boolean doublev;
+    boolean double_voice;

     voice->channel = NULL;
     voice->note = 0;

-    doublev = voice->current_instr_voice != 0;
+    double_voice = voice->current_instr_voice != 0;
     next = voice->next;

     // Remove from alloced list.
@@ -457,7 +457,7 @@ static void ReleaseVoice(opl_voice_t *voice)
     *rover = voice;
     voice->next = NULL;

-    if (next != NULL && doublev && opl_drv_ver == opl_v_old)
+    if (next != NULL && double_voice && opl_drv_ver == opl_v_old)
     {
         VoiceKeyOff(next);
         ReleaseVoice(next);
@@ -684,7 +684,7 @@ static void KeyOffEvent(opl_track_data_t *track, midi_event_t *event)
     rover = voice_alloced_list;
     prev = NULL;

-    while (rover!=NULL)
+    while (rover != NULL)
     {
         if (rover->channel == channel && rover->key == key)
         {
@@ -744,6 +744,9 @@ static void ReplaceExistingVoice(void)
     ReleaseVoice(result);
 }

+// Alternate version of ReplaceExistingVoice() used when emulating old
+// versions of the DMX library used in Heretic and Hexen.
+
 static void ReplaceExistingVoiceOld(opl_channel_data_t *channel)
 {
     opl_voice_t *rover;
@@ -930,7 +933,7 @@ static void KeyOnEvent(opl_track_data_t *track, midi_event_t *event)
     genmidi_instr_t *instrument;
     opl_channel_data_t *channel;
     unsigned int note, key, volume;
-    boolean doublev;
+    boolean double_voice;

 /*
     printf("note on: channel %i, %i, %i\n",
@@ -973,15 +976,16 @@ static void KeyOnEvent(opl_track_data_t *track, midi_event_t *event)
     {
         instrument = channel->instrument;
     }
-    doublev = (SHORT(instrument->flags) & GENMIDI_FLAG_2VOICE) != 0;

-	if (opl_drv_ver == opl_v_old)
+    double_voice = (SHORT(instrument->flags) & GENMIDI_FLAG_2VOICE) != 0;
+
+    if (opl_drv_ver == opl_v_old)
     {
         if (voice_alloced_num == OPL_NUM_VOICES)
         {
             ReplaceExistingVoiceOld(channel);
         }
-        if (voice_alloced_num == OPL_NUM_VOICES - 1 && doublev)
+        if (voice_alloced_num == OPL_NUM_VOICES - 1 && double_voice)
         {
             ReplaceExistingVoiceOld(channel);
         }
@@ -989,7 +993,7 @@ static void KeyOnEvent(opl_track_data_t *track, midi_event_t *event)
         // Find and program a voice for this instrument.  If this
         // is a double voice instrument, we must do this twice.

-        if (doublev)
+        if (double_voice)
         {
             VoiceKeyOn(channel, instrument, 1, note, key, volume);
         }
@@ -1008,7 +1012,7 @@ static void KeyOnEvent(opl_track_data_t *track, midi_event_t *event)

         VoiceKeyOn(channel, instrument, 0, note, key, volume);

-        if (doublev)
+        if (double_voice)
         {
             VoiceKeyOn(channel, instrument, 1, note, key, volume);
         }
@@ -1626,6 +1630,11 @@ music_module_t music_opl_module =
     NULL,  // Poll
 };

+void I_SetOPLDriverVer(opl_driver_ver_t ver)
+{
+    opl_drv_ver = ver;
+}
+
 //----------------------------------------------------------------------
 //
 // Development / debug message generation, to help developing GENMIDI
diff --git a/src/i_sound.c b/src/i_sound.c
index 6763fa37..73442cbd 100644
--- a/src/i_sound.c
+++ b/src/i_sound.c
@@ -473,8 +473,3 @@ void I_BindSoundVariables(void)
 #endif
 }

-void I_SetOPLDriverVer(opl_driver_ver_t ver)
-{
-    opl_drv_ver = ver;
-}
-
diff --git a/src/i_sound.h b/src/i_sound.h
index a240c48b..4490b96a 100644
--- a/src/i_sound.h
+++ b/src/i_sound.h
@@ -234,9 +234,10 @@ extern char *snd_musiccmd;

 void I_BindSoundVariables(void);

+// DMX version to emulate for OPL emulation:
 typedef enum {
-    opl_v_old, // hexen heretic
-    opl_v_new // doom strife
+    opl_v_old,   // Hexen, Heretic
+    opl_v_new    // Doom, Strife
 } opl_driver_ver_t;

 void I_SetOPLDriverVer(opl_driver_ver_t ver);