Nsound  0.9.4
CircularBuffer.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 //
3 // $Id: CircularBuffer.h 878 2014-11-23 04:51:23Z weegreenblobbie $
4 //
5 // Nsound is a C++ library and Python module for audio synthesis featuring
6 // dynamic digital filters. Nsound lets you easily shape waveforms and write
7 // to disk or plot them. Nsound aims to be as powerful as Csound but easy to
8 // use.
9 //
10 // Copyright (c) 2008-Present Nick Hilton
11 //
12 // weegreenblobbie_yahoo_com (replace '_' with '@' and '.')
13 //
14 //-----------------------------------------------------------------------------
15 
16 //-----------------------------------------------------------------------------
17 //
18 // This program is free software; you can redistribute it and/or modify
19 // it under the terms of the GNU General Public License as published by
20 // the Free Software Foundation; either version 2 of the License, or
21 // (at your option) any later version.
22 //
23 // This program is distributed in the hope that it will be useful,
24 // but WITHOUT ANY WARRANTY; without even the implied warranty of
25 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 // GNU Library General Public License for more details.
27 //
28 // You should have received a copy of the GNU General Public License
29 // along with this program; if not, write to the Free Software
30 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
31 //
32 //-----------------------------------------------------------------------------
33 #ifndef _NSOUND_CIRCULAR_BUFFER_H_
34 #define _NSOUND_CIRCULAR_BUFFER_H_
35 
36 namespace Nsound
37 {
38 
39 class Buffer;
40 
42 {
43  public:
44 
45  CircularBuffer(uint32 n_samples);
47 
48  Buffer read() const;
49 
50  void write(float64 d);
51  void write(const AudioStream & as);
52  void write(const Buffer & b);
53 
54  protected:
55 
58 
59  private:
60 
61  // FIXME: currently Buffer::circular_iterator isn't copyable
62 
63  CircularBuffer(const CircularBuffer & copy);
65 
66 };
67 
68 } // namespace
69 
70 // :mode=c++: jEdit modeline
71 #endif
unsigned int uint32
Definition: Nsound.h:153
A circulator iterator for class Buffer.
Buffer read() const
double float64
Definition: Nsound.h:146
void write(float64 d)
CircularBuffer(uint32 n_samples)
A Buffer for storing audio samples.
Definition: Buffer.h:60
CircularBuffer & operator=(const CircularBuffer &rhs)
Buffer::circular_iterator * itor_