Home | nevrax.com |
|
buffer.hGo to the documentation of this file.00001 00007 /* Copyright, 2001 Nevrax Ltd. 00008 * 00009 * This file is part of NEVRAX NEL. 00010 * NEVRAX NEL is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2, or (at your option) 00013 * any later version. 00014 00015 * NEVRAX NEL is distributed in the hope that it will be useful, but 00016 * WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * General Public License for more details. 00019 00020 * You should have received a copy of the GNU General Public License 00021 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00022 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00023 * MA 02111-1307, USA. 00024 */ 00025 00026 #ifndef NL_BUFFER_H 00027 #define NL_BUFFER_H 00028 00029 #include "nel/misc/types_nl.h" 00030 #include "sound/driver/sound_driver.h" 00031 00032 00033 namespace NLSOUND { 00034 00035 00036 /* 00037 * Sound sample format 00038 */ 00039 enum TSampleFormat { Mono8, Mono16, Stereo8, Stereo16 }; 00040 00041 00048 class IBuffer 00049 { 00050 public: 00051 00057 virtual void presetName(const std::string &bufferName) = 0; 00059 virtual void setFormat( TSampleFormat format, uint freq ) = 0; 00061 virtual bool fillBuffer( void *src, uint32 bufsize ) = 0; 00062 00064 virtual uint32 getSize() const = 0; 00066 virtual float getDuration() const = 0; 00068 virtual bool isStereo() const = 0; 00070 virtual void getFormat( TSampleFormat& format, uint& freq ) const = 0; 00071 00075 virtual bool isFillMoreSupported() const = 0; 00077 virtual void setSize( uint32 size ) { throw ESoundDriverNotSupp(); } 00083 virtual bool fillMore( void *src, uint32 srcsize ) { throw ESoundDriverNotSupp(); } 00084 00086 virtual const std::string& getName() = 0; 00087 00089 virtual bool isBufferLoaded() = 0; 00090 00091 protected: 00092 00094 IBuffer() {}; 00095 00096 public: 00097 00099 virtual ~IBuffer() {} 00100 00101 }; 00102 00103 00104 } // NLSOUND 00105 00106 00107 #endif // NL_BUFFER_H 00108 00109 /* End of buffer.h */ |