diff options
author | David Robillard <d@drobilla.net> | 2008-09-19 06:30:49 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-09-19 06:30:49 +0000 |
commit | 60f588f21d6ad62335d72e8dc682abf8859107ea (patch) | |
tree | b096b25cd757f6086c90f35b4358080747dc0c0a /libs/ardour/ardour | |
parent | 2539b8fc184380957ba0effa1db947ced748ab31 (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.h | 6 | ||||
-rw-r--r-- | libs/ardour/ardour/parameter.h | 44 | ||||
-rw-r--r-- | libs/ardour/ardour/plugin_insert.h | 2 |
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 { |