summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-11-03 17:29:11 -0500
committerDavid Robillard <d@drobilla.net>2014-11-03 17:29:11 -0500
commit6e16f69c2645f54670dfb3af946e21a89fc8dd09 (patch)
tree66933a3cc52b9622f4d9cab45c1bb9b8817449e0 /libs
parent35672fb80a2258b01da60ba9514266b94c1493ff (diff)
Add menu to set frequency controls in beats, and half or double current value.
Test with e.g. fomp:cs_phaser1_lfo LFO frequency.
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/parameter_descriptor.h1
-rw-r--r--libs/ardour/ardour/session.h3
-rw-r--r--libs/ardour/lv2_plugin.cc5
3 files changed, 8 insertions, 1 deletions
diff --git a/libs/ardour/ardour/parameter_descriptor.h b/libs/ardour/ardour/parameter_descriptor.h
index 379d97ef3e..d647183b2d 100644
--- a/libs/ardour/ardour/parameter_descriptor.h
+++ b/libs/ardour/ardour/parameter_descriptor.h
@@ -37,6 +37,7 @@ struct ParameterDescriptor
NONE, ///< No unit
DB, ///< Decibels
MIDI_NOTE, ///< MIDI note number
+ HZ, ///< Frequency in Hertz
};
ParameterDescriptor(const Evoral::Parameter& parameter)
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 61f57a6cc6..86d8c66593 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -547,7 +547,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
void set_silent (bool yn);
bool silent () { return _silent; }
- TempoMap& tempo_map() { return *_tempo_map; }
+ TempoMap& tempo_map() { return *_tempo_map; }
+ const TempoMap& tempo_map() const { return *_tempo_map; }
/* region info */
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index f78d018082..4affd89eae 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -148,6 +148,7 @@ public:
LilvNode* ui_GtkUI;
LilvNode* ui_external;
LilvNode* ui_externalkx;
+ LilvNode* units_hz;
LilvNode* units_db;
LilvNode* units_unit;
LilvNode* units_render;
@@ -1337,6 +1338,8 @@ load_parameter_descriptor_units(LilvWorld* lworld, ParameterDescriptor& desc, co
desc.unit = ParameterDescriptor::MIDI_NOTE;
} else if (lilv_nodes_contains(units, _world.units_db)) {
desc.unit = ParameterDescriptor::DB;
+ } else if (lilv_nodes_contains(units, _world.units_hz)) {
+ desc.unit = ParameterDescriptor::HZ;
} else if (lilv_nodes_size(units) > 0) {
const LilvNode* unit = lilv_nodes_get_first(units);
LilvNode* render = get_value(lworld, unit, _world.units_render);
@@ -2314,6 +2317,7 @@ LV2World::LV2World()
ui_externalkx = lilv_new_uri(world, "http://kxstudio.sf.net/ns/lv2ext/external-ui#Widget");
units_unit = lilv_new_uri(world, LV2_UNITS__unit);
units_render = lilv_new_uri(world, LV2_UNITS__render);
+ units_hz = lilv_new_uri(world, LV2_UNITS__hz);
units_midiNote = lilv_new_uri(world, LV2_UNITS__midiNote);
units_db = lilv_new_uri(world, LV2_UNITS__db);
patch_writable = lilv_new_uri(world, LV2_PATCH__writable);
@@ -2324,6 +2328,7 @@ LV2World::~LV2World()
{
lilv_node_free(patch_Message);
lilv_node_free(patch_writable);
+ lilv_node_free(units_hz);
lilv_node_free(units_midiNote);
lilv_node_free(units_db);
lilv_node_free(units_unit);