AaronCameron.net
I care not for your petty politics.
Not a Member? - Login or Create an Account
Monday the 6th of February 2012 @ 08:59am
Front Page Journal Projects Your Profile About
[]

LibN2L-4 Library Code Reference

Classes
Compounds
Files
Members
Method Index
Full Reference

cAudioChunk.h

Go to the documentation of this file.
00001 /************************************************************************
00002 Nova-2 Library (libN2L, or simply n2l) Game development C++ Library
00003 Copyright (C) 2003  Aaron Cameron
00004 
00005 This library is free software; you can redistribute it and/or
00006 modify it under the terms of the GNU Lesser General Public
00007 License as published by the Free Software Foundation; either
00008 version 2.1 of the License, or (at your option) any later version.
00009 
00010 This library is distributed in the hope that it will be useful,
00011 but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 Lesser General Public License for more details.
00014 
00015 You should have received a copy of the GNU Lesser General Public
00016 License along with this library; if not, write to the Free Software
00017 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00018 
00019 A copy of the GNU Lesser General Public License has been provided with
00020 this library in the file 'COPYING'.
00021 
00022 Contact information for the author of this library has been provided
00023 with this library in the file 'AUTHOR'.
00024 ************************************************************************/
00025 #ifndef _n2l4_cAudioChunk_H
00026 #define _n2l4_cAudioChunk_H
00027 
00028 #include "n2l/n2l.h"
00029 #include "n2l/geometry.h"
00030 
00031 #include "audio/types.h"
00032 #include "audio/audioConstants.h"
00033 #include "audio/cAudioChunkImp.h"
00034 
00035 /******************************************************************************/
00036 namespace n2l
00037 {
00038 
00039     class cVfsNodeInterface;
00040 
00041     /**************************************************************************/
00044     class cAudioChunk
00045     {
00046     public:
00047         cAudioChunk();
00048         cAudioChunk( const cVfsNodeInterface &iFile );
00049         ~cAudioChunk();
00050 
00051         void load( const cVfsNodeInterface &iFile );
00052 
00056         const tAudioChannel play( const tBool iLoop = false ) const;
00057 
00061         const tAudioChannel play( const tAudioVolume iLeft,
00062             const tAudioVolume iRight,
00063             const tAudioChannel iChannel = Audio_AnyFreeChannel ) const;
00064 
00065         const tAudioChannel play( const tFloat &iLRBias, const tFloat &iVol,
00066             const tAudioChannel iChannel = Audio_AnyFreeChannel ) const;
00067 
00068         const tAudioChannel playAtPos( const tFloat &iDeg,
00069             const tFloat &iDist,
00070             const tAudioChannel iChannel = Audio_AnyFreeChannel ) const;
00071 
00072         void free();
00073 
00076         const tUint length() const;
00077 
00082         const tUint size() const;
00083 
00084     private:
00085         cAutoPtr<cAudioChunkImp> mChunk;
00086         tUint mLength;
00087 
00088         // Make this non-copyable
00089         cAudioChunk( const cAudioChunk &iChunk );
00090         cAudioChunk &operator =( const cAudioChunk &iChunk );
00091     }; // class
00092 
00093 } // namespace
00094 
00095 #endif
©2012 Aaron Cameron