aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/adlmidi.cpp6
-rw-r--r--src/adlmidi_load.cpp15
-rw-r--r--src/adlmidi_midiplay.cpp22
-rw-r--r--src/adlmidi_private.hpp12
4 files changed, 24 insertions, 31 deletions
diff --git a/src/adlmidi.cpp b/src/adlmidi.cpp
index 8f07d72..9a0aaa4 100644
--- a/src/adlmidi.cpp
+++ b/src/adlmidi.cpp
@@ -525,9 +525,9 @@ ADLMIDI_EXPORT int adl_play(ADL_MIDIPlayer *device, int sampleCount, short *out)
n_periodCountStereo = static_cast<ssize_t>(setup.carry);
setup.carry -= n_periodCountStereo;
- if(setup.SkipForward > 0)
- setup.SkipForward -= 1;
- else
+ //if(setup.SkipForward > 0)
+ // setup.SkipForward -= 1;
+ //else
{
if((player->atEnd) && (setup.delay <= 0.0))
break;//Stop to fetch samples at reaching the song end with disabled loop
diff --git a/src/adlmidi_load.cpp b/src/adlmidi_load.cpp
index 387ca12..6f68a11 100644
--- a/src/adlmidi_load.cpp
+++ b/src/adlmidi_load.cpp
@@ -361,19 +361,12 @@ bool MIDIplay::LoadMIDI(MIDIplay::fileReader &fr)
}
/**** Set all properties BEFORE starting of actial file reading! ****/
-
m_setup.stored_samples = 0;
m_setup.backup_samples_size = 0;
-
- /*
- * TODO: Implement tri-state: "AUTO (use bank default setup), force On, force Off"
- * for thuse four flags:
- */
- opl.HighTremoloMode = m_setup.HighTremoloMode;
- opl.HighVibratoMode = m_setup.HighVibratoMode;
- opl.AdlPercussionMode = m_setup.AdlPercussionMode;
- opl.ScaleModulators = m_setup.ScaleModulators;
-
+ opl.HighTremoloMode = m_setup.HighTremoloMode == -1 ? adlbanksetup[m_setup.AdlBank].deepTremolo : (bool)m_setup.HighTremoloMode;
+ opl.HighVibratoMode = m_setup.HighVibratoMode == -1 ? adlbanksetup[m_setup.AdlBank].deepVibrato : (bool)m_setup.HighVibratoMode;
+ opl.AdlPercussionMode = m_setup.AdlPercussionMode == -1 ? adlbanksetup[m_setup.AdlBank].adLibPercussions : (bool)m_setup.AdlPercussionMode;
+ opl.ScaleModulators = m_setup.ScaleModulators == -1 ? adlbanksetup[m_setup.AdlBank].scaleModulators : (bool)m_setup.ScaleModulators;
opl.LogarithmicVolumes = m_setup.LogarithmicVolumes;
//opl.CartoonersVolumes = false;
opl.m_musicMode = OPL3::MODE_MIDI;
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp
index 27ec8d4..fa95e32 100644
--- a/src/adlmidi_midiplay.cpp
+++ b/src/adlmidi_midiplay.cpp
@@ -639,13 +639,13 @@ MIDIplay::MIDIplay():
m_setup.AdlBank = 0;
m_setup.NumFourOps = 7;
m_setup.NumCards = 2;
- m_setup.HighTremoloMode = false;
- m_setup.HighVibratoMode = false;
- m_setup.AdlPercussionMode = false;
- m_setup.LogarithmicVolumes = false;
- m_setup.SkipForward = 0;
+ m_setup.HighTremoloMode = -1;
+ m_setup.HighVibratoMode = -1;
+ m_setup.AdlPercussionMode = -1;
+ m_setup.LogarithmicVolumes = false;
+ //m_setup.SkipForward = 0;
m_setup.loopingIsEnabled = false;
- m_setup.ScaleModulators = false;
+ m_setup.ScaleModulators = -1;
m_setup.delay = 0.0;
m_setup.carry = 0.0;
m_setup.stored_samples = 0;
@@ -654,11 +654,11 @@ MIDIplay::MIDIplay():
opl.NumCards = m_setup.NumCards;
opl.AdlBank = m_setup.AdlBank;
opl.NumFourOps = m_setup.NumFourOps;
- opl.LogarithmicVolumes = m_setup.LogarithmicVolumes;
- opl.HighTremoloMode = m_setup.HighTremoloMode;
- opl.HighVibratoMode = m_setup.HighVibratoMode;
- opl.AdlPercussionMode = m_setup.AdlPercussionMode;
- opl.ScaleModulators = m_setup.ScaleModulators;
+ opl.LogarithmicVolumes = m_setup.LogarithmicVolumes;
+ opl.HighTremoloMode = m_setup.HighTremoloMode == -1 ? adlbanksetup[m_setup.AdlBank].deepTremolo : (bool)m_setup.HighTremoloMode;
+ opl.HighVibratoMode = m_setup.HighVibratoMode == -1 ? adlbanksetup[m_setup.AdlBank].deepVibrato : (bool)m_setup.HighVibratoMode;
+ opl.AdlPercussionMode = m_setup.AdlPercussionMode == -1 ? adlbanksetup[m_setup.AdlBank].adLibPercussions : (bool)m_setup.AdlPercussionMode;
+ opl.ScaleModulators = m_setup.ScaleModulators == -1 ? adlbanksetup[m_setup.AdlBank].scaleModulators : (bool)m_setup.ScaleModulators;
}
uint64_t MIDIplay::ReadVarLen(uint8_t **ptr)
diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp
index a0f2a51..42e24e2 100644
--- a/src/adlmidi_private.hpp
+++ b/src/adlmidi_private.hpp
@@ -629,14 +629,14 @@ public:
unsigned int AdlBank;
unsigned int NumFourOps;
unsigned int NumCards;
- bool HighTremoloMode;
- bool HighVibratoMode;
- bool AdlPercussionMode;
+ int HighTremoloMode;
+ int HighVibratoMode;
+ int AdlPercussionMode;
bool LogarithmicVolumes;
int VolumeModel;
- unsigned int SkipForward;
- bool loopingIsEnabled;
- bool ScaleModulators;
+ //unsigned int SkipForward;
+ bool loopingIsEnabled;
+ int ScaleModulators;
double delay;
double carry;