13
0

Add Processor API for global session-transport alignment

These are only relevant for DiskIO Processors, however more
use-cases may present themselves (e.g. LuaDSP)
This commit is contained in:
Robin Gareus 2017-09-28 06:04:58 +02:00
parent 69b9ad6bcc
commit 491523d6b7
2 changed files with 12 additions and 0 deletions

View File

@ -76,6 +76,12 @@ class LIBARDOUR_API Processor : public SessionObject, public Automatable, public
virtual void set_output_latency (samplecnt_t cnt) { _output_latency = cnt; }
samplecnt_t output_latency () const { return _output_latency; }
virtual void set_capture_offset (samplecnt_t cnt) { _capture_offset = cnt; }
samplecnt_t capture_offset () const { return _capture_offset; }
virtual void set_playback_offset (samplecnt_t cnt) { _playback_offset = cnt; }
samplecnt_t playback_offset () const { return _playback_offset; }
virtual int set_block_size (pframes_t /*nframes*/) { return 0; }
virtual bool requires_fixed_sized_buffers() const { return false; }
@ -155,8 +161,12 @@ protected:
ProcessorWindowProxy *_window_proxy;
PluginPinWindowProxy *_pinmgr_proxy;
SessionObject* _owner;
// relative to route
samplecnt_t _input_latency;
samplecnt_t _output_latency;
// absolute alignment to session i/o
samplecnt_t _capture_offset;
samplecnt_t _playback_offset;
};
} // namespace ARDOUR

View File

@ -70,6 +70,8 @@ Processor::Processor(Session& session, const string& name)
, _owner (0)
, _input_latency (0)
, _output_latency (0)
, _capture_offset (0)
, _playback_offset (0)
{
}