summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-09-19 06:30:49 +0000
committerDavid Robillard <d@drobilla.net>2008-09-19 06:30:49 +0000
commit60f588f21d6ad62335d72e8dc682abf8859107ea (patch)
treeb096b25cd757f6086c90f35b4358080747dc0c0a /libs/ardour/ardour
parent2539b8fc184380957ba0effa1db947ced748ab31 (diff)
Fix parameter range stuff and automation time axis height (somewhat...).
Create a new AutomationLine when an AutomationRegionView without a line is clicked. git-svn-id: svn://localhost/ardour2/branches/3.0@3757 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/midi_region.h6
-rw-r--r--libs/ardour/ardour/parameter.h44
-rw-r--r--libs/ardour/ardour/plugin_insert.h2
3 files changed, 30 insertions, 22 deletions
diff --git a/libs/ardour/ardour/midi_region.h b/libs/ardour/ardour/midi_region.h
index 66257372a9..e0caddd954 100644
--- a/libs/ardour/ardour/midi_region.h
+++ b/libs/ardour/ardour/midi_region.h
@@ -80,10 +80,10 @@ class MidiRegion : public Region
Controls& controls() { return midi_source()->model()->controls(); }
const Controls& controls() const { return midi_source()->model()->controls(); }
- boost::shared_ptr<Evoral::Control> control(Evoral::Parameter id, bool create_if_missing=false)
- { return midi_source()->model()->control(id, create_if_missing); }
+ boost::shared_ptr<Evoral::Control> control(const Evoral::Parameter& id, bool create=false)
+ { return midi_source()->model()->control(id, create); }
- boost::shared_ptr<const Evoral::Control> control(Evoral::Parameter id) const
+ boost::shared_ptr<const Evoral::Control> control(const Evoral::Parameter& id) const
{ return midi_source()->model()->control(id); }
int exportme (ARDOUR::Session&, ARDOUR::ExportSpecification&);
diff --git a/libs/ardour/ardour/parameter.h b/libs/ardour/ardour/parameter.h
index dbcccd811f..9ffeb98995 100644
--- a/libs/ardour/ardour/parameter.h
+++ b/libs/ardour/ardour/parameter.h
@@ -47,50 +47,58 @@ public:
Parameter(AutomationType type = NullAutomation, uint32_t id=0, uint8_t channel=0)
: Evoral::Parameter((uint32_t)type, id, channel)
{
- init(type);
+ init_metadata(type);
}
+#if 0
Parameter(AutomationType type, double min, double max, double normal)
: Evoral::Parameter((uint32_t)type, 0, 0, min, max, normal)
{}
+ Parameter(const Parameter& copy)
+ : Evoral::Parameter(copy)
+ {
+ _min = copy._min;
+ _max = copy._max;
+ _normal = copy._max;
+ }
+#endif
+
Parameter(const Evoral::Parameter& copy)
: Evoral::Parameter(copy)
{
- init((AutomationType)_type);
}
- void init(AutomationType type) {
- _normal = 0.0f;
+ static void init_metadata(AutomationType type) {
+ double min = 0.0f;
+ double max = 1.0f;
+ double normal = 0.0f;
switch(type) {
case NullAutomation:
case GainAutomation:
- _min = 0.0f;
- _max = 2.0f;
- _normal = 1.0f;
+ max = 2.0f;
+ normal = 1.0f;
break;
case PanAutomation:
- _min = 0.0f;
- _max = 1.0f;
- _normal = 0.5f;
+ normal = 0.5f;
+ break;
case PluginAutomation:
case SoloAutomation:
case MuteAutomation:
case FadeInAutomation:
case FadeOutAutomation:
case EnvelopeAutomation:
- _min = 0.0f;
- _max = 2.0f;
- _normal = 1.0f;
+ max = 2.0f;
+ normal = 1.0f;
+ break;
case MidiCCAutomation:
- Evoral::MIDI::ContinuousController::set_range(*this); break;
case MidiPgmChangeAutomation:
- Evoral::MIDI::ProgramChange::set_range(*this); break;
- case MidiPitchBenderAutomation:
- Evoral::MIDI::PitchBender::set_range(*this); break;
case MidiChannelAftertouchAutomation:
- Evoral::MIDI::ChannelAftertouch::set_range(*this); break;
+ Evoral::MIDI::controller_range(min, max, normal); break;
+ case MidiPitchBenderAutomation:
+ Evoral::MIDI::bender_range(min, max, normal); break;
}
+ set_range(type, min, max, normal);
}
Parameter(const std::string& str);
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index f80f26098d..859c707c79 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -77,7 +77,7 @@ class PluginInsert : public Processor
void set_parameter (Parameter param, float val);
float get_parameter (Parameter param);
- float default_parameter_value (Evoral::Parameter param);
+ float default_parameter_value (const Evoral::Parameter& param);
struct PluginControl : public AutomationControl
{