Remove separate ControlList min/max/default, use ParameterDescriptor.
This commit is contained in:
parent
cb48bb0e1c
commit
36e32e5641
|
@ -321,9 +321,6 @@ AutomationList::state (bool full)
|
|||
|
||||
root->set_property ("automation-id", EventTypeMap::instance().to_symbol(_parameter));
|
||||
root->set_property ("id", id());
|
||||
root->set_property ("default", _default_value);
|
||||
root->set_property ("min-yval", _min_yval);
|
||||
root->set_property ("max-yval", _max_yval);
|
||||
root->set_property ("interpolation-style", _interpolation);
|
||||
|
||||
if (full) {
|
||||
|
@ -495,10 +492,6 @@ AutomationList::set_state (const XMLNode& node, int version)
|
|||
_interpolation = Linear;
|
||||
}
|
||||
|
||||
if (!node.get_property (X_("default"), _default_value)) {
|
||||
_default_value = 0.0;
|
||||
}
|
||||
|
||||
if (node.get_property (X_("state"), _state)) {
|
||||
if (_state == Write) {
|
||||
_state = Off;
|
||||
|
@ -508,14 +501,6 @@ AutomationList::set_state (const XMLNode& node, int version)
|
|||
_state = Off;
|
||||
}
|
||||
|
||||
if (!node.get_property (X_("min-yval"), _min_yval)) {
|
||||
_min_yval = FLT_MIN;
|
||||
}
|
||||
|
||||
if (!node.get_property (X_("max-yval"), _max_yval)) {
|
||||
_max_yval = FLT_MAX;
|
||||
}
|
||||
|
||||
bool have_events = false;
|
||||
|
||||
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
|
||||
|
|
|
@ -40,8 +40,6 @@ GainControl::GainControl (Session& session, const Evoral::Parameter ¶m, boos
|
|||
param.type() == GainAutomation ? X_("gaincontrol") : X_("trimcontrol"),
|
||||
Controllable::GainLike)
|
||||
{
|
||||
alist()->reset_default (1.0);
|
||||
|
||||
lower_db = accurate_coefficient_to_dB (_desc.lower);
|
||||
range_db = accurate_coefficient_to_dB (_desc.upper) - lower_db;
|
||||
}
|
||||
|
|
|
@ -2767,30 +2767,6 @@ PluginInsert::set_parameter_state_2X (const XMLNode& node, int version)
|
|||
if (c && c->alist()) {
|
||||
if (!child->children().empty()) {
|
||||
c->alist()->set_state (*child->children().front(), version);
|
||||
|
||||
/* In some cases 2.X saves lists with min_yval and max_yval
|
||||
being FLT_MIN and FLT_MAX respectively. This causes problems
|
||||
in A3 because these min/max values are used to compute
|
||||
where GUI control points should be drawn. If we see such
|
||||
values, `correct' them to the min/max of the appropriate
|
||||
parameter.
|
||||
*/
|
||||
|
||||
float min_y = c->alist()->get_min_y ();
|
||||
float max_y = c->alist()->get_max_y ();
|
||||
|
||||
ParameterDescriptor desc;
|
||||
_plugins.front()->get_parameter_descriptor (port_id, desc);
|
||||
|
||||
if (min_y == FLT_MIN) {
|
||||
min_y = desc.lower;
|
||||
}
|
||||
|
||||
if (max_y == FLT_MAX) {
|
||||
max_y = desc.upper;
|
||||
}
|
||||
|
||||
c->alist()->set_yrange (min_y, max_y);
|
||||
}
|
||||
} else {
|
||||
error << string_compose (_("PluginInsert: automatable control %1 not found - ignored"), port_id) << endmsg;
|
||||
|
@ -2855,7 +2831,6 @@ PluginInsert::PluginControl::PluginControl (PluginInsert* p,
|
|||
, _plugin (p)
|
||||
{
|
||||
if (alist()) {
|
||||
alist()->reset_default (desc.normal);
|
||||
if (desc.toggled) {
|
||||
list->set_interpolation(Evoral::ControlList::Discrete);
|
||||
}
|
||||
|
@ -2922,10 +2897,6 @@ PluginInsert::PluginPropertyControl::PluginPropertyControl (PluginInsert*
|
|||
: AutomationControl (p->session(), param, desc, list)
|
||||
, _plugin (p)
|
||||
{
|
||||
if (alist()) {
|
||||
alist()->set_yrange (desc.lower, desc.upper);
|
||||
alist()->reset_default (desc.normal);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -113,10 +113,6 @@ public:
|
|||
}
|
||||
bool empty() const { return _events.empty(); }
|
||||
|
||||
void reset_default (double val) {
|
||||
_default_value = val;
|
||||
}
|
||||
|
||||
void clear ();
|
||||
void x_scale (double factor);
|
||||
bool extend_to (double);
|
||||
|
@ -177,14 +173,6 @@ public:
|
|||
|
||||
bool paste (const ControlList&, double position);
|
||||
|
||||
void set_yrange (double min, double max) {
|
||||
_min_yval = min;
|
||||
_max_yval = max;
|
||||
}
|
||||
|
||||
double get_max_y() const { return _max_yval; }
|
||||
double get_min_y() const { return _min_yval; }
|
||||
|
||||
/** truncate the event list after the given time
|
||||
* @param last_coordinate last event to include
|
||||
*/
|
||||
|
@ -258,7 +246,6 @@ public:
|
|||
};
|
||||
|
||||
const EventList& events() const { return _events; }
|
||||
double default_value() const { return _default_value; }
|
||||
|
||||
// FIXME: const violations for Curve
|
||||
Glib::Threads::RWLock& lock() const { return _lock; }
|
||||
|
@ -348,9 +335,6 @@ protected:
|
|||
EventList _events;
|
||||
int8_t _frozen;
|
||||
bool _changed_when_thawed;
|
||||
double _min_yval;
|
||||
double _max_yval;
|
||||
double _default_value;
|
||||
bool _sort_pending;
|
||||
|
||||
Curve* _curve;
|
||||
|
|
|
@ -29,7 +29,7 @@ Control::Control(const Parameter& parameter,
|
|||
const ParameterDescriptor& desc,
|
||||
boost::shared_ptr<ControlList> list)
|
||||
: _parameter(parameter)
|
||||
, _user_value(list ? list->default_value() : desc.normal)
|
||||
, _user_value(desc.normal)
|
||||
{
|
||||
set_list (list);
|
||||
}
|
||||
|
|
|
@ -59,9 +59,6 @@ ControlList::ControlList (const Parameter& id, const ParameterDescriptor& desc)
|
|||
_interpolation = desc.toggled ? Discrete : Linear;
|
||||
_frozen = 0;
|
||||
_changed_when_thawed = false;
|
||||
_min_yval = desc.lower;
|
||||
_max_yval = desc.upper;
|
||||
_default_value = desc.normal;
|
||||
_lookup_cache.left = -1;
|
||||
_lookup_cache.range.first = _events.end();
|
||||
_lookup_cache.range.second = _events.end();
|
||||
|
@ -83,9 +80,6 @@ ControlList::ControlList (const ControlList& other)
|
|||
{
|
||||
_frozen = 0;
|
||||
_changed_when_thawed = false;
|
||||
_min_yval = other._min_yval;
|
||||
_max_yval = other._max_yval;
|
||||
_default_value = other._default_value;
|
||||
_lookup_cache.range.first = _events.end();
|
||||
_lookup_cache.range.second = _events.end();
|
||||
_search_cache.first = _events.end();
|
||||
|
@ -109,9 +103,6 @@ ControlList::ControlList (const ControlList& other, double start, double end)
|
|||
{
|
||||
_frozen = 0;
|
||||
_changed_when_thawed = false;
|
||||
_min_yval = other._min_yval;
|
||||
_max_yval = other._max_yval;
|
||||
_default_value = other._default_value;
|
||||
_lookup_cache.range.first = _events.end();
|
||||
_lookup_cache.range.second = _events.end();
|
||||
_search_cache.first = _events.end();
|
||||
|
@ -161,12 +152,8 @@ ControlList::operator= (const ControlList& other)
|
|||
{
|
||||
if (this != &other) {
|
||||
|
||||
_min_yval = other._min_yval;
|
||||
_max_yval = other._max_yval;
|
||||
|
||||
|
||||
_interpolation = other._interpolation;
|
||||
_default_value = other._default_value;
|
||||
|
||||
copy_events (other);
|
||||
}
|
||||
|
@ -553,8 +540,8 @@ ControlList::editor_add (double when, double value, bool with_guard)
|
|||
|
||||
/* clamp new value to allowed range */
|
||||
|
||||
value = max (_min_yval, value);
|
||||
value = min (_max_yval, value);
|
||||
value = max ((double)_desc.lower, value);
|
||||
value = min ((double)_desc.upper, value);
|
||||
|
||||
iterator result;
|
||||
DEBUG_TRACE (DEBUG::ControlList, string_compose ("editor_add: actually add when= %1 value= %2\n", when, value));
|
||||
|
@ -663,7 +650,7 @@ ControlList::add (double when, double value, bool with_guards, bool with_initial
|
|||
|
||||
} else {
|
||||
_events.insert (_events.end(), new ControlEvent (0, value));
|
||||
DEBUG_TRACE (DEBUG::ControlList, string_compose ("@%1 added default value %2 at zero\n", this, _default_value));
|
||||
DEBUG_TRACE (DEBUG::ControlList, string_compose ("@%1 added default value %2 at zero\n", this, _desc.normal));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1085,8 +1072,8 @@ ControlList::truncate_end (double last_coordinate)
|
|||
/* shortening end */
|
||||
|
||||
last_val = unlocked_eval (last_coordinate);
|
||||
last_val = max ((double) _min_yval, last_val);
|
||||
last_val = min ((double) _max_yval, last_val);
|
||||
last_val = max ((double) _desc.lower, last_val);
|
||||
last_val = min ((double) _desc.upper, last_val);
|
||||
|
||||
i = _events.rbegin();
|
||||
|
||||
|
@ -1187,8 +1174,8 @@ ControlList::truncate_start (double overall_length)
|
|||
|
||||
first_legal_coordinate = _events.back()->when - overall_length;
|
||||
first_legal_value = unlocked_eval (first_legal_coordinate);
|
||||
first_legal_value = max (_min_yval, first_legal_value);
|
||||
first_legal_value = min (_max_yval, first_legal_value);
|
||||
first_legal_value = max ((double)_desc.lower, first_legal_value);
|
||||
first_legal_value = min ((double)_desc.upper, first_legal_value);
|
||||
|
||||
/* remove all events earlier than the new "front" */
|
||||
|
||||
|
@ -1248,7 +1235,7 @@ ControlList::unlocked_eval (double x) const
|
|||
|
||||
switch (npoints) {
|
||||
case 0:
|
||||
return _default_value;
|
||||
return _desc.normal;
|
||||
|
||||
case 1:
|
||||
return _events.front()->value;
|
||||
|
@ -1284,7 +1271,7 @@ ControlList::unlocked_eval (double x) const
|
|||
}
|
||||
|
||||
abort(); /*NOTREACHED*/ /* stupid gcc */
|
||||
return _default_value;
|
||||
return _desc.normal;
|
||||
}
|
||||
|
||||
double
|
||||
|
@ -1869,9 +1856,9 @@ ControlList::operator!= (ControlList const & other) const
|
|||
return (
|
||||
_parameter != other._parameter ||
|
||||
_interpolation != other._interpolation ||
|
||||
_min_yval != other._min_yval ||
|
||||
_max_yval != other._max_yval ||
|
||||
_default_value != other._default_value
|
||||
_desc.lower != other._desc.lower ||
|
||||
_desc.upper != other._desc.upper ||
|
||||
_desc.normal != other._desc.normal
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ Curve::_get_vector (double x0, double x1, float *vec, int32_t veclen) const
|
|||
if ((npoints = _list.events().size()) == 0) {
|
||||
/* no events in list, so just fill the entire array with the default value */
|
||||
for (int32_t i = 0; i < veclen; ++i) {
|
||||
vec[i] = _list.default_value();
|
||||
vec[i] = _list.descriptor().normal;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user