aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_private.hpp
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2017-12-16 04:01:26 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2017-12-16 04:01:26 +0300
commit93b8726a3db33023f2c5a0cc5efba58583b87fb4 (patch)
tree12690d5f3b35a878ae537a731c2d43d6c8f75746 /src/adlmidi_private.hpp
parent7fd6b02c1f4b64d30b4d744d9e83eb6fe61fdee1 (diff)
downloadlibADLMIDI-93b8726a3db33023f2c5a0cc5efba58583b87fb4.tar.gz
libADLMIDI-93b8726a3db33023f2c5a0cc5efba58583b87fb4.tar.bz2
libADLMIDI-93b8726a3db33023f2c5a0cc5efba58583b87fb4.zip
Added realtime API, Experimental, not tested
- Added Real-time public API, needed a test! (try to implement dummy VLC plugin with it) - Added abillity to change deep flags without song restart or a chip reset
Diffstat (limited to 'src/adlmidi_private.hpp')
-rw-r--r--src/adlmidi_private.hpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp
index 46187bc..cb100dc 100644
--- a/src/adlmidi_private.hpp
+++ b/src/adlmidi_private.hpp
@@ -166,6 +166,7 @@ public:
};
class MIDIplay;
+struct ADL_MIDIPlayer;
class OPL3
{
public:
@@ -263,6 +264,7 @@ public:
void Pan(unsigned c, unsigned value);
void Silence();
void updateFlags();
+ void updateDeepFlags();
void ChangeVolumeRangesModel(ADLMIDI_VolumeModels volumeModel);
void Reset(unsigned long PCM_RATE);
};
@@ -300,12 +302,15 @@ struct MIDIEventHooks
class MIDIplay
{
+ friend void adl_reset(struct ADL_MIDIPlayer*);
public:
MIDIplay();
~MIDIplay()
{}
+ void applySetup();
+
/**********************Internal structures and classes**********************/
/**
@@ -852,6 +857,12 @@ public:
double Tick(double s, double granularity);
/**
+ * @brief Process extra iterators like vibrato or arpeggio
+ * @param s seconds since last call
+ */
+ void TickIteratos(double s);
+
+ /**
* @brief Change current position to specified time position in seconds
* @param seconds Absolute time position in seconds
*/
@@ -950,6 +961,7 @@ private:
//void UpdatePortamento(unsigned MidCh)
void NoteUpdate_All(uint16_t MidCh, unsigned props_mask);
void NoteOff(uint16_t MidCh, uint8_t note);
+
void UpdateVibrato(double amount);
void UpdateArpeggio(double /*amount*/);