00001 /************************************************************************/ 00002 /* Ex Nihlo Engine by Hermanns Christophe */ 00003 /************************************************************************/ 00004 /* This program is free software; you can redistribute it and/or */ 00005 /* modify it under the terms of the GNU General Public License */ 00006 /* as published by the Free Software Foundation; either version 2 */ 00007 /* of the License, or (at your option) any later version. */ 00008 /* */ 00009 /* This program is distributed in the hope that it will be useful, */ 00010 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 00011 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ 00012 /* */ 00013 /* See the GNU General Public License for more details. */ 00014 /* */ 00015 /* You should have received a copy of the GNU General Public License */ 00016 /* along with this program; if not, write to the Free Software */ 00017 /* Foundation, Inc., 59 Temple Place - Suite 330, */ 00018 /* Boston, MA 02111-1307, USA. */ 00019 /* */ 00020 /* If you use a important part of this code please send me a mail */ 00021 /* I just want to see where my code go thks :) */ 00022 /************************************************************************/ 00023 00024 /************************************************************************/ 00025 /* Contact */ 00026 /************************************************************************/ 00027 /* ExNihilo Website :www.ploksoftware.org */ 00028 /* */ 00029 /* Hermanns Christophe ExNihilo creator and main programmer */ 00030 /* */ 00031 /* Mail : Data@ploksoftware.org */ 00032 /* ICQ : 8030901 */ 00033 /* MSN Messenger : Data_7@hotmail.com */ 00034 /* */ 00035 /* Benjamin Michotte Linux port, webmaster */ 00036 /* */ 00037 /* Mail :binny@ploksoftware.org */ 00038 /* */ 00039 /************************************************************************/ 00040 00041 /************************************************************************/ 00042 /* File Description */ 00043 /************************************************************************/ 00044 /* File Name :ExManagerSound.h */ 00045 /* */ 00046 /* Star Date :03/15/2002 */ 00047 /* */ 00048 /* Last Update : */ 00049 /* $Id: ExManagerSound.h,v 1.13 2002/12/08 17:57:03 data Exp $ */ 00050 /* */ 00051 /* File Description : */ 00052 /* */ 00053 /* For update of this file check : www.ploksoftware.org */ 00054 /************************************************************************/ 00055 00056 #ifndef __EXMANAGERSOUND_H__ 00057 #define __EXMANAGERSOUND_H__ 00058 00059 //-------------------------------- 00060 // File to include 00061 //-------------------------------- 00062 #include "ExDefine.h" 00063 #include "ExManagerObject.h" 00064 #include "ExCSound.h" 00065 //-------------------------------- 00066 #define MAX_SOUND 20 00067 #define MAX_BUFFER 100 00068 #define MAX_SOURCE 16 00069 00070 //-------------------------------- 00071 class ExManagerSound : public ExManagerObject<ExCSound> 00072 { 00073 private: 00074 //-------------------------------- 00075 // Variable 00076 //-------------------------------- 00077 bool m_initok; 00078 ALCcontext *context; 00079 ALCdevice *device; 00080 00081 //For buffer 00082 ALuint buffer_index; 00083 ALuint buffer[MAX_BUFFER]; 00084 ALint error; 00085 00086 00087 ALboolean loop; 00088 ALuint source_index; 00089 ALuint source_available; 00090 ALuint source[64]; 00091 00092 //-------------------------------- 00093 // Singleton creation 00094 //-------------------------------- 00095 static bool m_flag; 00096 static ExManagerSound *m_instance; 00097 ExManagerSound(void); 00098 ~ExManagerSound(void); 00099 //-------------------------------- 00100 00101 public: 00102 //-------------------------------- 00103 // Methode 00104 //-------------------------------- 00105 static ExManagerSound* CreateSingleton(void); 00106 //-------------------------------- 00107 // Methode 00108 //-------------------------------- 00109 void Init (void); 00110 void Reset (void); 00111 ExCAction InputCommand(ExCCommand Command); 00112 ExCAction InputAction(ExCAction Action); 00113 00114 void DisplayAviableInput (void); 00115 00116 bool LoadSound (std::string); 00117 bool RemoveSound (std::string); 00118 void PlaySound (std::string); 00119 void StopSound (std::string); 00120 int GetSound (std::string); 00121 00122 }; 00123 #endif //__EXMANAGERSOUND_H__