Skip to content

Commit

Permalink
Release 1.0.27
Browse files Browse the repository at this point in the history
* Updated VST3 SDK to 3.7.12, may be breaking changes related to parameter identifiers as
  Steinberg has twice reduced the set of valid paremeter identifiers.
* Fixed bug related to window sizing for CLAP plugin format.
* Fixed unneeded resource object deletion and use-after-free in VST plugin wrapper.
* Updated module versions in dependencies.
  • Loading branch information
sadko4u committed Oct 11, 2024
2 parents 5b4013a + 82fc393 commit 611421d
Show file tree
Hide file tree
Showing 9 changed files with 148 additions and 104 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
* RECENT CHANGES
*******************************************************************************

=== 1.0.27 ===
* Updated VST3 SDK to 3.7.12, may be breaking changes related to parameter identifiers as
Steinberg has twice reduced the set of valid paremeter identifiers.
* Fixed bug related to window sizing for CLAP plugin format.
* Fixed unneeded resource object deletion and use-after-free in VST plugin wrapper.
* Updated module versions in dependencies.

=== 1.0.26 ===
* Added support of audio send and audio return by the engine.
* Implemented AudioNavigator controller.
Expand Down
2 changes: 1 addition & 1 deletion include/lsp-plug.in/plug-fw/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

#define LSP_PLUGIN_FW_MAJOR 1
#define LSP_PLUGIN_FW_MINOR 0
#define LSP_PLUGIN_FW_MICRO 26
#define LSP_PLUGIN_FW_MICRO 27

#if defined(LSP_PLUGIN_FW_PUBLISHER)
#define LSP_PLUGIN_FW_PUBLIC LSP_EXPORT_MODIFIER
Expand Down
54 changes: 45 additions & 9 deletions include/lsp-plug.in/plug-fw/wrap/clap/impl/ui_wrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ namespace lsp
bUIInitialized = false;
bRequestProcess = false;
bUIActive = false;
bRealizeActive = false;

#ifdef LSP_CLAP_OWN_EVENT_LOOP
pUIThread = NULL;
Expand Down Expand Up @@ -535,38 +536,51 @@ namespace lsp
status_t UIWrapper::slot_ui_resize(tk::Widget *sender, void *ptr, void *data)
{
lsp_trace("sender = %p, ptr = %p, data = %p", sender, ptr, data);
const ws::rectangle_t *r = static_cast<ws::rectangle_t *>(data);
lsp_trace("resized.w = %d, resized.h = %d", int(r->nWidth), int(r->nHeight));

UIWrapper *this_ = static_cast<UIWrapper *>(ptr);
tk::Window *wnd = this_->window();
if ((wnd == NULL) || (!wnd->visibility()->get()))
return STATUS_OK;

ws::rectangle_t rr;
if (wnd->get_screen_rectangle(&rr) != STATUS_OK)
return STATUS_OK;

this_->pExt->gui->request_resize(this_->pExt->host, rr.nWidth, rr.nHeight);
ws::size_limit_t sr;
wnd->get_padded_size_limits(&sr);
if (((sr.nMinWidth >= 0) && (r->nWidth < sr.nMinWidth)) ||
((sr.nMinHeight >= 0) && (r->nHeight < sr.nMinHeight)))
{
this_->pExt->gui->request_resize(this_->pExt->host, sr.nMinWidth, sr.nMinHeight);
}

return STATUS_OK;
}

status_t UIWrapper::slot_ui_show(tk::Widget *sender, void *ptr, void *data)
{
lsp_trace("sender = %p, ptr = %p, data = %p", sender, ptr, data);

return STATUS_OK;
}

status_t UIWrapper::slot_ui_realized(tk::Widget *sender, void *ptr, void *data)
{
#ifdef LSP_TRACE
lsp_trace("sender = %p, ptr = %p, data = %p", sender, ptr, data);
const ws::rectangle_t *r = static_cast<ws::rectangle_t *>(data);
lsp_trace("realized.w = %d, realized.h = %d", int(r->nWidth), int(r->nHeight));
#endif /* LSP_TRACE */

UIWrapper *this_ = static_cast<UIWrapper *>(ptr);
tk::Window *wnd = this_->window();
UIWrapper *self = static_cast<UIWrapper *>(ptr);
if (self->bRealizeActive)
return STATUS_OK;
self->bRealizeActive = true;
lsp_finally { self->bRealizeActive = false; };

tk::Window *wnd = self->window();
ws::rectangle_t rr;
if (wnd->get_screen_rectangle(&rr) != STATUS_OK)
return STATUS_OK;
this_->pExt->gui->request_resize(this_->pExt->host, rr.nWidth, rr.nHeight);
self->pExt->gui->request_resize(self->pExt->host, rr.nWidth, rr.nHeight);

return STATUS_OK;
}
Expand Down Expand Up @@ -713,7 +727,15 @@ namespace lsp
return false;
lsp_finally { sMutex.unlock(); };

wnd->resize_window(width, height);
ws::rectangle_t r;
wnd->get_padded_screen_rectangle(&r);

if ((r.nWidth != ssize_t(width)) && (r.nHeight != ssize_t(height)))
{
lsp_trace("width = {%d, %d}, height = {%d, %d}, call for resize",
int(r.nWidth), int(width), int(r.nHeight), int(height));
wnd->resize_window(width, height);
}

return true;
}
Expand Down Expand Up @@ -838,6 +860,20 @@ namespace lsp
return res;
}

// Do the sync barrier
sMutex.lock();
lsp_finally { sMutex.unlock(); };

// Resize window
ws::size_limit_t sr;
wnd->get_padded_size_limits(&sr);
lsp_trace("min_w=%d, min_h=%d", int(sr.nMinWidth), int(sr.nMinHeight));
if ((sr.nMinWidth >= 0) && (sr.nMinHeight >= 0))
{
lsp_trace("request_resize(%d, %d)", int(sr.nMinWidth), int(sr.nMinHeight));
pExt->gui->request_resize(pExt->host, sr.nMinWidth, sr.nMinHeight);
}

// Update UI status
bUIActive = true;
if (pWrapper != NULL)
Expand Down
1 change: 1 addition & 0 deletions include/lsp-plug.in/plug-fw/wrap/clap/ui_wrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ namespace lsp
bool bUIInitialized; // UI initialized flag
bool bRequestProcess;// Request the process() call flag
bool bUIActive; // UI is active flag
bool bRealizeActive; // Realize is active

#ifdef LSP_CLAP_OWN_EVENT_LOOP
ipc::Thread *pUIThread; // Thread that performs the UI event loop
Expand Down
7 changes: 0 additions & 7 deletions include/lsp-plug.in/plug-fw/wrap/vst2/impl/wrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -222,13 +222,6 @@ namespace lsp
}
vGenMetadata.flush();

// Delete the loader
if (pLoader != NULL)
{
delete pLoader;
pLoader = NULL;
}

// Clear all port lists
vAudioPorts.flush();
vAudioBuffers.flush();
Expand Down
4 changes: 2 additions & 2 deletions include/lsp-plug.in/plug-fw/wrap/vst3/data.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ namespace lsp
constexpr const char *ID_MSG_DEACTIVATE_UI = "UIDeactivate";
constexpr const char *ID_MSG_PLAY_SAMPLE = "PlaySample";

constexpr const Steinberg::Vst::ParamID MIDI_MAPPING_PARAM_BASE = 0x80000000;
constexpr const Steinberg::Vst::ParamID PARAM_ID_MODULO = 0x7fffffff;
constexpr const Steinberg::Vst::ParamID MIDI_MAPPING_PARAM_BASE = 0x40000000;
constexpr const Steinberg::Vst::ParamID PARAM_ID_MODULO = 0x3fffffff;

constexpr const float MIDI_FLOAT_TO_BYTE = 127.0f;
constexpr const float MIDI_FLOAT_TO_BEND = 16383.0f;
Expand Down
26 changes: 13 additions & 13 deletions modules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -19,80 +19,80 @@
#

# Variables that describe dependencies
LSP_3RD_PARTY_VERSION := 1.0.18
LSP_3RD_PARTY_VERSION := 1.0.19
LSP_3RD_PARTY_NAME := lsp-3rd-party
LSP_3RD_PARTY_TYPE := hdr
LSP_3RD_PARTY_INC_OPT := -idirafter
LSP_3RD_PARTY_URL_RO := https://github.com/lsp-plugins/$(LSP_3RD_PARTY_NAME).git
LSP_3RD_PARTY_URL_RW := git@github.com:lsp-plugins/$(LSP_3RD_PARTY_NAME).git

LSP_COMMON_LIB_VERSION := 1.0.38
LSP_COMMON_LIB_VERSION := 1.0.39
LSP_COMMON_LIB_NAME := lsp-common-lib
LSP_COMMON_LIB_TYPE := src
LSP_COMMON_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_COMMON_LIB_NAME).git
LSP_COMMON_LIB_URL_RW := git@github.com:lsp-plugins/$(LSP_COMMON_LIB_NAME).git

LSP_DSP_LIB_VERSION := 1.0.26
LSP_DSP_LIB_VERSION := 1.0.27
LSP_DSP_LIB_NAME := lsp-dsp-lib
LSP_DSP_LIB_TYPE := src
LSP_DSP_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_DSP_LIB_NAME).git
LSP_DSP_LIB_URL_RW := git@github.com:lsp-plugins/$(LSP_DSP_LIB_NAME).git

LSP_DSP_UNITS_VERSION := 1.0.25
LSP_DSP_UNITS_VERSION := 1.0.26
LSP_DSP_UNITS_NAME := lsp-dsp-units
LSP_DSP_UNITS_TYPE := src
LSP_DSP_UNITS_URL_RO := https://github.com/lsp-plugins/$(LSP_DSP_UNITS_NAME).git
LSP_DSP_UNITS_URL_RW := git@github.com:lsp-plugins/$(LSP_DSP_UNITS_NAME).git

LSP_LLTL_LIB_VERSION := 1.0.21
LSP_LLTL_LIB_VERSION := 1.0.22
LSP_LLTL_LIB_NAME := lsp-lltl-lib
LSP_LLTL_LIB_TYPE := src
LSP_LLTL_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_LLTL_LIB_NAME).git
LSP_LLTL_LIB_URL_RW := git@github.com:lsp-plugins/$(LSP_LLTL_LIB_NAME).git

LSP_R3D_BASE_LIB_VERSION := 1.0.20
LSP_R3D_BASE_LIB_VERSION := 1.0.21
LSP_R3D_BASE_LIB_NAME := lsp-r3d-base-lib
LSP_R3D_BASE_LIB_TYPE := src
LSP_R3D_BASE_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_R3D_BASE_LIB_NAME).git
LSP_R3D_BASE_LIB_URL_RW := git@github.com:lsp-plugins/$(LSP_R3D_BASE_LIB_NAME).git

LSP_R3D_IFACE_VERSION := 1.0.20
LSP_R3D_IFACE_VERSION := 1.0.21
LSP_R3D_IFACE_NAME := lsp-r3d-iface
LSP_R3D_IFACE_TYPE := src
LSP_R3D_IFACE_URL_RO := https://github.com/lsp-plugins/$(LSP_R3D_IFACE_NAME).git
LSP_R3D_IFACE_URL_RW := git@github.com:lsp-plugins/$(LSP_R3D_IFACE_NAME).git

LSP_R3D_GLX_LIB_VERSION := 1.0.20
LSP_R3D_GLX_LIB_VERSION := 1.0.21
LSP_R3D_GLX_LIB_NAME := lsp-r3d-glx-lib
LSP_R3D_GLX_LIB_TYPE := bin
LSP_R3D_GLX_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_R3D_GLX_LIB_NAME).git
LSP_R3D_GLX_LIB_URL_RW := git@github.com:lsp-plugins/$(LSP_R3D_GLX_LIB_NAME).git

LSP_R3D_WGL_LIB_VERSION := 1.0.15
LSP_R3D_WGL_LIB_VERSION := 1.0.16
LSP_R3D_WGL_LIB_NAME := lsp-r3d-wgl-lib
LSP_R3D_WGL_LIB_TYPE := bin
LSP_R3D_WGL_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_R3D_WGL_LIB_NAME).git
LSP_R3D_WGL_LIB_URL_RW := git@github.com:lsp-plugins/$(LSP_R3D_WGL_LIB_NAME).git

LSP_RUNTIME_LIB_VERSION := 1.0.24
LSP_RUNTIME_LIB_VERSION := 1.0.25
LSP_RUNTIME_LIB_NAME := lsp-runtime-lib
LSP_RUNTIME_LIB_TYPE := src
LSP_RUNTIME_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_RUNTIME_LIB_NAME).git
LSP_RUNTIME_LIB_URL_RW := git@github.com:lsp-plugins/$(LSP_RUNTIME_LIB_NAME).git

LSP_TEST_FW_VERSION := 1.0.27
LSP_TEST_FW_VERSION := 1.0.28
LSP_TEST_FW_NAME := lsp-test-fw
LSP_TEST_FW_TYPE := src
LSP_TEST_FW_URL_RO := https://github.com/lsp-plugins/$(LSP_TEST_FW_NAME).git
LSP_TEST_FW_URL_RW := git@github.com:lsp-plugins/$(LSP_TEST_FW_NAME).git

LSP_TK_LIB_VERSION := 1.0.24
LSP_TK_LIB_VERSION := 1.0.25
LSP_TK_LIB_NAME := lsp-tk-lib
LSP_TK_LIB_TYPE := src
LSP_TK_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_TK_LIB_NAME).git
LSP_TK_LIB_URL_RW := git@github.com:lsp-plugins/$(LSP_TK_LIB_NAME).git

LSP_WS_LIB_VERSION := 1.0.24
LSP_WS_LIB_VERSION := 1.0.25
LSP_WS_LIB_NAME := lsp-ws-lib
LSP_WS_LIB_TYPE := src
LSP_WS_LIB_URL_RO := https://github.com/lsp-plugins/$(LSP_WS_LIB_NAME).git
Expand Down
2 changes: 1 addition & 1 deletion project.mk
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ ARTIFACT_NAME = lsp-plugin-fw
ARTIFACT_DESC = LSP Plugin Framework for building LSP Plugins
ARTIFACT_HEADERS = lsp-plug.in
ARTIFACT_EXPORT_ALL = 1
ARTIFACT_VERSION = 1.0.26
ARTIFACT_VERSION = 1.0.27
Loading

0 comments on commit 611421d

Please sign in to comment.