Changeset 782 for code/branches/FICN/src/audio
- Timestamp:
- Jan 1, 2008, 2:00:08 PM (18 years ago)
- File:
-
- 1 edited
-
code/branches/FICN/src/audio/_AudioObject.cc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
code/branches/FICN/src/audio/_AudioObject.cc
r560 r782 1 1 /* 2 * ORXONOX - the hottest 3D action shooter ever to exist3 *4 *5 * License notice:6 *7 * This program is free software; you can redistribute it and/or8 * modify it under the terms of the GNU General Public License9 * as published by the Free Software Foundation; either version 210 * of the License, or (at your option) any later version.11 *12 * This program is distributed in the hope that it will be useful,13 * but WITHOUT ANY WARRANTY; without even the implied warranty of14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the15 * GNU General Public License for more details.16 *17 * You should have received a copy of the GNU General Public License18 * along with this program; if not, write to the Free Software19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.20 *21 * Author:22 * ...23 * Co-authors:24 * ...25 *26 */2 * ORXONOX - the hottest 3D action shooter ever to exist 3 * 4 * 5 * License notice: 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 * Author: 22 * ... 23 * Co-authors: 24 * ... 25 * 26 */ 27 27 28 28 29 29 #include <iostream> 30 30 #include <string> 31 32 #include "core/Debug.h" 31 33 #include "AudioObject.h" 32 #include "../orxonox/core/Debug.h"33 34 34 35 namespace audio 35 36 { 36 AudioObject::AudioObject(std::string audioFile)37 {38 audioFile_ = audioFile;39 SourcePos[0]=0;40 SourcePos[1]=0;41 SourcePos[2]=0;37 AudioObject::AudioObject(std::string audioFile) 38 { 39 audioFile_ = audioFile; 40 SourcePos[0]=0; 41 SourcePos[1]=0; 42 SourcePos[2]=0; 42 43 43 SourceVel[0]=0;44 SourceVel[1]=0;45 SourceVel[2]=0;44 SourceVel[0]=0; 45 SourceVel[1]=0; 46 SourceVel[2]=0; 46 47 47 ListenerPos[0]=0;48 ListenerPos[1]=0;49 ListenerPos[2]=0;48 ListenerPos[0]=0; 49 ListenerPos[1]=0; 50 ListenerPos[2]=0; 50 51 51 ListenerVel[0]=0;52 ListenerVel[1]=0;53 ListenerVel[2]=0;52 ListenerVel[0]=0; 53 ListenerVel[1]=0; 54 ListenerVel[2]=0; 54 55 55 ListenerOri[0]=0;56 ListenerOri[1]=0;57 ListenerOri[2]=-1;58 ListenerOri[3]=0;59 ListenerOri[4]=1;60 ListenerOri[5]=0;56 ListenerOri[0]=0; 57 ListenerOri[1]=0; 58 ListenerOri[2]=-1; 59 ListenerOri[3]=0; 60 ListenerOri[4]=1; 61 ListenerOri[5]=0; 61 62 62 63 63 // Initialize OpenAL and clear the error bit.64 // Initialize OpenAL and clear the error bit. 64 65 65 alutInit(NULL, 0);66 alGetError();66 alutInit(NULL, 0); 67 alGetError(); 67 68 68 // Load the wav data.69 // Load the wav data. 69 70 70 if(LoadALData() == AL_FALSE)71 {72 printf("Error loading sound data.");71 if(LoadALData() == AL_FALSE) 72 { 73 printf("Error loading sound data."); 73 74 74 }75 } 75 76 76 SetListenerValues();77 COUT(3) << "Info: Play sone ambient background sound";78 }77 SetListenerValues(); 78 COUT(3) << "Info: Play sone ambient background sound"; 79 } 79 80 80 AudioObject::~AudioObject()81 {82 KillALData();83 }81 AudioObject::~AudioObject() 82 { 83 KillALData(); 84 } 84 85 85 ALboolean AudioObject::LoadALData()86 {87 ALenum format;88 ALsizei size;89 ALvoid* data;90 ALsizei freq;91 ALboolean loop;86 ALboolean AudioObject::LoadALData() 87 { 88 ALenum format; 89 ALsizei size; 90 ALvoid* data; 91 ALsizei freq; 92 ALboolean loop; 92 93 93 94 94 alGenBuffers(1, &Buffer);95 alGenBuffers(1, &Buffer); 95 96 96 if(alGetError() != AL_NO_ERROR)97 return AL_FALSE;97 if(alGetError() != AL_NO_ERROR) 98 return AL_FALSE; 98 99 99 alutLoadWAVFile((ALbyte*)audioFile_.c_str(), &format, &data, &size, &freq, &loop);100 alBufferData(Buffer, format, data, size, freq);101 alutUnloadWAV(format, data, size, freq);100 alutLoadWAVFile((ALbyte*)audioFile_.c_str(), &format, &data, &size, &freq, &loop); 101 alBufferData(Buffer, format, data, size, freq); 102 alutUnloadWAV(format, data, size, freq); 102 103 103 alGenSources(1, &Source);104 alGenSources(1, &Source); 104 105 105 if(alGetError() != AL_NO_ERROR)106 return AL_FALSE;106 if(alGetError() != AL_NO_ERROR) 107 return AL_FALSE; 107 108 108 alSourcei (Source, AL_BUFFER, Buffer );109 alSourcef (Source, AL_PITCH, 1.0 );110 alSourcef (Source, AL_GAIN, 1.0 );111 alSourcefv(Source, AL_POSITION, SourcePos);112 alSourcefv(Source, AL_VELOCITY, SourceVel);113 alSourcei (Source, AL_LOOPING, loop );109 alSourcei (Source, AL_BUFFER, Buffer ); 110 alSourcef (Source, AL_PITCH, 1.0 ); 111 alSourcef (Source, AL_GAIN, 1.0 ); 112 alSourcefv(Source, AL_POSITION, SourcePos); 113 alSourcefv(Source, AL_VELOCITY, SourceVel); 114 alSourcei (Source, AL_LOOPING, loop ); 114 115 115 if(alGetError() == AL_NO_ERROR)116 return AL_TRUE;116 if(alGetError() == AL_NO_ERROR) 117 return AL_TRUE; 117 118 118 119 119 return AL_FALSE;120 }120 return AL_FALSE; 121 } 121 122 122 void AudioObject::SetListenerValues()123 {124 alListenerfv(AL_POSITION, ListenerPos);125 alListenerfv(AL_VELOCITY, ListenerVel);126 alListenerfv(AL_ORIENTATION, ListenerOri);127 }123 void AudioObject::SetListenerValues() 124 { 125 alListenerfv(AL_POSITION, ListenerPos); 126 alListenerfv(AL_VELOCITY, ListenerVel); 127 alListenerfv(AL_ORIENTATION, ListenerOri); 128 } 128 129 129 void AudioObject::KillALData()130 {131 alDeleteBuffers(1, &Buffer);132 alDeleteSources(1, &Source);133 alutExit();134 }130 void AudioObject::KillALData() 131 { 132 alDeleteBuffers(1, &Buffer); 133 alDeleteSources(1, &Source); 134 alutExit(); 135 } 135 136 136 void AudioObject::play() 137 { 138 alSourcePlay(Source); 137 void AudioObject::play() 138 { 139 alSourcePlay(Source); 140 } 139 141 140 }141 142 } 142
Note: See TracChangeset
for help on using the changeset viewer.










