summaryrefslogtreecommitdiffstats
path: root/ingen/client/BlockModel.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ingen/client/BlockModel.hpp')
-rw-r--r--ingen/client/BlockModel.hpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/ingen/client/BlockModel.hpp b/ingen/client/BlockModel.hpp
index e689414c..a9474671 100644
--- a/ingen/client/BlockModel.hpp
+++ b/ingen/client/BlockModel.hpp
@@ -36,8 +36,9 @@ class URIs;
namespace Client {
-class PluginModel;
class ClientStore;
+class ParameterModel;
+class PluginModel;
/** Block model class, used by the client to store engine's state.
*
@@ -51,7 +52,8 @@ public:
GraphType graph_type() const { return Node::GraphType::BLOCK; }
- typedef std::vector< SPtr<const PortModel> > Ports;
+ typedef std::vector< SPtr<const PortModel> > Ports;
+ typedef std::vector< SPtr<const ParameterModel> > Parameters;
SPtr<const PortModel> get_port(const Raul::Symbol& symbol) const;
SPtr<const PortModel> get_port(uint32_t index) const;
@@ -64,6 +66,7 @@ public:
SPtr<PluginModel> plugin_model() const { return _plugin; }
uint32_t num_ports() const { return _ports.size(); }
const Ports& ports() const { return _ports; }
+ const Parameters& parameters() const { return _parameters; }
void default_port_value_range(SPtr<const PortModel> port,
float& min,
@@ -81,6 +84,8 @@ public:
// Signals
INGEN_SIGNAL(new_port, void, SPtr<const PortModel>);
INGEN_SIGNAL(removed_port, void, SPtr<const PortModel>);
+ INGEN_SIGNAL(new_parameter, void, SPtr<const ParameterModel>);
+ INGEN_SIGNAL(removed_parameter, void, SPtr<const ParameterModel>);
protected:
friend class ClientStore;
@@ -98,11 +103,13 @@ protected:
void add_port(SPtr<PortModel> pm);
void remove_port(SPtr<PortModel> pm);
void remove_port(const Raul::Path& port_path);
+ void add_parameter(SPtr<ParameterModel> pm);
void set(SPtr<ObjectModel> model);
virtual void clear();
Ports _ports; ///< Vector of ports
+ Parameters _parameters; ///< Vector of parameters
Raul::URI _plugin_uri; ///< Plugin URI (if PluginModel is unknown)
SPtr<PluginModel> _plugin; ///< The plugin this block is an instance of