aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_private.cpp
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2018-06-01 01:10:41 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2018-06-01 01:10:41 +0300
commit274c9d6b64f8ba8461d398b24c0c6c99f94d03e4 (patch)
tree4bdd98be1fa580d4705167351828794e9ed9c226 /src/adlmidi_private.cpp
parent562f5cb9841109dc2ca213ffe976b11576733b79 (diff)
downloadlibADLMIDI-274c9d6b64f8ba8461d398b24c0c6c99f94d03e4.tar.gz
libADLMIDI-274c9d6b64f8ba8461d398b24c0c6c99f94d03e4.tar.bz2
libADLMIDI-274c9d6b64f8ba8461d398b24c0c6c99f94d03e4.zip
Improve the automatic 4op channels count choosing formula
Diffstat (limited to 'src/adlmidi_private.cpp')
-rw-r--r--src/adlmidi_private.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/adlmidi_private.cpp b/src/adlmidi_private.cpp
index 7a8b3b2..83a40aa 100644
--- a/src/adlmidi_private.cpp
+++ b/src/adlmidi_private.cpp
@@ -61,10 +61,25 @@ int adlRefreshNumCards(ADL_MIDIPlayer *device)
}
}
+ unsigned NumFourOps = 0;
+ // All 2ops (no 4ops)
+ if((n_fourop[0] == 0) && (n_fourop[1] == 0))
+ NumFourOps = 0;
+ // All 2op melodics and Some (or All) 4op drums
+ else if((n_fourop[0] == 0) && (n_fourop[1] > 0))
+ NumFourOps = (play->m_setup.NumCards == 1) ? 2 : play->m_setup.NumCards * 4;
+ // Many 4op melodics
+ else if((n_fourop[0] >= (n_total[0] * 7) / 8))
+ NumFourOps = play->m_setup.NumCards * 6;
+ // Few 4op melodics
+ else if(n_fourop[0] > 0)
+ NumFourOps = play->m_setup.NumCards * 4;
+
+/* //Old formula
unsigned NumFourOps = ((n_fourop[0] == 0) && (n_fourop[1] == 0)) ? 0
: (n_fourop[0] >= (n_total[0] * 7) / 8) ? play->m_setup.NumCards * 6
- : (n_fourop[0] < (n_total[0] * 1) / 8) ? 0
: (play->m_setup.NumCards == 1 ? 1 : play->m_setup.NumCards * 4);
+*/
play->opl.NumFourOps = play->m_setup.NumFourOps = NumFourOps;