diff --git a/engine/xe_sound.cpp b/engine/xe_sound.cpp index fbb4628..d315179 100644 --- a/engine/xe_sound.cpp +++ b/engine/xe_sound.cpp @@ -8,33 +8,22 @@ namespace xe { XeSound::XeSound(const std::string& filename) { - ALvoid *data; - ALsizei size, freq; - ALenum format; - ALboolean loop; - char *bufferData; + // ALvoid *data; + // ALsizei size, freq; + // ALenum format; + // ALboolean loop; + // char *bufferData; - // alutLoadWAVFile(filename.c_str(), &format, &data, &size, &freq, &loop); + alutInit(0, NULL); - // AudioFile file; - // file.load(filename); + std::cout << std::hex << alutGetError() << "\n"; - // std::vector data; - // file.writePCMToBuffer(data); - // auto getALSoundFormat = [](AudioFile& audioFile) { - // int bitDepth = audioFile.getBitDepth(); - // if (bitDepth == 16) - // return audioFile.isStereo() ? AL_FORMAT_STEREO16 : AL_FORMAT_MONO16; - // else if (bitDepth == 8) - // return audioFile.isStereo() ? AL_FORMAT_STEREO8 : AL_FORMAT_MONO8; - // else - // return -1; - // }; + buffer = alutCreateBufferFromFile(filename.c_str()); - // alGenBuffers(1, &buffer); - // alBufferData(buffer, getALSoundFormat(file), data.data(), data.size(), file.getSampleRate()); + std::cout << std::hex << alutGetError() << "\n"; alGenSources(1, &source); + alSourcef(source, AL_GAIN, 1.f); alSourcef(source, AL_PITCH, 1.f); alSource3f(source, AL_POSITION, 0, 0, 0); @@ -47,6 +36,7 @@ XeSound::XeSound(const std::string& filename) { XeSound::~XeSound() { alDeleteSources(1, &source); alDeleteBuffers(1, &buffer); + alutExit(); } void XeSound::play() { diff --git a/engine/xe_sound.hpp b/engine/xe_sound.hpp index 3d0caa2..334e793 100644 --- a/engine/xe_sound.hpp +++ b/engine/xe_sound.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include diff --git a/engine/xe_sound_device.cpp b/engine/xe_sound_device.cpp index 0b85b6a..3bc931d 100644 --- a/engine/xe_sound_device.cpp +++ b/engine/xe_sound_device.cpp @@ -8,57 +8,57 @@ namespace xe { XeSoundDevice::XeSoundDevice() { - ALboolean enumeration; - enumeration = alcIsExtensionPresent(NULL, "ALC_ENUMERATION_EXT"); - if (enumeration == AL_FALSE) { - fprintf(stderr, "enumeration extension not available\n"); - listAudioDevices(alcGetString(NULL, ALC_DEVICE_SPECIFIER)); - } +// ALboolean enumeration; +// enumeration = alcIsExtensionPresent(NULL, "ALC_ENUMERATION_EXT"); +// if (enumeration == AL_FALSE) { +// fprintf(stderr, "enumeration extension not available\n"); +// listAudioDevices(alcGetString(NULL, ALC_DEVICE_SPECIFIER)); +// } - listAudioDevices(alcGetString(NULL, ALC_DEVICE_SPECIFIER)); +// listAudioDevices(alcGetString(NULL, ALC_DEVICE_SPECIFIER)); - const ALCchar* name = alcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER); +// const ALCchar* name = alcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER); - device = alcOpenDevice(name); - if (!device) { - std::runtime_error("failed to get sound device"); - } +// device = alcOpenDevice(name); +// if (!device) { +// std::runtime_error("failed to get sound device"); +// } - std::cout << "Audio Device: " << alcGetString(device, ALC_DEVICE_SPECIFIER) << "\n"; +// std::cout << "Audio Device: " << alcGetString(device, ALC_DEVICE_SPECIFIER) << "\n"; - context = alcCreateContext(device, NULL); - if(!alcMakeContextCurrent(context)) { - std::runtime_error("failed to make sound context current"); - } +// context = alcCreateContext(device, NULL); +// if(!alcMakeContextCurrent(context)) { +// std::runtime_error("failed to make sound context current"); +// } - alListener3f(AL_POSITION, 0.f, 0.f, 0.f); - alListener3f(AL_VELOCITY, 0.f, 0.f, 0.f); - ALfloat frontAndUpVectors[] = { - /* front*/1.f, 0.f, 0.f, - /* up */ 0.f, 1.f, 0.f - }; - alListenerfv(AL_ORIENTATION, frontAndUpVectors); +// alListener3f(AL_POSITION, 0.f, 0.f, 0.f); +// alListener3f(AL_VELOCITY, 0.f, 0.f, 0.f); +// ALfloat frontAndUpVectors[] = { +// /* front*/1.f, 0.f, 0.f, +// /* up */ 0.f, 1.f, 0.f +// }; +// alListenerfv(AL_ORIENTATION, frontAndUpVectors); -} +// } -void XeSoundDevice::listAudioDevices(const ALCchar* devices) { - const ALCchar *device = devices, *next = devices + 1; - size_t len = 0; +// void XeSoundDevice::listAudioDevices(const ALCchar* devices) { +// const ALCchar *device = devices, *next = devices + 1; +// size_t len = 0; - fprintf(stdout, "Devices list: "); - while (device && *device != '\0' && next && *next != '\0') { - fprintf(stdout, "%s, ", device); - len = strlen(device); - device += (len + 1); - next += (len + 2); - } - std::cout << "\n"; +// fprintf(stdout, "Devices list: "); +// while (device && *device != '\0' && next && *next != '\0') { +// fprintf(stdout, "%s, ", device); +// len = strlen(device); +// device += (len + 1); +// next += (len + 2); +// } +// std::cout << "\n"; } XeSoundDevice::~XeSoundDevice() { - alcMakeContextCurrent(nullptr); - alcDestroyContext(context); - alcCloseDevice(device); + // alcMakeContextCurrent(nullptr); + // alcDestroyContext(context); + // alcCloseDevice(device); } } \ No newline at end of file