X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Faudio_port.h;h=748ef8263baf8c3a8c1ad49f84c1cffcc23c5b65;hb=e5c607123588b318f28022488d74790fc1b7bebe;hp=b928a3587da4a0f230b5de2edea0f5d16db28bf6;hpb=e0aaed6d65f160c328cb8b56d7c6552ee15d65e2;p=ardour.git diff --git a/libs/ardour/ardour/audio_port.h b/libs/ardour/ardour/audio_port.h index b928a3587d..748ef8263b 100644 --- a/libs/ardour/ardour/audio_port.h +++ b/libs/ardour/ardour/audio_port.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2009 Paul Davis + Copyright (C) 2002-2009 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,34 +26,48 @@ namespace ARDOUR { -class AudioPort : public Port +class AudioPort : public Port { public: ~AudioPort (); - + DataType type () const { return DataType::AUDIO; } - - void cycle_start (nframes_t, nframes_t); - void cycle_end (nframes_t, nframes_t); - Buffer& get_buffer (nframes_t nframes, nframes_t offset) { + void cycle_start (pframes_t); + void cycle_end (pframes_t); + void cycle_split (); + + size_t raw_buffer_size (pframes_t nframes) const; + + Buffer& get_buffer (framecnt_t nframes, framecnt_t offset = 0) { return get_audio_buffer (nframes, offset); } - - AudioBuffer& get_audio_buffer (nframes_t, nframes_t); + AudioBuffer& get_audio_buffer (framecnt_t nframes, framecnt_t offset = 0); + + static framecnt_t port_offset() { return _port_offset; } + + static void set_port_offset (framecnt_t off) { + _port_offset = off; + } + + static void increment_port_offset (framecnt_t n) { + _port_offset += n; + } + protected: friend class AudioEngine; AudioPort (std::string const &, Flags); - + private: - bool _buffer_data_set; AudioBuffer* _buffer; + + static framecnt_t _port_offset; }; - + } // namespace ARDOUR #endif /* __ardour_audio_port_h__ */