Signed-off-by: falkTX <falktx@falktx.com>tags/v2.1-rc1
| @@ -794,7 +794,7 @@ CARLA_EXPORT float carla_get_output_peak_value(uint pluginId, bool isLeft); | |||||
| * Render a plugin's inline display. | * Render a plugin's inline display. | ||||
| * @param pluginId Plugin | * @param pluginId Plugin | ||||
| */ | */ | ||||
| CARLA_EXPORT CarlaInlineDisplayImageSurface* carla_render_inline_display(uint pluginId, int width, int height); | |||||
| CARLA_EXPORT const CarlaInlineDisplayImageSurface* carla_render_inline_display(uint pluginId, uint32_t width, uint32_t height); | |||||
| /*! | /*! | ||||
| * Enable or disable a plugin. | * Enable or disable a plugin. | ||||
| @@ -1665,12 +1665,15 @@ float carla_get_output_peak_value(uint pluginId, bool isLeft) | |||||
| CARLA_BACKEND_START_NAMESPACE | CARLA_BACKEND_START_NAMESPACE | ||||
| // defined in CarlaPluginInternal.cpp | |||||
| const void* carla_render_inline_display_internal(CarlaPlugin* plugin, uint32_t width, uint32_t height); | |||||
| // defined in CarlaPluginLV2.cpp | // defined in CarlaPluginLV2.cpp | ||||
| void* carla_render_inline_display_lv2(CarlaPlugin* plugin, int width, int height); | |||||
| const void* carla_render_inline_display_lv2(CarlaPlugin* plugin, uint32_t width, uint32_t height); | |||||
| CARLA_BACKEND_END_NAMESPACE | CARLA_BACKEND_END_NAMESPACE | ||||
| CarlaInlineDisplayImageSurface* carla_render_inline_display(uint pluginId, int width, int height) | |||||
| const CarlaInlineDisplayImageSurface* carla_render_inline_display(uint pluginId, uint32_t width, uint32_t height) | |||||
| { | { | ||||
| CARLA_SAFE_ASSERT_RETURN(gStandalone.engine != nullptr, nullptr); | CARLA_SAFE_ASSERT_RETURN(gStandalone.engine != nullptr, nullptr); | ||||
| @@ -1678,9 +1681,16 @@ CarlaInlineDisplayImageSurface* carla_render_inline_display(uint pluginId, int w | |||||
| CARLA_SAFE_ASSERT_RETURN(plugin != nullptr, nullptr); | CARLA_SAFE_ASSERT_RETURN(plugin != nullptr, nullptr); | ||||
| carla_debug("carla_render_inline_display(%i, %i, %i)", pluginId, width, height); | carla_debug("carla_render_inline_display(%i, %i, %i)", pluginId, width, height); | ||||
| CARLA_SAFE_ASSERT_RETURN(plugin->getType() == CB::PLUGIN_LV2, nullptr); | |||||
| return (CarlaInlineDisplayImageSurface*)CB::carla_render_inline_display_lv2(plugin, width, height); | |||||
| switch (plugin->getType()) | |||||
| { | |||||
| case CB::PLUGIN_INTERNAL: | |||||
| return (const CarlaInlineDisplayImageSurface*)CB::carla_render_inline_display_internal(plugin, width, height); | |||||
| case CB::PLUGIN_LV2: | |||||
| return (const CarlaInlineDisplayImageSurface*)CB::carla_render_inline_display_lv2(plugin, width, height); | |||||
| default: | |||||
| return nullptr; | |||||
| } | |||||
| } | } | ||||
| // -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
| @@ -5068,13 +5068,13 @@ public: | |||||
| fInlineDisplayNeedsRedraw = true; | fInlineDisplayNeedsRedraw = true; | ||||
| } | } | ||||
| LV2_Inline_Display_Image_Surface* renderInlineDisplay(int width, int height) | |||||
| const LV2_Inline_Display_Image_Surface* renderInlineDisplay(const uint32_t width, const uint32_t height) | |||||
| { | { | ||||
| CARLA_SAFE_ASSERT_RETURN(fExt.inlineDisplay != nullptr && fExt.inlineDisplay->render != nullptr, nullptr); | CARLA_SAFE_ASSERT_RETURN(fExt.inlineDisplay != nullptr && fExt.inlineDisplay->render != nullptr, nullptr); | ||||
| CARLA_SAFE_ASSERT_RETURN(width > 0, nullptr); | CARLA_SAFE_ASSERT_RETURN(width > 0, nullptr); | ||||
| CARLA_SAFE_ASSERT_RETURN(height > 0, nullptr); | CARLA_SAFE_ASSERT_RETURN(height > 0, nullptr); | ||||
| return fExt.inlineDisplay->render(fHandle, static_cast<uint32_t>(width), static_cast<uint32_t>(height)); | |||||
| return fExt.inlineDisplay->render(fHandle, width, height); | |||||
| } | } | ||||
| // ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
| @@ -6980,9 +6980,9 @@ CarlaPlugin* CarlaPlugin::newLV2(const Initializer& init) | |||||
| } | } | ||||
| // used in CarlaStandalone.cpp | // used in CarlaStandalone.cpp | ||||
| void* carla_render_inline_display_lv2(CarlaPlugin* plugin, int width, int height); | |||||
| const void* carla_render_inline_display_lv2(CarlaPlugin* plugin, uint32_t width, uint32_t height); | |||||
| void* carla_render_inline_display_lv2(CarlaPlugin* plugin, int width, int height) | |||||
| const void* carla_render_inline_display_lv2(CarlaPlugin* plugin, uint32_t width, uint32_t height) | |||||
| { | { | ||||
| CarlaPluginLV2* const lv2Plugin = (CarlaPluginLV2*)plugin; | CarlaPluginLV2* const lv2Plugin = (CarlaPluginLV2*)plugin; | ||||
| @@ -1295,6 +1295,8 @@ public: | |||||
| pData->hints |= PLUGIN_NEEDS_UI_MAIN_THREAD; | pData->hints |= PLUGIN_NEEDS_UI_MAIN_THREAD; | ||||
| if (fDescriptor->hints & NATIVE_PLUGIN_USES_MULTI_PROGS) | if (fDescriptor->hints & NATIVE_PLUGIN_USES_MULTI_PROGS) | ||||
| pData->hints |= PLUGIN_USES_MULTI_PROGS; | pData->hints |= PLUGIN_USES_MULTI_PROGS; | ||||
| if (fDescriptor->hints & NATIVE_PLUGIN_HAS_INLINE_DISPLAY) | |||||
| pData->hints |= PLUGIN_HAS_INLINE_DISPLAY; | |||||
| // extra plugin hints | // extra plugin hints | ||||
| pData->extraHints = 0x0; | pData->extraHints = 0x0; | ||||
| @@ -2363,6 +2365,18 @@ public: | |||||
| // ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
| const NativeInlineDisplayImageSurface* renderInlineDisplay(const uint32_t width, const uint32_t height) | |||||
| { | |||||
| CARLA_SAFE_ASSERT_RETURN(fDescriptor->hints & NATIVE_PLUGIN_HAS_INLINE_DISPLAY, nullptr); | |||||
| CARLA_SAFE_ASSERT_RETURN(fDescriptor->render_inline_display, nullptr); | |||||
| CARLA_SAFE_ASSERT_RETURN(width > 0, nullptr); | |||||
| CARLA_SAFE_ASSERT_RETURN(height > 0, nullptr); | |||||
| return fDescriptor->render_inline_display(fHandle, width, height); | |||||
| } | |||||
| // ------------------------------------------------------------------- | |||||
| protected: | protected: | ||||
| const NativeTimeInfo* handleGetTimeInfo() const noexcept | const NativeTimeInfo* handleGetTimeInfo() const noexcept | ||||
| { | { | ||||
| @@ -2750,6 +2764,16 @@ CarlaPlugin* CarlaPlugin::newNative(const Initializer& init) | |||||
| return plugin; | return plugin; | ||||
| } | } | ||||
| // used in CarlaStandalone.cpp | |||||
| const void* carla_render_inline_display_internal(CarlaPlugin* plugin, uint32_t width, uint32_t height); | |||||
| const void* carla_render_inline_display_internal(CarlaPlugin* plugin, uint32_t width, uint32_t height) | |||||
| { | |||||
| CarlaPluginNative* const nativePlugin = (CarlaPluginNative*)plugin; | |||||
| return nativePlugin->renderInlineDisplay(width, height); | |||||
| } | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| CARLA_BACKEND_END_NAMESPACE | CARLA_BACKEND_END_NAMESPACE | ||||
| @@ -89,9 +89,9 @@ typedef struct { | |||||
| * @param h the max available height | * @param h the max available height | ||||
| * @return pointer to a LV2_Inline_Display_Image_Surface or NULL | * @return pointer to a LV2_Inline_Display_Image_Surface or NULL | ||||
| */ | */ | ||||
| LV2_Inline_Display_Image_Surface* (*render)( | |||||
| LV2_Handle instance, | |||||
| uint32_t w, uint32_t h); | |||||
| const LV2_Inline_Display_Image_Surface* (*render)( | |||||
| LV2_Handle instance, | |||||
| uint32_t w, uint32_t h); | |||||
| } LV2_Inline_Display_Interface; | } LV2_Inline_Display_Interface; | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||