Skip to content

Commit 0fe5cbb

Browse files
committed
Release 1.0.8
* Added CLAP plugin format support. * Changed VST parameter normalized value mapping for logarithmic parameters. * Added possibility to specify JACK connections that should be estimated by the standalone JACK plugin when the plugin connects to the JACK server. * Significantly improved text value parsing into the port value. * Implemented plugin metadata validator. * Fixed bug related to modification of cyclic parameters for several plugin formats. * Fixed possible crash when reading data from clipboard.
2 parents fba33a3 + f42133b commit 0fe5cbb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+12000
-619
lines changed

CHANGELOG

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22
* RECENT CHANGES
33
*******************************************************************************
44

5+
=== 1.0.8 ===
6+
* Added CLAP plugin format support.
7+
* Changed VST parameter normalized value mapping for logarithmic parameters.
8+
* Added possibility to specify JACK connections that should be estimated by the
9+
standalone JACK plugin when the plugin connects to the JACK server.
10+
* Significantly improved text value parsing into the port value.
11+
* Implemented plugin metadata validator.
12+
* Fixed bug related to modification of cyclic parameters for several plugin formats.
13+
* Fixed possible crash when reading data from clipboard.
14+
515
=== 1.0.7 ===
616
* Improved preset loading for incomplete presets that are missing some plugin parameters.
717
* Fixed broken configuration save and load with relative file paths.

Makefile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,12 @@ help:
143143
$(MAKE) -f "$(BASEDIR)/make/configure.mk" $(@) VERBOSE="$(VERBOSE)"
144144
echo ""
145145
echo "Available FEATURES:"
146+
echo " clap CLAP plugin format binaries"
146147
echo " doc Generate standalone HTML documentation"
147-
echo " jack Standalone JACK plugins"
148-
echo " ladspa LADSPA plugins"
149-
echo " lv2 LV2 plugins"
150-
echo " vst2 VST 2.x plugin binaries"
148+
echo " jack Standalone JACK plugin format binaries"
149+
echo " ladspa LADSPA plugin format binaries"
150+
echo " lv2 LV2 plugin format binaries"
151+
echo " vst2 VST 2.x plugin format binaries"
151152
echo " xdg Desktop integration icons"
152153

153154

dependencies.mk

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
#------------------------------------------------------------------------------
2222
# Features enabled by default
23-
DEFAULT_FEATURES = doc ladspa lv2 vst2
23+
DEFAULT_FEATURES = clap doc ladspa lv2 vst2
2424

2525
#------------------------------------------------------------------------------
2626
# Plugin dependencies
@@ -50,6 +50,8 @@ TEST_DEPENDENCIES_UI = \
5050
#------------------------------------------------------------------------------
5151
# Platform-specific dependencies
5252
ifeq ($(PLATFORM),Linux)
53+
DEFAULT_FEATURES += jack
54+
5355
DEPENDENCIES_BIN += \
5456
LSP_R3D_GLX_LIB
5557

@@ -60,6 +62,8 @@ ifeq ($(PLATFORM),Linux)
6062
endif
6163

6264
ifeq ($(PLATFORM),BSD)
65+
DEFAULT_FEATURES += jack
66+
6367
DEPENDENCIES_BIN += \
6468
LSP_R3D_GLX_LIB
6569

@@ -310,6 +314,53 @@ ifeq ($(PLATFORM),Windows)
310314
LIBUUID
311315
endif
312316

317+
#------------------------------------------------------------------------------
318+
# VST build dependencies
319+
DEPENDENCIES_CLAP = \
320+
$(DEPENDENCIES_COMMON) \
321+
$(DEPENDENCIES_COMMON_UI)
322+
323+
DEPENDENCIES_CLAP_WRAP = \
324+
LIBDL \
325+
LSP_COMMON_LIB \
326+
LSP_3RD_PARTY
327+
328+
ifeq ($(PLATFORM),Linux)
329+
DEPENDENCIES_CLAP += \
330+
LIBPTHREAD \
331+
LIBDL \
332+
LIBSNDFILE \
333+
LIBX11 \
334+
LIBXRANDR \
335+
LIBCAIRO \
336+
LIBFREETYPE
337+
endif
338+
339+
ifeq ($(PLATFORM),BSD)
340+
DEPENDENCIES_CLAP += \
341+
LIBPTHREAD \
342+
LIBDL \
343+
LIBSNDFILE \
344+
LIBX11 \
345+
LIBXRANDR \
346+
LIBCAIRO \
347+
LIBFREETYPE
348+
endif
349+
350+
ifeq ($(PLATFORM),Windows)
351+
DEPENDENCIES_CLAP += \
352+
LIBSHLWAPI \
353+
LIBWINMM \
354+
LIBMSACM \
355+
LIBMPR \
356+
LIBGDI32 \
357+
LIBD2D1 \
358+
LIBOLE \
359+
LIBWINCODEC \
360+
LIBDWRITE \
361+
LIBUUID
362+
endif
363+
313364
#------------------------------------------------------------------------------
314365
# List of dependencies
315366
DEPENDENCIES = \
@@ -321,7 +372,8 @@ DEPENDENCIES = \
321372
$(DEPENDENCIES_LV2) \
322373
$(DEPENDENCIES_LV2_UI) \
323374
$(DEPENDENCIES_LV2TTL_GEN) \
324-
$(DEPENDENCIES_VST2)
375+
$(DEPENDENCIES_VST2) \
376+
$(DEPENDENCIES_CLAP)
325377

326378
#------------------------------------------------------------------------------
327379
# All possible dependencies

include/lsp-plug.in/plug-fw/const.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
#define OPTIMAL_ALIGN 64 /* Optimal data structure alignment */
4848
#define MAX_PARAM_ID_BYTES 64
4949
#define FLOAT_CMP_PREC 1e-6f /* Float comparison precision */
50+
#define UI_FRAMES_PER_SECOND 25 /* Preferred UI FPS */
5051

5152
// Prefix for built-in resource
5253
#define LSP_BUILTIN_PREFIX "builtin://"

include/lsp-plug.in/plug-fw/ctl/3d/Area3D.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,18 +121,19 @@ namespace lsp
121121

122122
public:
123123
explicit Area3D(ui::IWrapper *wrapper, tk::Area3D *widget);
124-
virtual ~Area3D();
124+
virtual ~Area3D() override;
125125

126-
virtual status_t init();
126+
virtual status_t init() override;
127127

128128
protected:
129-
virtual void property_changed(tk::Property *prop);
129+
virtual void property_changed(tk::Property *prop) override;
130130

131131
public:
132-
virtual void set(ui::UIContext *ctx, const char *name, const char *value);
133-
virtual status_t add(ui::UIContext *ctx, ctl::Widget *child);
132+
virtual void set(ui::UIContext *ctx, const char *name, const char *value) override;
133+
virtual status_t add(ui::UIContext *ctx, ctl::Widget *child) override;
134+
virtual void end(ui::UIContext *ctx) override;
134135

135-
virtual void notify(ui::IPort *port);
136+
virtual void notify(ui::IPort *port) override;
136137

137138
public:
138139
void query_draw();

include/lsp-plug.in/plug-fw/ctl/PluginWindow.h

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,22 @@ namespace lsp
114114
protected:
115115
bool bResizable;
116116

117-
tk::WidgetContainer *wContent; // The main box containing all widgets
118-
tk::Window *wGreeting; // Greeting message window
119-
tk::Window *wAbout; // About message window
120-
tk::Menu *wMenu; // Menu
121-
tk::Menu *wUIScaling; // UI Scaling menu
122-
tk::Menu *wFontScaling; // UI Scaling menu
123-
tk::Menu *wResetSettings; // Reset settings menu
124-
tk::FileDialog *wExport; // Export settings dialog
125-
tk::FileDialog *wImport; // Import settings dialog
126-
tk::MenuItem *wPreferHost; // Prefer host menu item
127-
tk::CheckBox *wRelPaths; // Relative path checkbox
117+
ctl::Window *pUserPaths; // User paths controller
118+
119+
tk::WidgetContainer *wContent; // The main box containing all widgets
120+
tk::Window *wGreeting; // Greeting message window
121+
tk::Window *wAbout; // About message window
122+
tk::Window *wUserPaths; // User paths configuration
123+
tk::Menu *wMenu; // Menu
124+
tk::Menu *wUIScaling; // UI Scaling menu
125+
tk::Menu *wFontScaling; // UI Scaling menu
126+
tk::Menu *wResetSettings; // Reset settings menu
127+
tk::FileDialog *wExport; // Export settings dialog
128+
tk::FileDialog *wImport; // Import settings dialog
129+
tk::MenuItem *wPreferHost; // Prefer host menu item
130+
tk::MenuItem *wKnobScaleEnable; // Enable knob scale actions
131+
tk::MenuItem *wOverrideHydrogen; // Override Hydrogen kits feature
132+
tk::CheckBox *wRelPaths; // Relative path checkbox
128133

129134
ui::IPort *pPVersion;
130135
ui::IPort *pPBypass;
@@ -136,6 +141,8 @@ namespace lsp
136141
ui::IPort *pUIScalingHost;
137142
ui::IPort *pUIFontScaling;
138143
ui::IPort *pVisualSchema;
144+
ui::IPort *pKnobScaleEnable;
145+
ui::IPort *pOverrideHydrogen;
139146

140147
ConfigSink *pConfigSink; // Configuration sink
141148

@@ -164,7 +171,7 @@ namespace lsp
164171
static status_t slot_export_settings_to_clipboard(tk::Widget *sender, void *ptr, void *data);
165172
static status_t slot_import_settings_from_file(tk::Widget *sender, void *ptr, void *data);
166173
static status_t slot_import_settings_from_clipboard(tk::Widget *sender, void *ptr, void *data);
167-
static status_t slot_reset_settings(tk::Widget *sender, void *ptr, void *data);\
174+
static status_t slot_reset_settings(tk::Widget *sender, void *ptr, void *data);
168175
static status_t slot_confirm_reset_settings(tk::Widget *sender, void *ptr, void *data);
169176

170177
static status_t slot_debug_dump(tk::Widget *sender, void *ptr, void *data);
@@ -199,6 +206,13 @@ namespace lsp
199206
static status_t slot_scale_mouse_up(tk::Widget *sender, void *ptr, void *data);
200207

201208
static status_t slot_relative_path_changed(tk::Widget *sender, void *ptr, void *data);
209+
static status_t slot_enable_slot_scale_changed(tk::Widget *sender, void *ptr, void *data);
210+
211+
static status_t slot_show_user_paths_dialog(tk::Widget *sender, void *ptr, void *data);
212+
static status_t slot_user_paths_submit(tk::Widget *sender, void *ptr, void *data);
213+
static status_t slot_user_paths_close(tk::Widget *sender, void *ptr, void *data);
214+
215+
static status_t slot_override_hydrogen_kits_changed(tk::Widget *sender, void *ptr, void *data);
202216

203217
protected:
204218
static i18n::IDictionary *get_default_dict(tk::Widget *src);
@@ -209,6 +223,7 @@ namespace lsp
209223
void do_destroy();
210224
status_t show_greeting_window();
211225
status_t show_about_window();
226+
status_t show_user_paths_window();
212227
status_t locate_window();
213228
status_t show_menu(tk::Widget *menu, tk::Widget *actor, void *data);
214229
tk::Label *create_label(tk::WidgetContainer *dst, const char *key, const char *style_name);
@@ -223,6 +238,7 @@ namespace lsp
223238
status_t init_scaling_support(tk::Menu *menu);
224239
status_t init_font_scaling_support(tk::Menu *menu);
225240
status_t init_visual_schema_support(tk::Menu *menu);
241+
status_t init_ui_behaviour(tk::Menu *menu);
226242
status_t init_presets(tk::Menu *menu);
227243
status_t scan_presets(const char *location, lltl::darray<resource::resource_t> *presets);
228244
status_t create_main_menu();
@@ -232,6 +248,13 @@ namespace lsp
232248
void sync_ui_scaling();
233249
void sync_font_scaling();
234250
void sync_visual_schemas();
251+
void sync_knob_scale_enabled();
252+
void sync_override_hydrogen();
253+
void apply_user_paths_settings();
254+
void read_path_param(tk::String *value, const char *port_id);
255+
void read_bool_param(tk::Boolean *value, const char *port_id);
256+
void commit_path_param(tk::String *value, const char *port_id);
257+
void commit_bool_param(tk::Boolean *value, const char *port_id);
235258
void bind_trigger(const char *uid, tk::slot_t ev, tk::event_handler_t handler);
236259

237260
status_t init_context(ui::UIContext *ctx);

include/lsp-plug.in/plug-fw/ctl/simple/Knob.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ namespace lsp
5454
KF_LOG = 1 << 7,
5555
KF_LOG_SET = 1 << 8,
5656
KF_CYCLIC = 1 << 9,
57-
KF_CYCLIC_SET = 1 << 10
57+
KF_CYCLIC_SET = 1 << 10,
58+
KF_VALUE = 1 << 11
5859
};
5960

6061
protected:
@@ -64,12 +65,13 @@ namespace lsp
6465
ctl::Color sHoleColor;
6566
ctl::Color sTipColor;
6667
ctl::Color sBalanceTipColor;
68+
ctl::Expression sMin;
69+
ctl::Expression sMax;
6770

6871
ui::IPort *pPort;
72+
ui::IPort *pScaleEnablePort;
6973

7074
size_t nFlags;
71-
float fMin;
72-
float fMax;
7375
float fDefault;
7476
float fStep;
7577
float fAStep;
@@ -85,7 +87,8 @@ namespace lsp
8587
protected:
8688
void submit_value();
8789
void set_default_value();
88-
void commit_value(float value);
90+
void commit_value(size_t flags);
91+
void sync_scale_state();
8992

9093
public:
9194
explicit Knob(ui::IWrapper *wrapper, tk::Knob *widget);
@@ -98,8 +101,8 @@ namespace lsp
98101
virtual void notify(ui::IPort *port);
99102
virtual void end(ui::UIContext *ctx);
100103
};
101-
}
102-
}
104+
} /* namespace ctl */
105+
} /* namespace tk */
103106

104107

105108

0 commit comments

Comments
 (0)