ardour
audio_port.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2009 Paul Davis
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18  $Id: port.h 712 2006-07-28 01:08:57Z drobilla $
19 */
20 
21 #ifndef __ardour_audio_port_h__
22 #define __ardour_audio_port_h__
23 
24 #include "ardour/port.h"
25 #include "ardour/audio_buffer.h"
26 
27 namespace ARDOUR {
28 
30 {
31  public:
32  ~AudioPort ();
33 
34  DataType type () const {
35  return DataType::AUDIO;
36  }
37 
38  void cycle_start (pframes_t);
39  void cycle_end (pframes_t);
40  void cycle_split ();
41 
43  return get_audio_buffer (nframes);
44  }
45 
46  AudioBuffer& get_audio_buffer (pframes_t nframes);
47 
48  protected:
49  friend class PortManager;
50  AudioPort (std::string const &, PortFlags);
51 
52  /* special access for PortManager only (hah, C++) */
53  Sample* engine_get_whole_audio_buffer ();
54 
55  private:
57  bool _buf_valid;
58 };
59 
60 } // namespace ARDOUR
61 
62 #endif /* __ardour_audio_port_h__ */
uint32_t pframes_t
Definition: types.h:61
float Sample
Definition: types.h:54
DataType type() const
Definition: audio_port.h:34
Definition: amp.h:29
PortFlags
Definition: types.h:610
AudioBuffer * _buffer
Definition: audio_port.h:56
#define LIBARDOUR_API
Buffer & get_buffer(pframes_t nframes)
Definition: audio_port.h:42