Merge with trunk r37757.
[blender.git] / intern / audaspace / ffmpeg / AUD_FFMPEGFactory.h
index 0a9fcc22c8b0ef3731cea8020883cbffce6d3c3a..af95e3a3b813d2aca31160345bae845805fd5fdc 100644 (file)
@@ -1,32 +1,42 @@
 /*
  * $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/ffmpeg/AUD_FFMPEGFactory.h
+ *  \ingroup audffmpeg
+ */
+
+
 #ifndef AUD_FFMPEGFACTORY
 #define AUD_FFMPEGFACTORY
 
 #include "AUD_IFactory.h"
+#include "AUD_Reference.h"
+class AUD_Buffer;
+
+#include <string>
 
 /**
  * This factory reads a sound file via ffmpeg.
@@ -39,38 +49,32 @@ private:
        /**
         * The filename of the sound source file.
         */
-       char* m_filename;
+       const std::string m_filename;
 
        /**
         * The buffer to read from.
         */
-       unsigned char* m_buffer;
+       AUD_Reference<AUD_Buffer> m_buffer;
 
-       /**
-        * The size of the buffer.
-        */
-       int m_size;
+       // hide copy constructor and operator=
+       AUD_FFMPEGFactory(const AUD_FFMPEGFactory&);
+       AUD_FFMPEGFactory& operator=(const AUD_FFMPEGFactory&);
 
 public:
        /**
         * Creates a new factory.
         * \param filename The sound file path.
         */
-       AUD_FFMPEGFactory(const char* filename);
+       AUD_FFMPEGFactory(std::string filename);
 
        /**
         * Creates a new factory.
         * \param buffer The buffer to read from.
         * \param size The size of the buffer.
         */
-       AUD_FFMPEGFactory(unsigned char* buffer, int size);
-
-       /**
-        * Destroys the factory.
-        */
-       ~AUD_FFMPEGFactory();
+       AUD_FFMPEGFactory(const data_t* buffer, int size);
 
-       virtual AUD_IReader* createReader();
+       virtual AUD_Reference<AUD_IReader> createReader();
 };
 
 #endif //AUD_FFMPEGFACTORY