| @@ -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: | ||||