/*
- Copyright (C) 2000,2007 Paul Davis
+ Copyright (C) 2000,2007 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <boost/weak_ptr.hpp>
-#include <sigc++/signal.h>
#include "ardour/ardour.h"
#include "ardour/types.h"
#include "ardour/processor.h"
class PluginInsert : public Processor
{
public:
- PluginInsert (Session&, boost::shared_ptr<Plugin>, Placement);
+ PluginInsert (Session&, boost::shared_ptr<Plugin>);
PluginInsert (Session&, const XMLNode&);
~PluginInsert ();
- static const string port_automation_node_name;
-
+ static const std::string port_automation_node_name;
+
XMLNode& state(bool);
XMLNode& get_state(void);
- int set_state(const XMLNode&);
+ int set_state(const XMLNode&, int version);
- void run_in_place (BufferSet& in, nframes_t start_frame, nframes_t end_frame, nframes_t nframes);
+ void run (BufferSet& in, sframes_t start_frame, sframes_t end_frame, nframes_t nframes, bool);
void silence (nframes_t nframes);
-
+
void activate ();
void deactivate ();
bool is_generator() const;
- struct PluginControl : public AutomationControl
+ struct PluginControl : public AutomationControl
{
- PluginControl (PluginInsert* p, const Evoral::Parameter ¶m,
- boost::shared_ptr<AutomationList> list = boost::shared_ptr<AutomationList>());
-
+ PluginControl (PluginInsert* p, const Evoral::Parameter ¶m,
+ boost::shared_ptr<AutomationList> list = boost::shared_ptr<AutomationList>());
+
void set_value (float val);
- float get_value (void) const;
-
- private:
- PluginInsert* _plugin;
+ float get_value (void) const;
+
+ private:
+ PluginInsert* _plugin;
bool _logarithmic;
bool _toggled;
};
boost::shared_ptr<Plugin> plugin(uint32_t num=0) const {
- if (num < _plugins.size()) {
+ if (num < _plugins.size()) {
return _plugins[num];
} else {
return _plugins[0]; // we always have one
PluginType type ();
- string describe_parameter (Evoral::Parameter param);
+ std::string describe_parameter (Evoral::Parameter param);
nframes_t signal_latency() const;
boost::shared_ptr<Plugin> get_impulse_analysis_plugin();
-
+
void collect_signal_for_analysis(nframes_t nframes);
- sigc::signal<void, BufferSet*, BufferSet*> AnalysisDataGathered;
+ PBD::Signal2<void,BufferSet*, BufferSet*> AnalysisDataGathered;
private:
/* disallow copy construction */
PluginInsert (const PluginInsert&);
void parameter_changed (Evoral::Parameter, float);
-
+
void set_parameter (Evoral::Parameter param, float val);
float get_parameter (Evoral::Parameter param);
float default_parameter_value (const Evoral::Parameter& param);
-
+
typedef std::vector<boost::shared_ptr<Plugin> > Plugins;
Plugins _plugins;
BufferSet _signal_analysis_inputs;
BufferSet _signal_analysis_outputs;
-
+
void automation_run (BufferSet& bufs, nframes_t nframes);
void connect_and_run (BufferSet& bufs, nframes_t nframes, nframes_t offset, bool with_auto, nframes_t now = 0);
- void init ();
void set_automatable ();
void auto_state_changed (Evoral::Parameter which);
+ void set_parameter_state (const XMLNode& node, int version);
+ void set_parameter_state_2X (const XMLNode& node, int version);
int32_t count_for_configuration (ChanCount in, ChanCount out) const;