Browse Source

Remove LV2 embed UI

tags/v2.1-alpha1-winvst
falkTX 7 years ago
parent
commit
7c6a87548c
3 changed files with 7 additions and 124 deletions
  1. +1
    -25
      source/plugin/carla-lv2-export.cpp
  2. +6
    -97
      source/plugin/carla-lv2.cpp
  3. +0
    -2
      source/utils/CarlaLv2Utils.hpp

+ 1
- 25
source/plugin/carla-lv2-export.cpp View File

@@ -138,19 +138,6 @@ static void writeManifestFile(PluginListManager& plm)
// UI

#ifdef HAVE_PYQT
# if defined(CARLA_OS_LINUX) && defined(HAVE_X11)
text += "<http://kxstudio.sf.net/carla/ui-embed>\n";
text += " a <" LV2_UI__X11UI "> ;\n";
text += " ui:binary <carla" PLUGIN_EXT "> ;\n";
text += " lv2:extensionData <" LV2_PROGRAMS__UIInterface "> ;\n";
text += " lv2:optionalFeature <" LV2_UI__fixedSize "> ,\n";
text += " <" LV2_UI__noUserResize "> ;\n";
text += " lv2:requiredFeature <" LV2_INSTANCE_ACCESS_URI "> ,\n";
text += " <" LV2_UI__resize "> ;\n";
text += " opts:supportedOption <" LV2_PARAMETERS__sampleRate "> .\n";
text += "\n";
# endif

text += "<http://kxstudio.sf.net/carla/ui-ext>\n";
text += " a <" LV2_EXTERNAL_UI__Widget "> ;\n";
text += " ui:binary <carla" PLUGIN_EXT "> ;\n";
@@ -325,18 +312,7 @@ static void writePluginFile(const NativePluginDescriptor* const pluginDesc)
#ifdef HAVE_PYQT
if (pluginDesc->hints & NATIVE_PLUGIN_HAS_UI)
{
# if defined(CARLA_OS_LINUX) && defined(HAVE_X11)
if (std::strncmp(pluginDesc->label, "carla", 5) == 0)
{
text += " ui:ui <http://kxstudio.sf.net/carla/ui-embed> ,\n";
text += " <http://kxstudio.sf.net/carla/ui-ext> ;\n";
}
else
# endif
{
text += " ui:ui <http://kxstudio.sf.net/carla/ui-ext> ;\n";
}

text += " ui:ui <http://kxstudio.sf.net/carla/ui-ext> ;\n";
text += "\n";
}
#endif


+ 6
- 97
source/plugin/carla-lv2.cpp View File

@@ -448,11 +448,10 @@ public:
// ----------------------------------------------------------------------------------------------------------------

void lv2ui_instantiate(LV2UI_Write_Function writeFunction, LV2UI_Controller controller,
LV2UI_Widget* widget, const LV2_Feature* const* features, const bool isEmbed)
LV2UI_Widget* widget, const LV2_Feature* const* features)
{
fUI.writeFunction = writeFunction;
fUI.controller = controller;
fUI.isEmbed = isEmbed;

if (fHost.uiName != nullptr)
{
@@ -460,60 +459,6 @@ public:
fHost.uiName = nullptr;
}

#if defined(CARLA_OS_LINUX) && defined(HAVE_X11)
// ---------------------------------------------------------------
// show embed UI if needed

if (isEmbed)
{
intptr_t parentId = 0;
const LV2UI_Resize* uiResize = nullptr;

for (int i=0; features[i] != nullptr; ++i)
{
if (std::strcmp(features[i]->URI, LV2_UI__parent) == 0)
{
parentId = (intptr_t)features[i]->data;
}
else if (std::strcmp(features[i]->URI, LV2_UI__resize) == 0)
{
uiResize = (const LV2UI_Resize*)features[i]->data;
}
}

// -----------------------------------------------------------
// see if the host can really embed the UI

if (parentId != 0)
{
// wait for remote side to be ready
fDescriptor->dispatcher(fHandle, NATIVE_PLUGIN_OPCODE_NULL, (int32_t)0xDEADF00D, 0xC0C0B00B, nullptr, 0.0f);

if (uiResize && uiResize->ui_resize != nullptr)
uiResize->ui_resize(uiResize->handle, 740, 512);

fHost.uiName = carla_strdup(fDescriptor->name);
fUI.isVisible = true;

char strBuf[0xff+1];
strBuf[0xff] = '\0';
std::snprintf(strBuf, 0xff, P_INTPTR, parentId);

carla_setenv("CARLA_PLUGIN_EMBED_WINID", strBuf);

fDescriptor->ui_show(fHandle, true);

carla_setenv("CARLA_PLUGIN_EMBED_WINID", "0");

const intptr_t winId(fDescriptor->dispatcher(fHandle, NATIVE_PLUGIN_OPCODE_NULL, (int32_t)0xDEADF00D, 0xC0C0B00B, nullptr, 0.0f));
CARLA_SAFE_ASSERT_RETURN(winId != 0,);

*widget = (LV2UI_Widget)winId;
return;
}
}
#endif

// ---------------------------------------------------------------
// see if the host supports external-ui

@@ -564,9 +509,6 @@ public:

*widget = nullptr;
return;

// maybe be unused
(void)isEmbed;
}

void lv2ui_port_event(uint32_t portIndex, uint32_t bufferSize, uint32_t format, const void* buffer) const
@@ -1005,13 +947,11 @@ static const void* lv2_extension_data(const char* uri)
// -----------------------------------------------------------------------
// LV2 UI descriptor functions

static LV2UI_Handle lv2ui_instantiate(LV2UI_Write_Function writeFunction, LV2UI_Controller controller,
LV2UI_Widget* widget, const LV2_Feature* const* features, const bool isEmbed)
static LV2UI_Handle lv2ui_instantiate(const LV2UI_Descriptor*, const char*, const char*,
LV2UI_Write_Function writeFunction, LV2UI_Controller controller,
LV2UI_Widget* widget, const LV2_Feature* const* features)
{
carla_debug("lv2ui_instantiate(..., %p, %p, %p)", writeFunction, controller, widget, features);
# if ! (defined(CARLA_OS_LINUX) && defined(HAVE_X11))
CARLA_SAFE_ASSERT_RETURN(! isEmbed, nullptr);
# endif

NativePlugin* plugin = nullptr;

@@ -1030,27 +970,11 @@ static LV2UI_Handle lv2ui_instantiate(LV2UI_Write_Function writeFunction, LV2UI_
return nullptr;
}

plugin->lv2ui_instantiate(writeFunction, controller, widget, features, isEmbed);
plugin->lv2ui_instantiate(writeFunction, controller, widget, features);

return (LV2UI_Handle)plugin;
}

# if defined(CARLA_OS_LINUX) && defined(HAVE_X11)
static LV2UI_Handle lv2ui_instantiate_embed(const LV2UI_Descriptor*, const char*, const char*,
LV2UI_Write_Function writeFunction, LV2UI_Controller controller,
LV2UI_Widget* widget, const LV2_Feature* const* features)
{
return lv2ui_instantiate(writeFunction, controller, widget, features, true);
}
# endif

static LV2UI_Handle lv2ui_instantiate_external(const LV2UI_Descriptor*, const char*, const char*,
LV2UI_Write_Function writeFunction, LV2UI_Controller controller,
LV2UI_Widget* widget, const LV2_Feature* const* features)
{
return lv2ui_instantiate(writeFunction, controller, widget, features, false);
}

#define uiPtr ((NativePlugin*)ui)

static void lv2ui_port_event(LV2UI_Handle ui, uint32_t portIndex, uint32_t bufferSize, uint32_t format, const void* buffer)
@@ -1168,24 +1092,9 @@ const LV2UI_Descriptor* lv2ui_descriptor(uint32_t index)
{
carla_debug("lv2ui_descriptor(%i)", index);

#if defined(CARLA_OS_LINUX) && defined(HAVE_X11)
static const LV2UI_Descriptor lv2UiEmbedDesc = {
/* URI */ "http://kxstudio.sf.net/carla/ui-embed",
/* instantiate */ lv2ui_instantiate_embed,
/* cleanup */ lv2ui_cleanup,
/* port_event */ lv2ui_port_event,
/* extension_data */ lv2ui_extension_data
};

if (index == 0)
return &lv2UiEmbedDesc;
else
--index;
#endif

static const LV2UI_Descriptor lv2UiExtDesc = {
/* URI */ "http://kxstudio.sf.net/carla/ui-ext",
/* instantiate */ lv2ui_instantiate_external,
/* instantiate */ lv2ui_instantiate,
/* cleanup */ lv2ui_cleanup,
/* port_event */ lv2ui_port_event,
/* extension_data */ lv2ui_extension_data


+ 0
- 2
source/utils/CarlaLv2Utils.hpp View File

@@ -1509,14 +1509,12 @@ protected:
const LV2_External_UI_Host* host;
LV2UI_Write_Function writeFunction;
LV2UI_Controller controller;
bool isEmbed;
bool isVisible;

UI()
: host(nullptr),
writeFunction(nullptr),
controller(nullptr),
isEmbed(false),
isVisible(false) {}
} fUI;



Loading…
Cancel
Save