summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-07-27 14:09:16 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-07-27 14:09:16 +0000
commitece5093234e4c185cf536d2b4e5edfeb90622409 (patch)
treede566ed8a317eaac10b13c6e06a11ab3f68c97e7 /libs/ardour
parentfbc946d60dbe68016abcc386932b35c4ef4ba1af (diff)
change Control::{set,get}_float to Control::{set,get}_double and make almost all Control-related stuff use double rather than random mixtures of float, double and some integer value ; make hans' program change stuff work quite a bit better (not finished yet) including keyboard edting of pgm change values
git-svn-id: svn://localhost/ardour2/branches/3.0@7514 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/amp.cc10
-rw-r--r--libs/ardour/ardour/amp.h6
-rw-r--r--libs/ardour/ardour/automation_control.h8
-rw-r--r--libs/ardour/ardour/midi_track.h2
-rw-r--r--libs/ardour/ardour/monitor_processor.h8
-rw-r--r--libs/ardour/ardour/panner.h4
-rw-r--r--libs/ardour/ardour/plugin_insert.h4
-rw-r--r--libs/ardour/ardour/route.h8
-rw-r--r--libs/ardour/ardour/track.h4
-rw-r--r--libs/ardour/automatable.cc2
-rw-r--r--libs/ardour/automation_control.cc10
-rw-r--r--libs/ardour/midi_buffer.cc3
-rw-r--r--libs/ardour/midi_port.cc3
-rw-r--r--libs/ardour/midi_source.cc3
-rw-r--r--libs/ardour/midi_track.cc2
-rw-r--r--libs/ardour/monitor_processor.cc2
-rw-r--r--libs/ardour/panner.cc4
-rw-r--r--libs/ardour/plugin_insert.cc6
-rw-r--r--libs/ardour/route.cc8
-rw-r--r--libs/ardour/track.cc10
20 files changed, 51 insertions, 56 deletions
diff --git a/libs/ardour/amp.cc b/libs/ardour/amp.cc
index 36d0c6bf33..f2448c06aa 100644
--- a/libs/ardour/amp.cc
+++ b/libs/ardour/amp.cc
@@ -93,7 +93,7 @@ Amp::run (BufferSet& bufs, sframes_t /*start_frame*/, sframes_t /*end_frame*/, n
} else { /* manual (scalar) gain */
- gain_t const dg = _gain_control->user_float();
+ gain_t const dg = _gain_control->user_double();
if (_current_gain != dg) {
@@ -353,7 +353,7 @@ Amp::apply_simple_gain (AudioBuffer& buf, nframes_t nframes, gain_t target)
void
Amp::inc_gain (gain_t factor, void *src)
{
- float desired_gain = _gain_control->user_float();
+ float desired_gain = _gain_control->user_double();
if (desired_gain == 0.0f) {
set_gain (0.000001f + (0.000001f * factor), src);
@@ -379,7 +379,7 @@ Amp::set_gain (gain_t val, void *src)
return;
}
- _gain_control->set_float(val, false);
+ _gain_control->set_double(val, false);
_session.set_dirty();
}
@@ -416,7 +416,7 @@ Amp::set_state (const XMLNode& node, int version)
}
void
-Amp::GainControl::set_value (float val)
+Amp::GainControl::set_value (double val)
{
// max gain at about +6dB (10.0 ^ ( 6 dB * 0.05))
if (val > 1.99526231f)
@@ -427,7 +427,7 @@ Amp::GainControl::set_value (float val)
AutomationControl::set_value(val);
}
-float
+double
Amp::GainControl::get_value (void) const
{
return AutomationControl::get_value();
diff --git a/libs/ardour/ardour/amp.h b/libs/ardour/ardour/amp.h
index 1b6baaebd1..52aceaf85f 100644
--- a/libs/ardour/ardour/amp.h
+++ b/libs/ardour/ardour/amp.h
@@ -64,7 +64,7 @@ public:
static void declick (BufferSet& bufs, nframes_t nframes, int dir);
- gain_t gain () const { return _gain_control->user_float(); }
+ gain_t gain () const { return _gain_control->user_double(); }
virtual void set_gain (gain_t g, void *src);
void inc_gain (gain_t delta, void *src);
@@ -81,8 +81,8 @@ public:
set_flags (Controllable::Flag (flags() | Controllable::GainLike));
}
- void set_value (float val);
- float get_value (void) const;
+ void set_value (double val);
+ double get_value (void) const;
Amp* _amp;
};
diff --git a/libs/ardour/ardour/automation_control.h b/libs/ardour/ardour/automation_control.h
index 3c832ae704..2d22b9e661 100644
--- a/libs/ardour/ardour/automation_control.h
+++ b/libs/ardour/ardour/automation_control.h
@@ -77,14 +77,14 @@ public:
/** Set the value and do the right thing based on automation state
* (e.g. record if necessary, etc.)
*/
- void set_value(float val);
+ void set_value(double val);
/** Get the current effective value based on automation state.
*/
- float get_value() const;
+ double get_value() const;
- float lower() const { return parameter().min(); }
- float upper() const { return parameter().max(); }
+ double lower() const { return parameter().min(); }
+ double upper() const { return parameter().max(); }
protected:
ARDOUR::Session& _session;
diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h
index df1d2e11df..6236667650 100644
--- a/libs/ardour/ardour/midi_track.h
+++ b/libs/ardour/ardour/midi_track.h
@@ -72,7 +72,7 @@ public:
, _route (route)
{}
- void set_value (float val);
+ void set_value (double val);
MidiTrack* _route;
};
diff --git a/libs/ardour/ardour/monitor_processor.h b/libs/ardour/ardour/monitor_processor.h
index 4bf399c16a..e453551b0b 100644
--- a/libs/ardour/ardour/monitor_processor.h
+++ b/libs/ardour/ardour/monitor_processor.h
@@ -48,7 +48,7 @@ template<typename T> class MPControl : public PBD::Controllable {
/* Controllable API */
- void set_value (float v) {
+ void set_value (double v) {
T newval = (T) v;
if (newval != _value) {
_value = newval;
@@ -56,12 +56,12 @@ template<typename T> class MPControl : public PBD::Controllable {
}
}
- float get_value () const {
+ double get_value () const {
return (float) _value;
}
- float lower () const { return _lower; }
- float upper () const { return _upper; }
+ double lower () const { return _lower; }
+ double upper () const { return _upper; }
/* "access as T" API */
diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h
index 2b2801841d..abee3431ce 100644
--- a/libs/ardour/ardour/panner.h
+++ b/libs/ardour/ardour/panner.h
@@ -291,8 +291,8 @@ public:
AutomationList* alist() { return (AutomationList*)_list.get(); }
Panner& panner;
- void set_value (float);
- float get_value (void) const;
+ void set_value (double);
+ double get_value (void) const;
};
boost::shared_ptr<AutomationControl> pan_control (int id, int chan=0) {
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index 2e24bdd707..c962832eb1 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -78,8 +78,8 @@ class PluginInsert : public Processor
PluginControl (PluginInsert* p, const Evoral::Parameter &param,
boost::shared_ptr<AutomationList> list = boost::shared_ptr<AutomationList>());
- void set_value (float val);
- float get_value (void) const;
+ void set_value (double val);
+ double get_value (void) const;
private:
PluginInsert* _plugin;
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index 54eb41f97b..b54ef74ca6 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -319,16 +319,16 @@ class Route : public SessionObject, public Automatable, public RouteGroupMember,
struct SoloControllable : public AutomationControl {
SoloControllable (std::string name, Route&);
- void set_value (float);
- float get_value (void) const;
+ void set_value (double);
+ double get_value (void) const;
Route& route;
};
struct MuteControllable : public AutomationControl {
MuteControllable (std::string name, Route&);
- void set_value (float);
- float get_value (void) const;
+ void set_value (double);
+ double get_value (void) const;
Route& route;
};
diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h
index b3d69e4403..e40f197436 100644
--- a/libs/ardour/ardour/track.h
+++ b/libs/ardour/ardour/track.h
@@ -185,8 +185,8 @@ class Track : public Route, public PublicDiskstream
struct RecEnableControllable : public PBD::Controllable {
RecEnableControllable (Track&);
- void set_value (float);
- float get_value (void) const;
+ void set_value (double);
+ double get_value (void) const;
Track& track;
};
diff --git a/libs/ardour/automatable.cc b/libs/ardour/automatable.cc
index be3701fc93..c71fabda37 100644
--- a/libs/ardour/automatable.cc
+++ b/libs/ardour/automatable.cc
@@ -398,7 +398,7 @@ Automatable::automation_snapshot (nframes_t now, bool force)
boost::shared_ptr<AutomationControl> c
= boost::dynamic_pointer_cast<AutomationControl>(i->second);
if (c->automation_write()) {
- c->list()->rt_add (now, i->second->user_float());
+ c->list()->rt_add (now, i->second->user_double());
}
}
diff --git a/libs/ardour/automation_control.cc b/libs/ardour/automation_control.cc
index 1460c42c7b..a4e0a7bbc0 100644
--- a/libs/ardour/automation_control.cc
+++ b/libs/ardour/automation_control.cc
@@ -40,22 +40,20 @@ AutomationControl::AutomationControl(
{
}
-
-float
+double
AutomationControl::get_value() const
{
bool from_list = _list && ((AutomationList*)_list.get())->automation_playback();
- return Control::get_float(from_list, _session.transport_frame());
+ return Control::get_double (from_list, _session.transport_frame());
}
-
void
-AutomationControl::set_value(float value)
+AutomationControl::set_value(double value)
{
bool to_list = _list && _session.transport_stopped()
&& ((AutomationList*)_list.get())->automation_write();
- Control::set_float(value, to_list, _session.transport_frame());
+ Control::set_double(value, to_list, _session.transport_frame());
Changed(); /* EMIT SIGNAL */
}
diff --git a/libs/ardour/midi_buffer.cc b/libs/ardour/midi_buffer.cc
index 8299d811f6..2eb9df8c5c 100644
--- a/libs/ardour/midi_buffer.cc
+++ b/libs/ardour/midi_buffer.cc
@@ -170,9 +170,6 @@ MidiBuffer::push_back(TimeType time, size_t size, const uint8_t* data)
DEBUG_TRACE (DEBUG::MidiIO, DEBUG_STR(a).str());
#endif
- // cerr << "MidiBuffer: pushing event @ " << time
- // << " size = " << size << endl;
-
if (_size + stamp_size + size >= _capacity) {
cerr << "MidiBuffer::push_back failed (buffer is full)" << endl;
return false;
diff --git a/libs/ardour/midi_port.cc b/libs/ardour/midi_port.cc
index 6858fd1cbd..4c57b2918e 100644
--- a/libs/ardour/midi_port.cc
+++ b/libs/ardour/midi_port.cc
@@ -75,12 +75,11 @@ MidiPort::get_midi_buffer (nframes_t nframes, nframes_t offset)
jack_midi_event_get (&ev, jack_buffer, i);
-#if 0
if (ev.buffer[0] == 0xfe) {
/* throw away active sensing */
continue;
}
-#endif
+
if (ev.time > off && ev.time < off+nframes) {
_buffer->push_back (ev);
}
diff --git a/libs/ardour/midi_source.cc b/libs/ardour/midi_source.cc
index fe6c733a82..5a823d332e 100644
--- a/libs/ardour/midi_source.cc
+++ b/libs/ardour/midi_source.cc
@@ -206,10 +206,11 @@ MidiSource::midi_read (Evoral::EventSink<nframes_t>& dst, sframes_t source_start
if (time_frames < start + cnt) {
dst.write(time_frames + stamp_offset - negative_stamp_offset,
i->event_type(), i->size(), i->buffer());
+
if (tracker) {
Evoral::MIDIEvent<Evoral::MusicalTime>& ev (*(Evoral::MIDIEvent<Evoral::MusicalTime>*) (&(*i)));
if (ev.is_note_on()) {
- DEBUG_TRACE (DEBUG::MidiSourceIO, string_compose ("\t%1 add note on %2 @ %3\n", _name, ev.note(), time_frames));
+ DEBUG_TRACE (DEBUG::MidiSourceIO, string_compose ("\t%1 add note on %2 @ %3 velocity %4\n", _name, ev.note(), time_frames, (int) ev.velocity()));
tracker->add (ev.note(), ev.channel());
} else if (ev.is_note_off()) {
DEBUG_TRACE (DEBUG::MidiSourceIO, string_compose ("\t%1 add note off %2 @ %3\n", _name, ev.note(), time_frames));
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index b1a8b1f210..83e42800be 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -527,7 +527,7 @@ MidiTrack::write_immediate_event(size_t size, const uint8_t* buf)
}
void
-MidiTrack::MidiControl::set_value(float val)
+MidiTrack::MidiControl::set_value(double val)
{
bool valid = false;
if (isinf(val)) {
diff --git a/libs/ardour/monitor_processor.cc b/libs/ardour/monitor_processor.cc
index 6faf46a64d..bcdc28a4ae 100644
--- a/libs/ardour/monitor_processor.cc
+++ b/libs/ardour/monitor_processor.cc
@@ -18,7 +18,7 @@ using namespace std;
/* specialize for bool because of set_value() semantics */
namespace ARDOUR {
- template<> void MPControl<bool>::set_value (float v) {
+ template<> void MPControl<bool>::set_value (double v) {
bool newval = fabs (v) >= 0.5;
if (newval != _value) {
_value = newval;
diff --git a/libs/ardour/panner.cc b/libs/ardour/panner.cc
index 9921936cf7..b224bf558e 100644
--- a/libs/ardour/panner.cc
+++ b/libs/ardour/panner.cc
@@ -100,13 +100,13 @@ StreamPanner::set_mono (bool yn)
}
void
-Panner::PanControllable::set_value (float val)
+Panner::PanControllable::set_value (double val)
{
panner.streampanner (parameter().id()).set_position (direct_control_to_pan (val));
AutomationControl::set_value(val);
}
-float
+double
Panner::PanControllable::get_value (void) const
{
return AutomationControl::get_value();
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index f50483beaf..8322770d31 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -979,7 +979,7 @@ PluginInsert::PluginControl::PluginControl (PluginInsert* p, const Evoral::Param
}
void
-PluginInsert::PluginControl::set_value (float val)
+PluginInsert::PluginControl::set_value (double val)
{
/* FIXME: probably should be taking out some lock here.. */
@@ -1020,12 +1020,12 @@ PluginInsert::PluginControl::set_value (float val)
AutomationControl::set_value(val);
}
-float
+double
PluginInsert::PluginControl::get_value (void) const
{
/* FIXME: probably should be taking out some lock here.. */
- float val = _plugin->get_parameter (_list->parameter());
+ double val = _plugin->get_parameter (_list->parameter());
return val;
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 1d8f3ca18e..2dc19fbf0b 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -3018,7 +3018,7 @@ Route::SoloControllable::SoloControllable (std::string name, Route& r)
}
void
-Route::SoloControllable::set_value (float val)
+Route::SoloControllable::set_value (double val)
{
bool bval = ((val >= 0.5f) ? true: false);
# if 0
@@ -3037,7 +3037,7 @@ Route::SoloControllable::set_value (float val)
#endif
}
-float
+double
Route::SoloControllable::get_value (void) const
{
if (Config->get_solo_control_is_listen_control()) {
@@ -3057,7 +3057,7 @@ Route::MuteControllable::MuteControllable (std::string name, Route& r)
}
void
-Route::MuteControllable::set_value (float val)
+Route::MuteControllable::set_value (double val)
{
bool bval = ((val >= 0.5f) ? true: false);
# if 0
@@ -3071,7 +3071,7 @@ Route::MuteControllable::set_value (float val)
#endif
}
-float
+double
Route::MuteControllable::get_value (void) const
{
return route.muted() ? 1.0f : 0.0f;
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc
index 145251a021..0e1248db49 100644
--- a/libs/ardour/track.cc
+++ b/libs/ardour/track.cc
@@ -129,17 +129,17 @@ Track::RecEnableControllable::RecEnableControllable (Track& s)
}
void
-Track::RecEnableControllable::set_value (float val)
+Track::RecEnableControllable::set_value (double val)
{
- bool bval = ((val >= 0.5f) ? true: false);
+ bool bval = ((val >= 0.5) ? true: false);
track.set_record_enabled (bval, this);
}
-float
+double
Track::RecEnableControllable::get_value (void) const
{
- if (track.record_enabled()) { return 1.0f; }
- return 0.0f;
+ if (track.record_enabled()) { return 1.0; }
+ return 0.0;
}
bool