Merge with trunk r37757.
[blender.git] / intern / audaspace / intern / AUD_Buffer.h
index f745ee6154b773a7dc6325a84fc13f5cf5e4865d..4a37bc1746421b3a7e9ced2c000830bff9c93560 100644 (file)
@@ -1,28 +1,34 @@
 /*
  * $Id$
  *
- * ***** BEGIN LGPL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
- * Copyright 2009 Jörg Hermann Müller
+ * Copyright 2009-2011 Jörg Hermann Müller
  *
  * This file is part of AudaSpace.
  *
- * AudaSpace is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
+ * Audaspace is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
  * AudaSpace is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
+ * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU Lesser General Public License
- * along with AudaSpace.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Audaspace; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * ***** END LGPL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
+/** \file audaspace/intern/AUD_Buffer.h
+ *  \ingroup audaspaceintern
+ */
+
+
 #ifndef AUD_BUFFER
 #define AUD_BUFFER
 
@@ -41,6 +47,10 @@ private:
        /// The pointer to the buffer memory.
        data_t* m_buffer;
 
+       // hide copy constructor and operator=
+       AUD_Buffer(const AUD_Buffer&);
+       AUD_Buffer& operator=(const AUD_Buffer&);
+
 public:
        /**
         * Creates a new buffer.
@@ -56,12 +66,12 @@ public:
        /**
         * Returns the pointer to the buffer in memory.
         */
-       sample_t* getBuffer();
+       sample_t* getBuffer() const;
 
        /**
         * Returns the size of the buffer in bytes.
         */
-       int getSize();
+       int getSize() const;
 
        /**
         * Resizes the buffer.
@@ -70,6 +80,16 @@ public:
         *        the data at the end will be lost.
         */
        void resize(int size, bool keep = false);
+
+       /**
+        * Makes sure the buffer has a minimum size.
+        * If size is >= current size, nothing will happen.
+        * Otherwise the buffer is resized with keep as parameter.
+        * \param size The new minimum size of the buffer, measured in bytes.
+        * \param keep Whether to keep the old data. If the new buffer is smaller,
+        *        the data at the end will be lost.
+        */
+       void assureSize(int size, bool keep = false);
 };
 
 #endif //AUD_BUFFER