diff --git a/RNBOTypes/Runtime/Cycling74.RNBOTypes.cs b/RNBOTypes/Runtime/Cycling74.RNBOTypes.cs index 024c1ae..cf90782 100644 --- a/RNBOTypes/Runtime/Cycling74.RNBOTypes.cs +++ b/RNBOTypes/Runtime/Cycling74.RNBOTypes.cs @@ -178,7 +178,7 @@ public class PresetList { public List presets; } - public delegate void TransportRequestDelegate(IntPtr userData, MillisecondTime time, out bool running, out Float bpm, out Float beatTime, out int timeSigNum, out int timeSigDenom); + public delegate void TransportRequestDelegate(IntPtr userData, MillisecondTime time, out byte running, out Float bpm, out Float beatTime, out int timeSigNum, out int timeSigDenom); public class Transport { @@ -243,13 +243,13 @@ public void SeekTo(Float beatTime) { (UInt16, UInt16) timeSignatureCur = (4, 4); [AOT.MonoPInvokeCallback(typeof(TransportRequestDelegate))] - public static void AudioThreadUpdate(IntPtr inst, MillisecondTime time, out bool run, out Float tempo, out Float beatTime, out int timeSigNum, out int timeSigDenom) { + public static void AudioThreadUpdate(IntPtr inst, MillisecondTime time, out byte run, out Float tempo, out Float beatTime, out int timeSigNum, out int timeSigDenom) { GCHandle gch = GCHandle.FromIntPtr(inst); Transport transport = (Transport)gch.Target; if (transport != null) { transport.Update(time, out run, out tempo, out beatTime, out timeSigNum, out timeSigDenom); } else { - run = false; + run = 0; //false tempo = 100.0; beatTime = 0.0; timeSigNum = 4; @@ -257,7 +257,7 @@ public static void AudioThreadUpdate(IntPtr inst, MillisecondTime time, out bool } } - internal void Update(MillisecondTime time, out bool run, out Float tempo, out Float beatTime, out int timeSigNum, out int timeSigDenom) { + internal void Update(MillisecondTime time, out byte run, out Float tempo, out Float beatTime, out int timeSigNum, out int timeSigDenom) { if (time != _lastUpdate) { var last = _lastUpdate; @@ -284,7 +284,7 @@ internal void Update(MillisecondTime time, out bool run, out Float tempo, out Fl BeatTime = beatTimeCur; } - run = runningCur; + run = (byte)(runningCur ? 1 : 0); tempo = tempoCur; beatTime = beatTimeCur; timeSigNum = (int)timeSignatureCur.Item1; diff --git a/src/RNBOWrapper.cpp b/src/RNBOWrapper.cpp index 17b4dab..007b2fb 100644 --- a/src/RNBOWrapper.cpp +++ b/src/RNBOWrapper.cpp @@ -37,7 +37,7 @@ extern "C" { typedef void (UNITY_AUDIODSP_CALLBACK * CBeatTimeEventCallback)(void * handle, RNBO::number, RNBO::MillisecondTime); typedef void (UNITY_AUDIODSP_CALLBACK * CTimeSignatureEventCallback)(void * handle, int32_t, int32_t, RNBO::MillisecondTime); - typedef void (UNITY_AUDIODSP_CALLBACK * CTransportRequestCallback)(void * handle, RNBO::MillisecondTime time, bool* running, RNBO::number* bpm, RNBO::number* beatTime, int32_t *timeSigNum, int32_t *timeSigDenom); + typedef void (UNITY_AUDIODSP_CALLBACK * CTransportRequestCallback)(void * handle, RNBO::MillisecondTime time, uint8_t* running, RNBO::number* bpm, RNBO::number* beatTime, int32_t *timeSigNum, int32_t *timeSigDenom); typedef void (UNITY_AUDIODSP_CALLBACK * CPresetCallback)(void * handle, const char * payload); } @@ -296,14 +296,15 @@ namespace RNBOUnity transport = globalTransport; if (transport != nullptr) { - bool running = false; RNBO::number bpm = 0.0, beatTime = 0.0; int32_t timeSigNum = 4, timeSigDenom = 4; + uint8_t runningByte = 0; transport->callback()( transport->handle(), - now, &running, &bpm, &beatTime, &timeSigNum, &timeSigDenom); + now, &runningByte, &bpm, &beatTime, &timeSigNum, &timeSigDenom); + bool running = runningByte != 0; if (running != mTransportRunning) { mTransportRunning = running;