aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_private.hpp
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2018-06-19 22:57:06 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2018-06-19 22:57:06 +0300
commitad60170e94d599c76351198ca4052d0cd5c9602e (patch)
tree4ab583ebdc831a4ea40082dc921475d95819545b /src/adlmidi_private.hpp
parentc0873278718da57ff19194377a35601027926c5f (diff)
parent105c5db749836ff25c03ae7abf3b2348ecb72c86 (diff)
downloadlibADLMIDI-ad60170e94d599c76351198ca4052d0cd5c9602e.tar.gz
libADLMIDI-ad60170e94d599c76351198ca4052d0cd5c9602e.tar.bz2
libADLMIDI-ad60170e94d599c76351198ca4052d0cd5c9602e.zip
Merge branch 'master' into stable
Diffstat (limited to 'src/adlmidi_private.hpp')
-rw-r--r--src/adlmidi_private.hpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp
index 2499bad..0e63b5a 100644
--- a/src/adlmidi_private.hpp
+++ b/src/adlmidi_private.hpp
@@ -245,6 +245,8 @@ public:
bool AdlPercussionMode;
//! Carriers-only are scaled by default by volume level. This flag will tell to scale modulators too.
bool ScaleModulators;
+ //! Run emulator at PCM rate if that possible. Reduces sounding accuracy, but decreases CPU usage on lower rates.
+ bool runAtPcmRate;
// ! Required to play CMF files. Can be turned on by using of "CMF" volume model
//bool LogarithmicVolumes; //[REPLACED WITH "m_volumeScale == VOLUME_NATIVE", DEPRECATED!!!]
// ! Required to play EA-MUS files [REPLACED WITH "m_musicMode", DEPRECATED!!!]
@@ -294,7 +296,7 @@ public:
#ifndef ADLMIDI_HW_OPL
void ClearChips();
#endif
- void Reset(int emulator, unsigned long PCM_RATE);
+ void Reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler);
};
@@ -933,6 +935,7 @@ public:
struct Setup
{
int emulator;
+ bool runAtPcmRate;
unsigned int AdlBank;
unsigned int NumFourOps;
unsigned int NumCards;
@@ -984,6 +987,9 @@ private:
//! Counter of arpeggio processing
size_t m_arpeggioCounter;
+ //! Audio tick counter
+ uint32_t m_audioTickCounter;
+
#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER
std::vector<std::vector<uint8_t> > TrackData;
@@ -1181,6 +1187,9 @@ public:
void realTime_panic();
+ // Audio rate tick handler
+ void AudioTick(uint32_t chipId, uint32_t rate);
+
private:
enum
{
@@ -1249,6 +1258,7 @@ struct FourChars
};
*/
+extern void adl_audioTickHandler(void *instance, uint32_t chipId, uint32_t rate);
extern int adlRefreshNumCards(ADL_MIDIPlayer *device);