set ActiveSensing Periodicity in ms
Gives more control over the bool value. Typical value is 300 (ms) - an Active Sensing command is send every 300ms; or 0 (zero) to disable sending ActiveSensing
This commit is contained in:
parent
771f923223
commit
35d1d6216a
|
|
@ -247,7 +247,7 @@ private:
|
||||||
MidiMessage mMessage;
|
MidiMessage mMessage;
|
||||||
|
|
||||||
unsigned long mLastMessageSentTime;
|
unsigned long mLastMessageSentTime;
|
||||||
bool mSenderActiveSensingActivated;
|
unsigned long mSenderActiveSensingPeriodicity;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline StatusByte getStatus(MidiType inType,
|
inline StatusByte getStatus(MidiType inType,
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ inline MidiInterface<Encoder, Settings, Platform>::MidiInterface(Encoder& inEnco
|
||||||
, mCurrentRpnNumber(0xffff)
|
, mCurrentRpnNumber(0xffff)
|
||||||
, mCurrentNrpnNumber(0xffff)
|
, mCurrentNrpnNumber(0xffff)
|
||||||
, mLastMessageSentTime(0)
|
, mLastMessageSentTime(0)
|
||||||
, mSenderActiveSensingActivated(false)
|
, mSenderActiveSensingPeriodicity(0)
|
||||||
, mThruActivated(false)
|
, mThruActivated(false)
|
||||||
, mThruFilterMode(Thru::Full)
|
, mThruFilterMode(Thru::Full)
|
||||||
{
|
{
|
||||||
|
|
@ -98,7 +98,7 @@ void MidiInterface<Encoder, Settings, Platform>::begin(Channel inChannel)
|
||||||
mCurrentRpnNumber = 0xffff;
|
mCurrentRpnNumber = 0xffff;
|
||||||
mCurrentNrpnNumber = 0xffff;
|
mCurrentNrpnNumber = 0xffff;
|
||||||
|
|
||||||
mSenderActiveSensingActivated = Settings::UseSenderActiveSensing;
|
mSenderActiveSensingPeriodicity = Settings::SenderActiveSensingPeriodicity;
|
||||||
mLastMessageSentTime = Platform::now();
|
mLastMessageSentTime = Platform::now();
|
||||||
|
|
||||||
mMessage.valid = false;
|
mMessage.valid = false;
|
||||||
|
|
@ -184,7 +184,7 @@ void MidiInterface<Encoder, Settings, Platform>::send(MidiType inType,
|
||||||
sendRealTime(inType); // System Real-time and 1 byte.
|
sendRealTime(inType); // System Real-time and 1 byte.
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mSenderActiveSensingActivated)
|
if (mSenderActiveSensingPeriodicity)
|
||||||
mLastMessageSentTime = Platform::now();
|
mLastMessageSentTime = Platform::now();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -676,7 +676,7 @@ inline bool MidiInterface<Encoder, Settings, Platform>::read(Channel inChannel)
|
||||||
// assume that the connection has been terminated. At
|
// assume that the connection has been terminated. At
|
||||||
// termination, the receiver will turn off all voices and return to
|
// termination, the receiver will turn off all voices and return to
|
||||||
// normal (non- active sensing) operation.
|
// normal (non- active sensing) operation.
|
||||||
if (mSenderActiveSensingActivated && (Platform::now() - mLastMessageSentTime) > 270)
|
if ((mSenderActiveSensingPeriodicity > 0) && (Platform::now() - mLastMessageSentTime) > mSenderActiveSensingPeriodicity)
|
||||||
{
|
{
|
||||||
sendRealTime(ActiveSensing);
|
sendRealTime(ActiveSensing);
|
||||||
mLastMessageSentTime = Platform::now();
|
mLastMessageSentTime = Platform::now();
|
||||||
|
|
|
||||||
|
|
@ -68,9 +68,12 @@ struct DefaultSettings
|
||||||
message each 300ms (max), and if it does not then it will
|
message each 300ms (max), and if it does not then it will
|
||||||
assume that the connection has been terminated. At
|
assume that the connection has been terminated. At
|
||||||
termination, the receiver will turn off all voices and return to
|
termination, the receiver will turn off all voices and return to
|
||||||
normal (non- active sensing) operation..
|
normal (non- active sensing) operation.
|
||||||
|
|
||||||
|
Setting this field to 0 will disable MIDI active sensing.
|
||||||
|
Typical value is 300 (ms) - an Active Sensing command is send every 300ms.
|
||||||
*/
|
*/
|
||||||
static const bool UseSenderActiveSensing = false;
|
static const uint16_t SenderActiveSensingPeriodicity = 0;
|
||||||
|
|
||||||
/*! Setting this to true will make MIDI.read parse only one byte of data for each
|
/*! Setting this to true will make MIDI.read parse only one byte of data for each
|
||||||
call when data is available. This can speed up your application if receiving
|
call when data is available. This can speed up your application if receiving
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue