Home | nevrax.com |
|
buffer_al.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_AL_H 00027 #define NL_BUFFER_AL_H 00028 00029 #include "nel/misc/types_nl.h" 00030 #include "nel/misc/debug.h" 00031 #include "sound/driver/buffer.h" 00032 00033 #include "AL/al.h" 00034 00035 namespace NLSOUND { 00036 00037 00049 class CBufferAL : public IBuffer 00050 { 00051 public: 00052 00054 CBufferAL( ALuint buffername=0 ); 00056 virtual ~CBufferAL(); 00057 00059 virtual void setFormat( TSampleFormat format, uint freq ); 00061 virtual bool fillBuffer( void *src, uint32 bufsize ); 00062 00064 virtual uint32 getSize() const; 00066 virtual float getDuration() const; 00068 virtual bool isStereo() const; 00070 virtual void getFormat( TSampleFormat& format, uint& freq ) const; 00071 00072 00076 virtual bool isFillMoreSupported() const { return false; } 00078 virtual void setSize( uint32 size ) { throw ESoundDriverNotSupp(); } 00084 virtual bool fillMore( void *src, uint32 srcsize ) { throw ESoundDriverNotSupp(); } 00085 00086 00088 ALuint bufferName() { return _BufferName; } 00089 00091 virtual const std::string& getName() { return _Name; } 00092 00094 virtual void setName(std::string& name) { _Name = name; } 00095 00096 virtual void presetName(const std::string &bufferName); 00097 00098 private: 00099 00100 // Buffer name 00101 ALuint _BufferName; 00102 00103 // Buffer name as string 00104 std::string _Name; 00105 00106 // Sample format 00107 ALenum _SampleFormat; 00108 00109 // Frequency 00110 ALuint _Frequency; 00111 }; 00112 00113 00114 } // NLSOUND 00115 00116 00117 #endif // NL_BUFFER_AL_H 00118 00119 /* End of buffer_al.h */ |