diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-07 14:18:06 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-07 14:18:06 +0000 |
commit | 8dab33c609bdf588aa33cd4e34019f7319f078d6 (patch) | |
tree | 0ecf90dda51d0947085ba78206f9188f43e2f2cc /libs/ardour/ardour/meter.h | |
parent | 1a447016437727452fdf00e7c762f339c796f736 (diff) |
Route::set_meter_point() is now conceptually RT safe, although it still takes a write lock on the processor list. this allows it to be called when setting rec-enable status on a route. not thoroughly tested, and still incomplete - single route rec-enables should probably use this pathway, and there is still no cross-thread cleanup from an RT route op request
git-svn-id: svn://localhost/ardour2/branches/3.0@6320 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/meter.h')
-rw-r--r-- | libs/ardour/ardour/meter.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/libs/ardour/ardour/meter.h b/libs/ardour/ardour/meter.h index dbaba25a06..ae0a1672db 100644 --- a/libs/ardour/ardour/meter.h +++ b/libs/ardour/ardour/meter.h @@ -59,6 +59,19 @@ public: bool can_support_io_configuration (const ChanCount& in, ChanCount& out) const; bool configure_io (ChanCount in, ChanCount out); + + /* special method for meter, to ensure that it can always handle the maximum + number of streams in the route, no matter where we put it. + */ + + void reset_max_channels (const ChanCount&); + + /* tell the meter than no matter how many channels it can handle, + `in' is the number it is actually going be handling from + now on. + */ + + void reflect_inputs (const ChanCount& in); /** Compute peaks */ void run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes, bool); @@ -80,10 +93,12 @@ public: } XMLNode& state (bool full); - + private: friend class IO; - + + uint32_t current_meters; + std::vector<float> _peak_power; std::vector<float> _visible_peak_power; std::vector<float> _max_peak_power; |