X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Faudio_port.h;h=748ef8263baf8c3a8c1ad49f84c1cffcc23c5b65;hb=e5c607123588b318f28022488d74790fc1b7bebe;hp=339165da0f71471c96e54ff4f267e0da36ebab0e;hpb=d6637dad5a239d74038fdf9e5800e5108ba0c44f;p=ardour.git diff --git a/libs/ardour/ardour/audio_port.h b/libs/ardour/ardour/audio_port.h index 339165da0f..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 @@ -21,44 +21,53 @@ #ifndef __ardour_audio_port_h__ #define __ardour_audio_port_h__ -#include -#include +#include "ardour/port.h" +#include "ardour/audio_buffer.h" namespace ARDOUR { -class AudioPort : public Port +class AudioPort : public Port { public: - ~AudioPort(); + ~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); - void reset (); + 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, bool, nframes_t); - - private: - void mixdown (nframes_t, nframes_t, bool); + AudioPort (std::string const &, Flags); - bool _has_been_mixed_down; + private: AudioBuffer* _buffer; - bool _own_buffer; + + static framecnt_t _port_offset; }; - + } // namespace ARDOUR #endif /* __ardour_audio_port_h__ */