diff options
author | Jesse Chappell <jesse@essej.net> | 2006-01-06 04:59:17 +0000 |
---|---|---|
committer | Jesse Chappell <jesse@essej.net> | 2006-01-06 04:59:17 +0000 |
commit | bd21c474e547d49338ea0efd452895de1e147cd5 (patch) | |
tree | 2993bc781777530afc180313c9f69cc898f851e0 /libs/ardour/ardour | |
parent | 18844bac7aa0747453ed4d04c4a462f2044a43bb (diff) |
committed RWlock fixes to libardour. added hw monitoring fixes from nick_m. minor alsa midi fix and update rate settings.
git-svn-id: svn://localhost/trunk/ardour2@244 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/configuration.h | 5 | ||||
-rw-r--r-- | libs/ardour/ardour/diskstream.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/route.h | 6 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 12 | ||||
-rw-r--r-- | libs/ardour/ardour/session_diskstream.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/session_route.h | 6 |
6 files changed, 19 insertions, 13 deletions
diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h index 0c42027646..140490d46d 100644 --- a/libs/ardour/ardour/configuration.h +++ b/libs/ardour/ardour/configuration.h @@ -117,6 +117,9 @@ class Configuration : public Stateful string get_midi_port_name(); void set_midi_port_name(string); + + uint32_t get_midi_feedback_interval_ms(); + void set_midi_feedback_interval_ms (uint32_t); bool get_use_hardware_monitoring(); void set_use_hardware_monitoring(bool); @@ -238,6 +241,8 @@ class Configuration : public Stateful bool use_vst; /* always per-user */ bool quieten_at_speed; bool quieten_at_speed_is_user; + uint32_t midi_feedback_interval_ms; + bool midi_feedback_interval_ms_is_user; XMLNode *key_node; bool user_configuration; diff --git a/libs/ardour/ardour/diskstream.h b/libs/ardour/ardour/diskstream.h index 3c9aa0e0f6..0cdbfd1724 100644 --- a/libs/ardour/ardour/diskstream.h +++ b/libs/ardour/ardour/diskstream.h @@ -305,7 +305,6 @@ class DiskStream : public Stateful, public sigc::trackable id_t _id; atomic_t _record_enabled; - bool rec_monitoring_off_for_roll; AudioPlaylist* _playlist; double _visible_speed; double _actual_speed; diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index 8f4028c99f..9c0edcdad4 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -140,14 +140,14 @@ class Route : public IO void flush_redirects (); template<class T> void foreach_redirect (T *obj, void (T::*func)(Redirect *)) { - LockMonitor lm (redirect_lock, __LINE__, __FILE__); + RWLockMonitor lm (redirect_lock, false, __LINE__, __FILE__); for (RedirectList::iterator i = _redirects.begin(); i != _redirects.end(); ++i) { (obj->*func) (*i); } } Redirect *nth_redirect (uint32_t n) { - LockMonitor lm (redirect_lock, __LINE__, __FILE__); + RWLockMonitor lm (redirect_lock, false, __LINE__, __FILE__); RedirectList::iterator i; for (i = _redirects.begin(); i != _redirects.end() && n; ++i, --n); if (i == _redirects.end()) { @@ -288,7 +288,7 @@ class Route : public IO jack_nframes_t _roll_delay; jack_nframes_t _own_latency; RedirectList _redirects; - PBD::NonBlockingLock redirect_lock; + PBD::NonBlockingRWLock redirect_lock; IO *_control_outs; PBD::NonBlockingLock control_outs_lock; RouteGroup *_edit_group; diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index b58b0a926b..88f629e516 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -273,7 +273,7 @@ class Session : public sigc::trackable, public Stateful typedef list<DiskStream *> DiskStreamList; Session::DiskStreamList disk_streams() const { - LockMonitor lm (diskstream_lock, __LINE__, __FILE__); + RWLockMonitor lm (diskstream_lock, false, __LINE__, __FILE__); return diskstreams; /* XXX yes, force a copy */ } @@ -283,7 +283,7 @@ class Session : public sigc::trackable, public Stateful typedef slist<Route *> RouteList; RouteList get_routes() const { - LockMonitor rlock (route_lock, __LINE__, __FILE__); + RWLockMonitor rlock (route_lock, false, __LINE__, __FILE__); return routes; /* XXX yes, force a copy */ } @@ -410,6 +410,7 @@ class Session : public sigc::trackable, public Stateful void set_auto_play (bool yn); void set_auto_return (bool yn); void set_auto_input (bool yn); + void reset_input_monitor_state (); void set_input_auto_connect (bool yn); void set_output_auto_connect (AutoConnectOption); void set_punch_in (bool yn); @@ -993,7 +994,7 @@ class Session : public sigc::trackable, public Stateful Location* end_location; Slave *_slave; SlaveSource _slave_type; - float _transport_speed; + volatile float _transport_speed; volatile float _desired_transport_speed; float _last_transport_speed; jack_nframes_t _last_slave_transport_frame; @@ -1473,7 +1474,7 @@ class Session : public sigc::trackable, public Stateful /* disk-streams */ DiskStreamList diskstreams; - mutable PBD::Lock diskstream_lock; + mutable PBD::NonBlockingRWLock diskstream_lock; uint32_t dstream_buffer_size; void add_diskstream (DiskStream*); int load_diskstreams (const XMLNode&); @@ -1481,7 +1482,7 @@ class Session : public sigc::trackable, public Stateful /* routes stuff */ RouteList routes; - mutable PBD::NonBlockingLock route_lock; + mutable PBD::NonBlockingRWLock route_lock; void add_route (Route*); int load_routes (const XMLNode&); @@ -1685,6 +1686,7 @@ class Session : public sigc::trackable, public Stateful Sample* click_emphasis_data; jack_nframes_t click_length; jack_nframes_t click_emphasis_length; + mutable PBD::NonBlockingRWLock click_lock; static const Sample default_click[]; static const jack_nframes_t default_click_length; diff --git a/libs/ardour/ardour/session_diskstream.h b/libs/ardour/ardour/session_diskstream.h index 55c79f549f..24693c5793 100644 --- a/libs/ardour/ardour/session_diskstream.h +++ b/libs/ardour/ardour/session_diskstream.h @@ -29,7 +29,7 @@ namespace ARDOUR { template<class T> void Session::foreach_diskstream (T *obj, void (T::*func)(DiskStream&)) { - LockMonitor lm (diskstream_lock, __LINE__, __FILE__); + RWLockMonitor lm (diskstream_lock, false, __LINE__, __FILE__); for (DiskStreamList::iterator i = diskstreams.begin(); i != diskstreams.end(); i++) { if (!(*i)->hidden()) { (obj->*func) (**i); diff --git a/libs/ardour/ardour/session_route.h b/libs/ardour/ardour/session_route.h index 0b126531dc..f3c8e3f5fb 100644 --- a/libs/ardour/ardour/session_route.h +++ b/libs/ardour/ardour/session_route.h @@ -35,7 +35,7 @@ Session::foreach_route (T *obj, void (T::*func)(Route&)) RouteList public_order; { - LockMonitor lm (route_lock, __LINE__, __FILE__); + RWLockMonitor lm (route_lock, false, __LINE__, __FILE__); public_order = routes; } @@ -53,7 +53,7 @@ Session::foreach_route (T *obj, void (T::*func)(Route*)) RouteList public_order; { - LockMonitor lm (route_lock, __LINE__, __FILE__); + RWLockMonitor lm (route_lock, false, __LINE__, __FILE__); public_order = routes; } @@ -72,7 +72,7 @@ Session::foreach_route (T *obj, void (T::*func)(Route&, A), A arg1) RouteList public_order; { - LockMonitor lm (route_lock, __LINE__, __FILE__); + RWLockMonitor lm (route_lock, false, __LINE__, __FILE__); public_order = routes; } |