@@ -181,13 +181,16 @@ public: | |||||
CARLA_SAFE_ASSERT_INT2(shmNonRtServerDataSize == sizeof(BridgeNonRtServerData), shmNonRtServerDataSize, sizeof(BridgeNonRtServerData)); | CARLA_SAFE_ASSERT_INT2(shmNonRtServerDataSize == sizeof(BridgeNonRtServerData), shmNonRtServerDataSize, sizeof(BridgeNonRtServerData)); | ||||
opcode = fShmNonRtClientControl.readOpcode(); | opcode = fShmNonRtClientControl.readOpcode(); | ||||
CARLA_SAFE_ASSERT_INT(opcode == kPluginBridgeNonRtClientSetBufferSize, opcode); | |||||
CARLA_SAFE_ASSERT_INT(opcode == kPluginBridgeNonRtClientInitialSetup, opcode); | |||||
pData->bufferSize = fShmNonRtClientControl.readUInt(); | pData->bufferSize = fShmNonRtClientControl.readUInt(); | ||||
opcode = fShmNonRtClientControl.readOpcode(); | |||||
CARLA_SAFE_ASSERT_INT(opcode == kPluginBridgeNonRtClientSetSampleRate, opcode); | |||||
pData->sampleRate = fShmNonRtClientControl.readDouble(); | pData->sampleRate = fShmNonRtClientControl.readDouble(); | ||||
if (pData->bufferSize == 0 || carla_isZero(pData->sampleRate)) | |||||
{ | |||||
carla_stderr2("CarlaEngineBridge: invalid empty state"); | |||||
return false; | |||||
} | |||||
pData->initTime(nullptr); | pData->initTime(nullptr); | ||||
if (shmRtClientDataSize != sizeof(BridgeRtClientData) || shmNonRtClientDataSize != sizeof(BridgeNonRtClientData) || shmNonRtServerDataSize != sizeof(BridgeNonRtServerData)) | if (shmRtClientDataSize != sizeof(BridgeRtClientData) || shmNonRtClientDataSize != sizeof(BridgeNonRtClientData) || shmNonRtServerDataSize != sizeof(BridgeNonRtServerData)) | ||||
@@ -208,7 +211,7 @@ public: | |||||
bool close() override | bool close() override | ||||
{ | { | ||||
carla_debug("CarlaEnginePlugin::close()"); | |||||
carla_debug("CarlaEngineBridge::close()"); | |||||
fLastPingTime = -1; | fLastPingTime = -1; | ||||
CarlaEngine::close(); | CarlaEngine::close(); | ||||
@@ -678,28 +681,10 @@ public: | |||||
plugin->setActive(false, false, false); | plugin->setActive(false, false, false); | ||||
break; | break; | ||||
case kPluginBridgeNonRtClientSetBufferSize: { | |||||
const uint32_t bufferSize(fShmNonRtClientControl.readUInt()); | |||||
pData->bufferSize = bufferSize; | |||||
bufferSizeChanged(bufferSize); | |||||
break; | |||||
} | |||||
case kPluginBridgeNonRtClientSetSampleRate: { | |||||
const double sampleRate(fShmNonRtClientControl.readDouble()); | |||||
pData->sampleRate = sampleRate; | |||||
sampleRateChanged(sampleRate); | |||||
break; | |||||
} | |||||
case kPluginBridgeNonRtClientSetOffline: | |||||
fIsOffline = true; | |||||
offlineModeChanged(true); | |||||
break; | |||||
case kPluginBridgeNonRtClientSetOnline: | |||||
fIsOffline = false; | |||||
offlineModeChanged(false); | |||||
case kPluginBridgeNonRtClientInitialSetup: | |||||
// should never happen!! | |||||
fShmNonRtServerControl.readUInt(); | |||||
fShmNonRtServerControl.readDouble(); | |||||
break; | break; | ||||
case kPluginBridgeNonRtClientSetParameterValue: { | case kPluginBridgeNonRtClientSetParameterValue: { | ||||
@@ -1002,6 +987,25 @@ protected: | |||||
break; | break; | ||||
} | } | ||||
case kPluginBridgeRtClientSetBufferSize: { | |||||
const uint32_t bufferSize(fShmRtClientControl.readUInt()); | |||||
pData->bufferSize = bufferSize; | |||||
bufferSizeChanged(bufferSize); | |||||
break; | |||||
} | |||||
case kPluginBridgeRtClientSetSampleRate: { | |||||
const double sampleRate(fShmRtClientControl.readDouble()); | |||||
pData->sampleRate = sampleRate; | |||||
sampleRateChanged(sampleRate); | |||||
break; | |||||
} | |||||
case kPluginBridgeRtClientSetOnline: | |||||
fIsOffline = fShmRtClientControl.readBool(); | |||||
offlineModeChanged(fIsOffline); | |||||
break; | |||||
case kPluginBridgeRtClientControlEventParameter: { | case kPluginBridgeRtClientControlEventParameter: { | ||||
const uint32_t time(fShmRtClientControl.readUInt()); | const uint32_t time(fShmRtClientControl.readUInt()); | ||||
const uint8_t channel(fShmRtClientControl.readByte()); | const uint8_t channel(fShmRtClientControl.readByte()); | ||||
@@ -1128,7 +1132,7 @@ protected: | |||||
case kPluginBridgeRtClientProcess: { | case kPluginBridgeRtClientProcess: { | ||||
CARLA_SAFE_ASSERT_BREAK(fShmAudioPool.data != nullptr); | CARLA_SAFE_ASSERT_BREAK(fShmAudioPool.data != nullptr); | ||||
if (plugin != nullptr && plugin->isEnabled() && plugin->tryLock(false)) | |||||
if (plugin != nullptr && plugin->isEnabled() && plugin->tryLock(fIsOffline)) | |||||
{ | { | ||||
const BridgeTimeInfo& bridgeTimeInfo(fShmRtClientControl.data->timeInfo); | const BridgeTimeInfo& bridgeTimeInfo(fShmRtClientControl.data->timeInfo); | ||||
@@ -1482,10 +1482,9 @@ public: | |||||
resizeAudioPool(newBufferSize); | resizeAudioPool(newBufferSize); | ||||
{ | { | ||||
const CarlaMutexLocker _cml(fShmNonRtClientControl.mutex); | |||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientSetBufferSize); | |||||
fShmNonRtClientControl.writeUInt(newBufferSize); | |||||
fShmNonRtClientControl.commitWrite(); | |||||
fShmRtClientControl.writeOpcode(kPluginBridgeRtClientSetBufferSize); | |||||
fShmRtClientControl.writeUInt(newBufferSize); | |||||
fShmRtClientControl.commitWrite(); | |||||
} | } | ||||
//fProcWaitTime = newBufferSize*1000/pData->engine->getSampleRate(); | //fProcWaitTime = newBufferSize*1000/pData->engine->getSampleRate(); | ||||
@@ -1497,10 +1496,9 @@ public: | |||||
void sampleRateChanged(const double newSampleRate) override | void sampleRateChanged(const double newSampleRate) override | ||||
{ | { | ||||
{ | { | ||||
const CarlaMutexLocker _cml(fShmNonRtClientControl.mutex); | |||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientSetSampleRate); | |||||
fShmNonRtClientControl.writeDouble(newSampleRate); | |||||
fShmNonRtClientControl.commitWrite(); | |||||
fShmRtClientControl.writeOpcode(kPluginBridgeRtClientSetSampleRate); | |||||
fShmRtClientControl.writeDouble(newSampleRate); | |||||
fShmRtClientControl.commitWrite(); | |||||
} | } | ||||
//fProcWaitTime = pData->engine->getBufferSize()*1000/newSampleRate; | //fProcWaitTime = pData->engine->getBufferSize()*1000/newSampleRate; | ||||
@@ -1512,9 +1510,9 @@ public: | |||||
void offlineModeChanged(const bool isOffline) override | void offlineModeChanged(const bool isOffline) override | ||||
{ | { | ||||
{ | { | ||||
const CarlaMutexLocker _cml(fShmNonRtClientControl.mutex); | |||||
fShmNonRtClientControl.writeOpcode(isOffline ? kPluginBridgeNonRtClientSetOffline : kPluginBridgeNonRtClientSetOnline); | |||||
fShmNonRtClientControl.commitWrite(); | |||||
fShmRtClientControl.writeOpcode(kPluginBridgeRtClientSetOnline); | |||||
fShmRtClientControl.writeBool(isOffline); | |||||
fShmRtClientControl.commitWrite(); | |||||
} | } | ||||
waitForClient("offline", 1000); | waitForClient("offline", 1000); | ||||
@@ -2168,10 +2166,8 @@ public: | |||||
fShmNonRtClientControl.writeUInt(static_cast<uint32_t>(sizeof(BridgeNonRtClientData))); | fShmNonRtClientControl.writeUInt(static_cast<uint32_t>(sizeof(BridgeNonRtClientData))); | ||||
fShmNonRtClientControl.writeUInt(static_cast<uint32_t>(sizeof(BridgeNonRtServerData))); | fShmNonRtClientControl.writeUInt(static_cast<uint32_t>(sizeof(BridgeNonRtServerData))); | ||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientSetBufferSize); | |||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientInitialSetup); | |||||
fShmNonRtClientControl.writeUInt(pData->engine->getBufferSize()); | fShmNonRtClientControl.writeUInt(pData->engine->getBufferSize()); | ||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientSetSampleRate); | |||||
fShmNonRtClientControl.writeDouble(pData->engine->getSampleRate()); | fShmNonRtClientControl.writeDouble(pData->engine->getSampleRate()); | ||||
fShmNonRtClientControl.commitWrite(); | fShmNonRtClientControl.commitWrite(); | ||||
@@ -1034,10 +1034,9 @@ public: | |||||
resizeAudioPool(newBufferSize); | resizeAudioPool(newBufferSize); | ||||
{ | { | ||||
const CarlaMutexLocker _cml(fShmNonRtClientControl.mutex); | |||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientSetBufferSize); | |||||
fShmNonRtClientControl.writeUInt(newBufferSize); | |||||
fShmNonRtClientControl.commitWrite(); | |||||
fShmRtClientControl.writeOpcode(kPluginBridgeRtClientSetBufferSize); | |||||
fShmRtClientControl.writeUInt(newBufferSize); | |||||
fShmRtClientControl.commitWrite(); | |||||
} | } | ||||
//fProcWaitTime = newBufferSize*1000/pData->engine->getSampleRate(); | //fProcWaitTime = newBufferSize*1000/pData->engine->getSampleRate(); | ||||
@@ -1049,10 +1048,9 @@ public: | |||||
void sampleRateChanged(const double newSampleRate) override | void sampleRateChanged(const double newSampleRate) override | ||||
{ | { | ||||
{ | { | ||||
const CarlaMutexLocker _cml(fShmNonRtClientControl.mutex); | |||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientSetSampleRate); | |||||
fShmNonRtClientControl.writeDouble(newSampleRate); | |||||
fShmNonRtClientControl.commitWrite(); | |||||
fShmRtClientControl.writeOpcode(kPluginBridgeRtClientSetSampleRate); | |||||
fShmRtClientControl.writeDouble(newSampleRate); | |||||
fShmRtClientControl.commitWrite(); | |||||
} | } | ||||
//fProcWaitTime = pData->engine->getBufferSize()*1000/newSampleRate; | //fProcWaitTime = pData->engine->getBufferSize()*1000/newSampleRate; | ||||
@@ -1064,9 +1062,9 @@ public: | |||||
void offlineModeChanged(const bool isOffline) override | void offlineModeChanged(const bool isOffline) override | ||||
{ | { | ||||
{ | { | ||||
const CarlaMutexLocker _cml(fShmNonRtClientControl.mutex); | |||||
fShmNonRtClientControl.writeOpcode(isOffline ? kPluginBridgeNonRtClientSetOffline : kPluginBridgeNonRtClientSetOnline); | |||||
fShmNonRtClientControl.commitWrite(); | |||||
fShmRtClientControl.writeOpcode(kPluginBridgeRtClientSetOnline); | |||||
fShmRtClientControl.writeBool(isOffline); | |||||
fShmRtClientControl.commitWrite(); | |||||
} | } | ||||
waitForClient("offline", 1000); | waitForClient("offline", 1000); | ||||
@@ -1398,10 +1396,8 @@ private: | |||||
fShmNonRtClientControl.writeUInt(static_cast<uint32_t>(sizeof(BridgeNonRtClientData))); | fShmNonRtClientControl.writeUInt(static_cast<uint32_t>(sizeof(BridgeNonRtClientData))); | ||||
fShmNonRtClientControl.writeUInt(static_cast<uint32_t>(sizeof(BridgeNonRtServerData))); | fShmNonRtClientControl.writeUInt(static_cast<uint32_t>(sizeof(BridgeNonRtServerData))); | ||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientSetBufferSize); | |||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientInitialSetup); | |||||
fShmNonRtClientControl.writeUInt(pData->engine->getBufferSize()); | fShmNonRtClientControl.writeUInt(pData->engine->getBufferSize()); | ||||
fShmNonRtClientControl.writeOpcode(kPluginBridgeNonRtClientSetSampleRate); | |||||
fShmNonRtClientControl.writeDouble(pData->engine->getSampleRate()); | fShmNonRtClientControl.writeDouble(pData->engine->getSampleRate()); | ||||
fShmNonRtClientControl.commitWrite(); | fShmNonRtClientControl.commitWrite(); | ||||
@@ -300,11 +300,8 @@ bool CarlaJackAppClient::initSharedMemmory() | |||||
} | } | ||||
opcode = fShmNonRtClientControl.readOpcode(); | opcode = fShmNonRtClientControl.readOpcode(); | ||||
CARLA_SAFE_ASSERT_INT(opcode == kPluginBridgeNonRtClientSetBufferSize, opcode); | |||||
CARLA_SAFE_ASSERT_INT(opcode == kPluginBridgeNonRtClientInitialSetup, opcode); | |||||
fServer.bufferSize = fShmNonRtClientControl.readUInt(); | fServer.bufferSize = fShmNonRtClientControl.readUInt(); | ||||
opcode = fShmNonRtClientControl.readOpcode(); | |||||
CARLA_SAFE_ASSERT_INT(opcode == kPluginBridgeNonRtClientSetSampleRate, opcode); | |||||
fServer.sampleRate = fShmNonRtClientControl.readDouble(); | fServer.sampleRate = fShmNonRtClientControl.readDouble(); | ||||
if (fServer.bufferSize == 0 || carla_isZero(fServer.sampleRate)) | if (fServer.bufferSize == 0 || carla_isZero(fServer.sampleRate)) | ||||
@@ -396,6 +393,56 @@ bool CarlaJackAppClient::handleRtData() | |||||
break; | break; | ||||
} | } | ||||
case kPluginBridgeRtClientSetBufferSize: | |||||
if (const uint32_t newBufferSize = fShmRtClientControl.readUInt()) | |||||
{ | |||||
if (fServer.bufferSize != newBufferSize) | |||||
{ | |||||
const CarlaMutexLocker cml(fRealtimeThreadMutex); | |||||
fServer.bufferSize = newBufferSize; | |||||
for (LinkedList<JackClientState*>::Itenerator it = fClients.begin2(); it.valid(); it.next()) | |||||
{ | |||||
JackClientState* const jclient(it.getValue(nullptr)); | |||||
CARLA_SAFE_ASSERT_CONTINUE(jclient != nullptr); | |||||
jclient->bufferSizeCb(fServer.bufferSize, jclient->bufferSizeCbPtr); | |||||
} | |||||
delete[] fAudioTmpBuf; | |||||
fAudioTmpBuf = new float[fServer.bufferSize]; | |||||
FloatVectorOperations::clear(fAudioTmpBuf, fServer.bufferSize); | |||||
} | |||||
} | |||||
break; | |||||
case kPluginBridgeRtClientSetSampleRate: | |||||
if (const double newSampleRate = fShmRtClientControl.readDouble()) | |||||
{ | |||||
if (fServer.sampleRate != newSampleRate) | |||||
{ | |||||
const CarlaMutexLocker cml(fRealtimeThreadMutex); | |||||
fServer.sampleRate = newSampleRate; | |||||
for (LinkedList<JackClientState*>::Itenerator it = fClients.begin2(); it.valid(); it.next()) | |||||
{ | |||||
JackClientState* const jclient(it.getValue(nullptr)); | |||||
CARLA_SAFE_ASSERT_CONTINUE(jclient != nullptr); | |||||
jclient->sampleRateCb(fServer.sampleRate, jclient->sampleRateCbPtr); | |||||
} | |||||
} | |||||
} | |||||
break; | |||||
case kPluginBridgeRtClientSetOnline: | |||||
// TODO inform changes | |||||
fIsOffline = fShmRtClientControl.readBool(); | |||||
//offlineModeChanged(fIsOffline); | |||||
break; | |||||
case kPluginBridgeRtClientControlEventParameter: | case kPluginBridgeRtClientControlEventParameter: | ||||
case kPluginBridgeRtClientControlEventMidiBank: | case kPluginBridgeRtClientControlEventMidiBank: | ||||
case kPluginBridgeRtClientControlEventMidiProgram: | case kPluginBridgeRtClientControlEventMidiProgram: | ||||
@@ -405,6 +452,7 @@ bool CarlaJackAppClient::handleRtData() | |||||
break; | break; | ||||
case kPluginBridgeRtClientProcess: { | case kPluginBridgeRtClientProcess: { | ||||
// FIXME - lock if offline | |||||
const CarlaMutexTryLocker cmtl(fRealtimeThreadMutex); | const CarlaMutexTryLocker cmtl(fRealtimeThreadMutex); | ||||
if (cmtl.wasLocked()) | if (cmtl.wasLocked()) | ||||
@@ -451,6 +499,7 @@ bool CarlaJackAppClient::handleRtData() | |||||
JackClientState* const jclient(it.getValue(nullptr)); | JackClientState* const jclient(it.getValue(nullptr)); | ||||
CARLA_SAFE_ASSERT_CONTINUE(jclient != nullptr); | CARLA_SAFE_ASSERT_CONTINUE(jclient != nullptr); | ||||
// FIXME - lock if offline | |||||
const CarlaMutexTryLocker cmtl2(jclient->mutex); | const CarlaMutexTryLocker cmtl2(jclient->mutex); | ||||
// check if we can process | // check if we can process | ||||
@@ -636,60 +685,10 @@ bool CarlaJackAppClient::handleNonRtData() | |||||
case kPluginBridgeNonRtClientDeactivate: | case kPluginBridgeNonRtClientDeactivate: | ||||
break; | break; | ||||
case kPluginBridgeNonRtClientSetBufferSize: | |||||
if (const uint32_t newBufferSize = fShmNonRtClientControl.readUInt()) | |||||
{ | |||||
if (fServer.bufferSize != newBufferSize) | |||||
{ | |||||
const CarlaMutexLocker cml(fRealtimeThreadMutex); | |||||
fServer.bufferSize = newBufferSize; | |||||
for (LinkedList<JackClientState*>::Itenerator it = fClients.begin2(); it.valid(); it.next()) | |||||
{ | |||||
JackClientState* const jclient(it.getValue(nullptr)); | |||||
CARLA_SAFE_ASSERT_CONTINUE(jclient != nullptr); | |||||
jclient->bufferSizeCb(fServer.bufferSize, jclient->bufferSizeCbPtr); | |||||
} | |||||
delete[] fAudioTmpBuf; | |||||
fAudioTmpBuf = new float[fServer.bufferSize]; | |||||
FloatVectorOperations::clear(fAudioTmpBuf, fServer.bufferSize); | |||||
} | |||||
} | |||||
break; | |||||
case kPluginBridgeNonRtClientSetSampleRate: | |||||
if (const double newSampleRate = fShmNonRtClientControl.readDouble()) | |||||
{ | |||||
if (fServer.sampleRate != newSampleRate) | |||||
{ | |||||
const CarlaMutexLocker cml(fRealtimeThreadMutex); | |||||
fServer.sampleRate = newSampleRate; | |||||
for (LinkedList<JackClientState*>::Itenerator it = fClients.begin2(); it.valid(); it.next()) | |||||
{ | |||||
JackClientState* const jclient(it.getValue(nullptr)); | |||||
CARLA_SAFE_ASSERT_CONTINUE(jclient != nullptr); | |||||
jclient->sampleRateCb(fServer.sampleRate, jclient->sampleRateCbPtr); | |||||
} | |||||
} | |||||
} | |||||
break; | |||||
case kPluginBridgeNonRtClientSetOffline: | |||||
// TODO inform changes | |||||
fIsOffline = true; | |||||
//offlineModeChanged(true); | |||||
break; | |||||
case kPluginBridgeNonRtClientSetOnline: | |||||
// TODO inform changes | |||||
fIsOffline = false; | |||||
//offlineModeChanged(false); | |||||
case kPluginBridgeNonRtClientInitialSetup: | |||||
// should never happen!! | |||||
fShmNonRtServerControl.readUInt(); | |||||
fShmNonRtServerControl.readDouble(); | |||||
break; | break; | ||||
case kPluginBridgeNonRtClientSetParameterValue: | case kPluginBridgeNonRtClientSetParameterValue: | ||||
@@ -26,6 +26,9 @@ | |||||
enum PluginBridgeRtClientOpcode { | enum PluginBridgeRtClientOpcode { | ||||
kPluginBridgeRtClientNull = 0, | kPluginBridgeRtClientNull = 0, | ||||
kPluginBridgeRtClientSetAudioPool, // ulong/ptr | kPluginBridgeRtClientSetAudioPool, // ulong/ptr | ||||
kPluginBridgeRtClientSetBufferSize, // uint | |||||
kPluginBridgeRtClientSetSampleRate, // double | |||||
kPluginBridgeRtClientSetOnline, // bool | |||||
kPluginBridgeRtClientControlEventParameter, // uint/frame, byte/chan, ushort, float | kPluginBridgeRtClientControlEventParameter, // uint/frame, byte/chan, ushort, float | ||||
kPluginBridgeRtClientControlEventMidiBank, // uint/frame, byte/chan, ushort | kPluginBridgeRtClientControlEventMidiBank, // uint/frame, byte/chan, ushort | ||||
kPluginBridgeRtClientControlEventMidiProgram, // uint/frame, byte/chan, ushort | kPluginBridgeRtClientControlEventMidiProgram, // uint/frame, byte/chan, ushort | ||||
@@ -43,10 +46,7 @@ enum PluginBridgeNonRtClientOpcode { | |||||
kPluginBridgeNonRtClientPingOnOff, // bool | kPluginBridgeNonRtClientPingOnOff, // bool | ||||
kPluginBridgeNonRtClientActivate, | kPluginBridgeNonRtClientActivate, | ||||
kPluginBridgeNonRtClientDeactivate, | kPluginBridgeNonRtClientDeactivate, | ||||
kPluginBridgeNonRtClientSetBufferSize, // uint | |||||
kPluginBridgeNonRtClientSetSampleRate, // double | |||||
kPluginBridgeNonRtClientSetOffline, | |||||
kPluginBridgeNonRtClientSetOnline, | |||||
kPluginBridgeNonRtClientInitialSetup, // uint, double | |||||
kPluginBridgeNonRtClientSetParameterValue, // uint, float | kPluginBridgeNonRtClientSetParameterValue, // uint, float | ||||
kPluginBridgeNonRtClientSetParameterMidiChannel, // uint, byte | kPluginBridgeNonRtClientSetParameterMidiChannel, // uint, byte | ||||
kPluginBridgeNonRtClientSetParameterMidiCC, // uint, short | kPluginBridgeNonRtClientSetParameterMidiCC, // uint, short | ||||
@@ -43,6 +43,12 @@ const char* PluginBridgeRtClientOpcode2str(const PluginBridgeRtClientOpcode opco | |||||
return "kPluginBridgeRtClientNull"; | return "kPluginBridgeRtClientNull"; | ||||
case kPluginBridgeRtClientSetAudioPool: | case kPluginBridgeRtClientSetAudioPool: | ||||
return "kPluginBridgeRtClientSetAudioPool"; | return "kPluginBridgeRtClientSetAudioPool"; | ||||
case kPluginBridgeRtClientSetBufferSize: | |||||
return "kPluginBridgeRtClientSetBufferSize"; | |||||
case kPluginBridgeRtClientSetSampleRate: | |||||
return "kPluginBridgeRtClientSetSampleRate"; | |||||
case kPluginBridgeRtClientSetOnline: | |||||
return "kPluginBridgeRtClientSetOnline"; | |||||
case kPluginBridgeRtClientControlEventParameter: | case kPluginBridgeRtClientControlEventParameter: | ||||
return "kPluginBridgeRtClientControlEventParameter"; | return "kPluginBridgeRtClientControlEventParameter"; | ||||
case kPluginBridgeRtClientControlEventMidiBank: | case kPluginBridgeRtClientControlEventMidiBank: | ||||
@@ -80,14 +86,8 @@ const char* PluginBridgeNonRtClientOpcode2str(const PluginBridgeNonRtClientOpcod | |||||
return "kPluginBridgeNonRtClientActivate"; | return "kPluginBridgeNonRtClientActivate"; | ||||
case kPluginBridgeNonRtClientDeactivate: | case kPluginBridgeNonRtClientDeactivate: | ||||
return "kPluginBridgeNonRtClientDeactivate"; | return "kPluginBridgeNonRtClientDeactivate"; | ||||
case kPluginBridgeNonRtClientSetBufferSize: | |||||
return "kPluginBridgeNonRtClientSetBufferSize"; | |||||
case kPluginBridgeNonRtClientSetSampleRate: | |||||
return "kPluginBridgeNonRtClientSetSampleRate"; | |||||
case kPluginBridgeNonRtClientSetOffline: | |||||
return "kPluginBridgeNonRtClientSetOffline"; | |||||
case kPluginBridgeNonRtClientSetOnline: | |||||
return "kPluginBridgeNonRtClientSetOnline"; | |||||
case kPluginBridgeNonRtClientInitialSetup: | |||||
return "kPluginBridgeNonRtClientInitialSetup"; | |||||
case kPluginBridgeNonRtClientSetParameterValue: | case kPluginBridgeNonRtClientSetParameterValue: | ||||
return "kPluginBridgeNonRtClientSetParameterValue"; | return "kPluginBridgeNonRtClientSetParameterValue"; | ||||
case kPluginBridgeNonRtClientSetParameterMidiChannel: | case kPluginBridgeNonRtClientSetParameterMidiChannel: | ||||