| @@ -39,8 +39,8 @@ extern "C" { | |||||
| #include <QtCore/QFile> | #include <QtCore/QFile> | ||||
| #include <QtCore/QUrl> | #include <QtCore/QUrl> | ||||
| #define URI_CARLA_ATOM_WORKER "http://kxstudio.sf.net/ns/carla/atomWorker" | |||||
| #define URI_CARLA_FRONTEND_WIN_ID "http://kxstudio.sf.net/ns/carla/frontendWinId" | #define URI_CARLA_FRONTEND_WIN_ID "http://kxstudio.sf.net/ns/carla/frontendWinId" | ||||
| #define URI_CARLA_WORKER "http://kxstudio.sf.net/ns/carla/worker" | |||||
| // ----------------------------------------------------- | // ----------------------------------------------------- | ||||
| @@ -94,30 +94,31 @@ const uint32_t CARLA_URI_MAP_ID_ATOM_TUPLE = 18; | |||||
| const uint32_t CARLA_URI_MAP_ID_ATOM_URI = 19; | const uint32_t CARLA_URI_MAP_ID_ATOM_URI = 19; | ||||
| const uint32_t CARLA_URI_MAP_ID_ATOM_URID = 20; | const uint32_t CARLA_URI_MAP_ID_ATOM_URID = 20; | ||||
| const uint32_t CARLA_URI_MAP_ID_ATOM_VECTOR = 21; | const uint32_t CARLA_URI_MAP_ID_ATOM_VECTOR = 21; | ||||
| const uint32_t CARLA_URI_MAP_ID_ATOM_WORKER = 22; // custom | |||||
| const uint32_t CARLA_URI_MAP_ID_ATOM_TRANSFER_ATOM = 23; | |||||
| const uint32_t CARLA_URI_MAP_ID_ATOM_TRANSFER_EVENT = 24; | |||||
| const uint32_t CARLA_URI_MAP_ID_BUF_MAX_LENGTH = 25; | |||||
| const uint32_t CARLA_URI_MAP_ID_BUF_MIN_LENGTH = 26; | |||||
| const uint32_t CARLA_URI_MAP_ID_BUF_SEQUENCE_SIZE = 27; | |||||
| const uint32_t CARLA_URI_MAP_ID_LOG_ERROR = 28; | |||||
| const uint32_t CARLA_URI_MAP_ID_LOG_NOTE = 29; | |||||
| const uint32_t CARLA_URI_MAP_ID_LOG_TRACE = 30; | |||||
| const uint32_t CARLA_URI_MAP_ID_LOG_WARNING = 31; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_POSITION = 32; // base type | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BAR = 33; // values | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BAR_BEAT = 34; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BEAT = 35; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BEAT_UNIT = 36; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BEATS_PER_BAR = 37; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BEATS_PER_MINUTE = 38; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_FRAME = 39; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_FRAMES_PER_SECOND = 40; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_SPEED = 41; | |||||
| const uint32_t CARLA_URI_MAP_ID_MIDI_EVENT = 42; | |||||
| const uint32_t CARLA_URI_MAP_ID_PARAM_SAMPLE_RATE = 43; | |||||
| const uint32_t CARLA_URI_MAP_ID_FRONTEND_WIN_ID = 44; | |||||
| const uint32_t CARLA_URI_MAP_ID_COUNT = 45; | |||||
| const uint32_t CARLA_URI_MAP_ID_ATOM_TRANSFER_ATOM = 22; | |||||
| const uint32_t CARLA_URI_MAP_ID_ATOM_TRANSFER_EVENT = 23; | |||||
| const uint32_t CARLA_URI_MAP_ID_BUF_MAX_LENGTH = 24; | |||||
| const uint32_t CARLA_URI_MAP_ID_BUF_MIN_LENGTH = 25; | |||||
| const uint32_t CARLA_URI_MAP_ID_BUF_SEQUENCE_SIZE = 26; | |||||
| const uint32_t CARLA_URI_MAP_ID_LOG_ERROR = 27; | |||||
| const uint32_t CARLA_URI_MAP_ID_LOG_NOTE = 28; | |||||
| const uint32_t CARLA_URI_MAP_ID_LOG_TRACE = 29; | |||||
| const uint32_t CARLA_URI_MAP_ID_LOG_WARNING = 30; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_POSITION = 31; // base type | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BAR = 32; // values | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BAR_BEAT = 33; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BEAT = 34; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BEAT_UNIT = 35; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BEATS_PER_BAR = 36; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_BEATS_PER_MINUTE = 37; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_FRAME = 38; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_FRAMES_PER_SECOND = 39; | |||||
| const uint32_t CARLA_URI_MAP_ID_TIME_SPEED = 40; | |||||
| const uint32_t CARLA_URI_MAP_ID_MIDI_EVENT = 41; | |||||
| const uint32_t CARLA_URI_MAP_ID_PARAM_SAMPLE_RATE = 42; | |||||
| const uint32_t CARLA_URI_MAP_ID_UI_WINDOW_TITLE = 43; | |||||
| const uint32_t CARLA_URI_MAP_ID_CARLA_ATOM_WORKER = 44; | |||||
| const uint32_t CARLA_URI_MAP_ID_CARLA_FRONTEND_WIN_ID = 45; | |||||
| const uint32_t CARLA_URI_MAP_ID_COUNT = 46; | |||||
| // LV2 Feature Ids | // LV2 Feature Ids | ||||
| const uint32_t kFeatureIdBufSizeBounded = 0; | const uint32_t kFeatureIdBufSizeBounded = 0; | ||||
| @@ -162,6 +163,7 @@ struct Lv2EventData { | |||||
| uint32_t type; | uint32_t type; | ||||
| uint32_t rindex; | uint32_t rindex; | ||||
| CarlaEngineEventPort* port; | CarlaEngineEventPort* port; | ||||
| union { | union { | ||||
| LV2_Atom_Buffer* atom; | LV2_Atom_Buffer* atom; | ||||
| LV2_Event_Buffer* event; | LV2_Event_Buffer* event; | ||||
| @@ -283,7 +285,9 @@ struct Lv2PluginOptions { | |||||
| SequenceSize, | SequenceSize, | ||||
| SampleRate, | SampleRate, | ||||
| FrontendWinId, | FrontendWinId, | ||||
| Null | |||||
| WindowTitle, | |||||
| Null, | |||||
| Count | |||||
| }; | }; | ||||
| int maxBufferSize; | int maxBufferSize; | ||||
| @@ -291,14 +295,16 @@ struct Lv2PluginOptions { | |||||
| int sequenceSize; | int sequenceSize; | ||||
| double sampleRate; | double sampleRate; | ||||
| int64_t frontendWinId; | int64_t frontendWinId; | ||||
| LV2_Options_Option opts[6]; | |||||
| const char* windowTitle; | |||||
| LV2_Options_Option opts[Count]; | |||||
| Lv2PluginOptions() | Lv2PluginOptions() | ||||
| : maxBufferSize(0), | : maxBufferSize(0), | ||||
| minBufferSize(0), | minBufferSize(0), | ||||
| sequenceSize(MAX_DEFAULT_BUFFER_SIZE), | sequenceSize(MAX_DEFAULT_BUFFER_SIZE), | ||||
| sampleRate(0.0), | sampleRate(0.0), | ||||
| frontendWinId(0) | |||||
| frontendWinId(0), | |||||
| windowTitle(nullptr) | |||||
| { | { | ||||
| LV2_Options_Option& optMaxBlockLenth(opts[MaxBlockLenth]); | LV2_Options_Option& optMaxBlockLenth(opts[MaxBlockLenth]); | ||||
| optMaxBlockLenth.context = LV2_OPTIONS_INSTANCE; | optMaxBlockLenth.context = LV2_OPTIONS_INSTANCE; | ||||
| @@ -335,11 +341,19 @@ struct Lv2PluginOptions { | |||||
| LV2_Options_Option& optFrontendWinId(opts[FrontendWinId]); | LV2_Options_Option& optFrontendWinId(opts[FrontendWinId]); | ||||
| optFrontendWinId.context = LV2_OPTIONS_INSTANCE; | optFrontendWinId.context = LV2_OPTIONS_INSTANCE; | ||||
| optFrontendWinId.subject = 0; | optFrontendWinId.subject = 0; | ||||
| optFrontendWinId.key = CARLA_URI_MAP_ID_FRONTEND_WIN_ID; | |||||
| optFrontendWinId.key = CARLA_URI_MAP_ID_CARLA_FRONTEND_WIN_ID; | |||||
| optFrontendWinId.size = sizeof(int64_t); | optFrontendWinId.size = sizeof(int64_t); | ||||
| optFrontendWinId.type = CARLA_URI_MAP_ID_ATOM_LONG; | optFrontendWinId.type = CARLA_URI_MAP_ID_ATOM_LONG; | ||||
| optFrontendWinId.value = &frontendWinId; | optFrontendWinId.value = &frontendWinId; | ||||
| LV2_Options_Option& optWindowTitle(opts[WindowTitle]); | |||||
| optWindowTitle.context = LV2_OPTIONS_INSTANCE; | |||||
| optWindowTitle.subject = 0; | |||||
| optWindowTitle.key = CARLA_URI_MAP_ID_UI_WINDOW_TITLE; | |||||
| optWindowTitle.size = 0; | |||||
| optWindowTitle.type = CARLA_URI_MAP_ID_ATOM_STRING; | |||||
| optWindowTitle.value = nullptr; | |||||
| LV2_Options_Option& optNull(opts[Null]); | LV2_Options_Option& optNull(opts[Null]); | ||||
| optNull.context = LV2_OPTIONS_INSTANCE; | optNull.context = LV2_OPTIONS_INSTANCE; | ||||
| optNull.subject = 0; | optNull.subject = 0; | ||||
| @@ -348,6 +362,20 @@ struct Lv2PluginOptions { | |||||
| optNull.type = CARLA_URI_MAP_ID_NULL; | optNull.type = CARLA_URI_MAP_ID_NULL; | ||||
| optNull.value = nullptr; | optNull.value = nullptr; | ||||
| } | } | ||||
| ~Lv2PluginOptions() | |||||
| { | |||||
| LV2_Options_Option& optWindowTitle(opts[WindowTitle]); | |||||
| optWindowTitle.size = 0; | |||||
| optWindowTitle.value = nullptr; | |||||
| if (windowTitle != nullptr) | |||||
| { | |||||
| delete[] windowTitle; | |||||
| windowTitle = nullptr; | |||||
| } | |||||
| } | |||||
| }; | }; | ||||
| // ----------------------------------------------------- | // ----------------------------------------------------- | ||||
| @@ -441,12 +469,6 @@ public: | |||||
| pData->uiLibClose(); | pData->uiLibClose(); | ||||
| } | } | ||||
| if (fUi.title != nullptr) | |||||
| { | |||||
| delete[] fUi.title; | |||||
| fUi.title = nullptr; | |||||
| } | |||||
| #ifndef LV2_UIS_ONLY_BRIDGES | #ifndef LV2_UIS_ONLY_BRIDGES | ||||
| if (fUi.window != nullptr) | if (fUi.window != nullptr) | ||||
| { | { | ||||
| @@ -938,21 +960,24 @@ public: | |||||
| { | { | ||||
| CarlaPlugin::setName(newName); | CarlaPlugin::setName(newName); | ||||
| if (fUi.title == nullptr) | |||||
| if (fLv2Options.windowTitle == nullptr) | |||||
| return; | return; | ||||
| QString guiTitle(QString("%1 (GUI)").arg(pData->name)); | QString guiTitle(QString("%1 (GUI)").arg(pData->name)); | ||||
| delete[] fUi.title; | |||||
| fUi.title = carla_strdup(guiTitle.toUtf8().constData()); | |||||
| delete[] fLv2Options.windowTitle; | |||||
| fLv2Options.windowTitle = carla_strdup(guiTitle.toUtf8().constData()); | |||||
| fLv2Options.opts[Lv2PluginOptions::WindowTitle].size = std::strlen(fLv2Options.windowTitle); | |||||
| fLv2Options.opts[Lv2PluginOptions::WindowTitle].value = fLv2Options.windowTitle; | |||||
| if (fFeatures[kFeatureIdExternalUi] != nullptr && fFeatures[kFeatureIdExternalUi]->data != nullptr) | |||||
| ((LV2_External_UI_Host*)fFeatures[kFeatureIdExternalUi]->data)->plugin_human_id = fLv2Options.windowTitle; | |||||
| #ifndef LV2_UIS_ONLY_BRIDGES | #ifndef LV2_UIS_ONLY_BRIDGES | ||||
| if (fUi.window != nullptr) | if (fUi.window != nullptr) | ||||
| fUi.window->setTitle(fUi.title); | |||||
| fUi.window->setTitle(fLv2Options.windowTitle); | |||||
| #endif | #endif | ||||
| if (fFeatures[kFeatureIdExternalUi] != nullptr && fFeatures[kFeatureIdExternalUi]->data != nullptr) | |||||
| ((LV2_External_UI_Host*)fFeatures[kFeatureIdExternalUi]->data)->plugin_human_id = fUi.title; | |||||
| } | } | ||||
| // ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
| @@ -1182,7 +1207,7 @@ public: | |||||
| if (fUi.window != nullptr) | if (fUi.window != nullptr) | ||||
| { | { | ||||
| fUi.window->setTitle(fUi.title); | |||||
| fUi.window->setTitle(fLv2Options.windowTitle); | |||||
| fFeatures[kFeatureIdUiParent]->data = fUi.window->getPtr(); | fFeatures[kFeatureIdUiParent]->data = fUi.window->getPtr(); | ||||
| } | } | ||||
| } | } | ||||
| @@ -1267,7 +1292,7 @@ public: | |||||
| for (; tmpQueue.get(&atom, &portIndex);) | for (; tmpQueue.get(&atom, &portIndex);) | ||||
| { | { | ||||
| if (atom->type == CARLA_URI_MAP_ID_ATOM_WORKER) | |||||
| if (atom->type == CARLA_URI_MAP_ID_CARLA_ATOM_WORKER) | |||||
| { | { | ||||
| CARLA_SAFE_ASSERT_CONTINUE(fExt.worker != nullptr && fExt.worker->work != nullptr); | CARLA_SAFE_ASSERT_CONTINUE(fExt.worker != nullptr && fExt.worker->work != nullptr); | ||||
| fExt.worker->work(fHandle, carla_lv2_worker_respond, this, atom->size, LV2_ATOM_BODY_CONST(atom)); | fExt.worker->work(fHandle, carla_lv2_worker_respond, this, atom->size, LV2_ATOM_BODY_CONST(atom)); | ||||
| @@ -2618,7 +2643,7 @@ public: | |||||
| { | { | ||||
| j = (portIndex < fEventsIn.count) ? portIndex : fEventsIn.ctrlIndex; | j = (portIndex < fEventsIn.count) ? portIndex : fEventsIn.ctrlIndex; | ||||
| if (atom->type == CARLA_URI_MAP_ID_ATOM_WORKER) | |||||
| if (atom->type == CARLA_URI_MAP_ID_CARLA_ATOM_WORKER) | |||||
| { | { | ||||
| CARLA_SAFE_ASSERT_CONTINUE(fExt.worker != nullptr && fExt.worker->work_response != nullptr); | CARLA_SAFE_ASSERT_CONTINUE(fExt.worker != nullptr && fExt.worker->work_response != nullptr); | ||||
| fExt.worker->work_response(fHandle, atom->size, LV2_ATOM_BODY_CONST(atom)); | fExt.worker->work_response(fHandle, atom->size, LV2_ATOM_BODY_CONST(atom)); | ||||
| @@ -4047,7 +4072,7 @@ public: | |||||
| LV2_Atom atom; | LV2_Atom atom; | ||||
| atom.size = size; | atom.size = size; | ||||
| atom.type = CARLA_URI_MAP_ID_ATOM_WORKER; | |||||
| atom.type = CARLA_URI_MAP_ID_CARLA_ATOM_WORKER; | |||||
| return fAtomQueueOut.putChunk(&atom, data, fEventsOut.ctrlIndex) ? LV2_WORKER_SUCCESS : LV2_WORKER_ERR_NO_SPACE; | return fAtomQueueOut.putChunk(&atom, data, fEventsOut.ctrlIndex) ? LV2_WORKER_SUCCESS : LV2_WORKER_ERR_NO_SPACE; | ||||
| } | } | ||||
| @@ -4058,7 +4083,7 @@ public: | |||||
| LV2_Atom atom; | LV2_Atom atom; | ||||
| atom.size = size; | atom.size = size; | ||||
| atom.type = CARLA_URI_MAP_ID_ATOM_WORKER; | |||||
| atom.type = CARLA_URI_MAP_ID_CARLA_ATOM_WORKER; | |||||
| return fAtomQueueIn.putChunk(&atom, data, fEventsIn.ctrlIndex) ? LV2_WORKER_SUCCESS : LV2_WORKER_ERR_NO_SPACE; | return fAtomQueueIn.putChunk(&atom, data, fEventsIn.ctrlIndex) ? LV2_WORKER_SUCCESS : LV2_WORKER_ERR_NO_SPACE; | ||||
| } | } | ||||
| @@ -4924,7 +4949,10 @@ public: | |||||
| // initialize ui data | // initialize ui data | ||||
| QString guiTitle(QString("%1 (GUI)").arg(pData->name)); | QString guiTitle(QString("%1 (GUI)").arg(pData->name)); | ||||
| fUi.title = carla_strdup(guiTitle.toUtf8().constData()); | |||||
| fLv2Options.windowTitle = carla_strdup(guiTitle.toUtf8().constData()); | |||||
| fLv2Options.opts[Lv2PluginOptions::WindowTitle].size = std::strlen(fLv2Options.windowTitle); | |||||
| fLv2Options.opts[Lv2PluginOptions::WindowTitle].value = fLv2Options.windowTitle; | |||||
| // --------------------------------------------------------------- | // --------------------------------------------------------------- | ||||
| // initialize ui features (part 1) | // initialize ui features (part 1) | ||||
| @@ -4942,7 +4970,7 @@ public: | |||||
| LV2_External_UI_Host* const uiExternalHostFt = new LV2_External_UI_Host; | LV2_External_UI_Host* const uiExternalHostFt = new LV2_External_UI_Host; | ||||
| uiExternalHostFt->ui_closed = carla_lv2_external_ui_closed; | uiExternalHostFt->ui_closed = carla_lv2_external_ui_closed; | ||||
| uiExternalHostFt->plugin_human_id = fUi.title; | |||||
| uiExternalHostFt->plugin_human_id = fLv2Options.windowTitle; | |||||
| // --------------------------------------------------------------- | // --------------------------------------------------------------- | ||||
| // initialize ui features (part 2) | // initialize ui features (part 2) | ||||
| @@ -5107,7 +5135,6 @@ private: | |||||
| const LV2UI_Descriptor* descriptor; | const LV2UI_Descriptor* descriptor; | ||||
| const LV2_RDF_UI* rdfDescriptor; | const LV2_RDF_UI* rdfDescriptor; | ||||
| const char* title; | |||||
| CarlaPluginUi* window; | CarlaPluginUi* window; | ||||
| UI() | UI() | ||||
| @@ -5116,7 +5143,6 @@ private: | |||||
| widget(nullptr), | widget(nullptr), | ||||
| descriptor(nullptr), | descriptor(nullptr), | ||||
| rdfDescriptor(nullptr), | rdfDescriptor(nullptr), | ||||
| title(nullptr), | |||||
| window(nullptr) {} | window(nullptr) {} | ||||
| ~UI() | ~UI() | ||||
| @@ -5125,7 +5151,6 @@ private: | |||||
| CARLA_ASSERT(widget == nullptr); | CARLA_ASSERT(widget == nullptr); | ||||
| CARLA_ASSERT(descriptor == nullptr); | CARLA_ASSERT(descriptor == nullptr); | ||||
| CARLA_ASSERT(rdfDescriptor == nullptr); | CARLA_ASSERT(rdfDescriptor == nullptr); | ||||
| CARLA_ASSERT(title == nullptr); | |||||
| CARLA_ASSERT(window == nullptr); | CARLA_ASSERT(window == nullptr); | ||||
| } | } | ||||
| } fUi; | } fUi; | ||||
| @@ -5403,12 +5428,14 @@ private: | |||||
| return CARLA_URI_MAP_ID_MIDI_EVENT; | return CARLA_URI_MAP_ID_MIDI_EVENT; | ||||
| if (std::strcmp(uri, LV2_PARAMETERS__sampleRate) == 0) | if (std::strcmp(uri, LV2_PARAMETERS__sampleRate) == 0) | ||||
| return CARLA_URI_MAP_ID_PARAM_SAMPLE_RATE; | return CARLA_URI_MAP_ID_PARAM_SAMPLE_RATE; | ||||
| if (std::strcmp(uri, LV2_UI__windowTitle) == 0) | |||||
| return CARLA_URI_MAP_ID_UI_WINDOW_TITLE; | |||||
| // Custom | // Custom | ||||
| if (std::strcmp(uri, URI_CARLA_ATOM_WORKER) == 0) | |||||
| return CARLA_URI_MAP_ID_CARLA_ATOM_WORKER; | |||||
| if (std::strcmp(uri, URI_CARLA_FRONTEND_WIN_ID) == 0) | if (std::strcmp(uri, URI_CARLA_FRONTEND_WIN_ID) == 0) | ||||
| return CARLA_URI_MAP_ID_FRONTEND_WIN_ID; | |||||
| if (std::strcmp(uri, URI_CARLA_WORKER) == 0) | |||||
| return CARLA_URI_MAP_ID_ATOM_WORKER; | |||||
| return CARLA_URI_MAP_ID_CARLA_FRONTEND_WIN_ID; | |||||
| // Custom types | // Custom types | ||||
| return ((Lv2Plugin*)handle)->getCustomURID(uri); | return ((Lv2Plugin*)handle)->getCustomURID(uri); | ||||
| @@ -5463,8 +5490,6 @@ private: | |||||
| return LV2_ATOM__URID; | return LV2_ATOM__URID; | ||||
| if (urid == CARLA_URI_MAP_ID_ATOM_VECTOR) | if (urid == CARLA_URI_MAP_ID_ATOM_VECTOR) | ||||
| return LV2_ATOM__Vector; | return LV2_ATOM__Vector; | ||||
| if (urid == CARLA_URI_MAP_ID_ATOM_WORKER) | |||||
| return URI_CARLA_WORKER; // custom | |||||
| if (urid == CARLA_URI_MAP_ID_ATOM_TRANSFER_ATOM) | if (urid == CARLA_URI_MAP_ID_ATOM_TRANSFER_ATOM) | ||||
| return LV2_ATOM__atomTransfer; | return LV2_ATOM__atomTransfer; | ||||
| if (urid == CARLA_URI_MAP_ID_ATOM_TRANSFER_EVENT) | if (urid == CARLA_URI_MAP_ID_ATOM_TRANSFER_EVENT) | ||||
| @@ -5515,7 +5540,13 @@ private: | |||||
| return LV2_MIDI__MidiEvent; | return LV2_MIDI__MidiEvent; | ||||
| if (urid == CARLA_URI_MAP_ID_PARAM_SAMPLE_RATE) | if (urid == CARLA_URI_MAP_ID_PARAM_SAMPLE_RATE) | ||||
| return LV2_PARAMETERS__sampleRate; | return LV2_PARAMETERS__sampleRate; | ||||
| if (urid == CARLA_URI_MAP_ID_FRONTEND_WIN_ID) | |||||
| if (urid == CARLA_URI_MAP_ID_UI_WINDOW_TITLE) | |||||
| return LV2_UI__windowTitle; | |||||
| // Custom | |||||
| if (urid == CARLA_URI_MAP_ID_CARLA_ATOM_WORKER) | |||||
| return URI_CARLA_ATOM_WORKER; | |||||
| if (urid == CARLA_URI_MAP_ID_CARLA_FRONTEND_WIN_ID) | |||||
| return URI_CARLA_FRONTEND_WIN_ID; | return URI_CARLA_FRONTEND_WIN_ID; | ||||
| // Custom types | // Custom types | ||||