summaryrefslogtreecommitdiffstats
path: root/ingen
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-05-01 06:46:55 +0000
committerDavid Robillard <d@drobilla.net>2012-05-01 06:46:55 +0000
commitd76ab24976e452d02e114182b3a563eeb11e8785 (patch)
tree801e459ac10f176bcce8221d2cba17bf71a14f6c /ingen
parent7477318adc8de5244fc314939c296ae74605eaa5 (diff)
downloadingen-d76ab24976e452d02e114182b3a563eeb11e8785.tar.gz
ingen-d76ab24976e452d02e114182b3a563eeb11e8785.tar.bz2
ingen-d76ab24976e452d02e114182b3a563eeb11e8785.zip
Implement menu selector for enumeration ports (sort of address #780).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4308 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'ingen')
-rw-r--r--ingen/client/PluginModel.hpp7
-rw-r--r--ingen/client/PortModel.hpp1
-rw-r--r--ingen/shared/URIs.hpp1
3 files changed, 9 insertions, 0 deletions
diff --git a/ingen/client/PluginModel.hpp b/ingen/client/PluginModel.hpp
index e434df07..46e7b116 100644
--- a/ingen/client/PluginModel.hpp
+++ b/ingen/client/PluginModel.hpp
@@ -17,6 +17,9 @@
#ifndef INGEN_CLIENT_PLUGINMODEL_HPP
#define INGEN_CLIENT_PLUGINMODEL_HPP
+#include <list>
+#include <utility>
+
#include "lilv/lilv.h"
#include "raul/SharedPtr.hpp"
#include "raul/Symbol.hpp"
@@ -59,6 +62,10 @@ public:
std::string human_name() const;
std::string port_human_name(uint32_t index) const;
+ typedef std::pair<float, std::string> ScalePoint;
+ typedef std::list<ScalePoint> ScalePoints;
+ ScalePoints port_scale_points(uint32_t i) const;
+
static LilvWorld* lilv_world() { return _lilv_world; }
const LilvPlugin* lilv_plugin() const { return _lilv_plugin; }
diff --git a/ingen/client/PortModel.hpp b/ingen/client/PortModel.hpp
index d9fce5e4..8065692d 100644
--- a/ingen/client/PortModel.hpp
+++ b/ingen/client/PortModel.hpp
@@ -54,6 +54,7 @@ public:
bool port_property(const Raul::URI& uri) const;
bool is_logarithmic() const { return port_property(LV2_PORT_PROPS__logarithmic); }
+ bool is_enumeration() const { return port_property(LV2_CORE__enumeration); }
bool is_integer() const { return port_property(LV2_CORE__integer); }
bool is_toggle() const { return port_property(LV2_CORE__toggled); }
bool is_numeric() const {
diff --git a/ingen/shared/URIs.hpp b/ingen/shared/URIs.hpp
index c4086bb5..f59f5c38 100644
--- a/ingen/shared/URIs.hpp
+++ b/ingen/shared/URIs.hpp
@@ -98,6 +98,7 @@ public:
const Quark lv2_name;
const Quark lv2_portProperty;
const Quark lv2_sampleRate;
+ const Quark lv2_scalePoint;
const Quark lv2_symbol;
const Quark lv2_toggled;
const Quark midi_Bender;