From bd722d037440059ba781bb9dfe54eb44112c8665 Mon Sep 17 00:00:00 2001 From: jpbl <jpbl> Date: Thu, 12 Jan 2006 22:28:04 +0000 Subject: [PATCH] added example03.cpp --- src/audio/OpenAL/example03.cpp | 77 ++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/src/audio/OpenAL/example03.cpp b/src/audio/OpenAL/example03.cpp index 603f5501fe..7367b70c20 100644 --- a/src/audio/OpenAL/example03.cpp +++ b/src/audio/OpenAL/example03.cpp @@ -30,55 +30,62 @@ using namespace SFLAudio; -int main(int, char* []) +struct Info { - ALenum format1; - ALvoid *data1; - ALsizei size1; - ALsizei freq1; - ALboolean loop1; - - ALenum format2; - ALvoid *data2; - ALsizei size2; - ALsizei freq2; - ALboolean loop2; + ALenum format; + ALvoid *data; + ALsizei size; + ALsizei freq; + ALboolean loop; +}; +int main(int argc, char* argv[]) +{ AudioLayer *layer = SFLAudio::AudioManager::instance().currentLayer(); Device *device = layer->openDevice(); Context *context = device->createContext(); - // Load test.wav - alutLoadWAVFile("test.wav",&format1,&data1,&size1,&freq1,&loop1); - ALenum error = alGetError(); - if (error != AL_NO_ERROR) { - std::cerr << "OpenAL: loadWAVFile : " << alGetString(error); - return 1; - } + ALbyte *files[] = {"test.wav", "test2.wav"}; - // Load test2.wav - alutLoadWAVFile("test2.wav",&format2,&data2,&size2,&freq2,&loop2); - error = alGetError(); - if (error != AL_NO_ERROR) { - std::cerr << "OpenAL: loadWAVFile : " << alGetString(error); - return 1; + + Info *infos = new Info[argc-1]; + ALenum error; + + for(int i = 0; i < 2; i++) { + // Load test.wav + alutLoadWAVFile(files[i], + &infos[i].format, + &infos[i].data, + &infos[i].size, + &infos[i].freq, + &infos[i].loop); + error = alGetError(); + if (error != AL_NO_ERROR) { + std::cerr << "OpenAL: loadWAVFile : " << alGetString(error); + return 1; + } + + i++; } - Source *source1 = context->createSource(format1, freq1); - source1->play(data1, size1); - Source *source2 = context->createSource(format2, freq2); - source2->play(data2, size2); + for(int i = 0; i < argc - 1; i++) { + Source *source = context->createSource(infos[i].format, infos[i].freq); + source->play(&infos[i].data, infos[i].size); + } - // Unload test.wav and test2.wav - alutUnloadWAV(format1, data1, size1, freq1); - alutUnloadWAV(format2, data2, size2, freq2); + for(int i = 0; i < argc - 1; i++) { + // Unload wav files + alutUnloadWAV(infos[i].format, + infos[i].data, + infos[i].size, + infos[i].freq); + } + std::cin.get(); + error = alGetError(); - if (error != AL_NO_ERROR) { std::cerr << "OpenAL: unloadWAV : " << alGetString(error); } - - } -- GitLab