В alsoft.conf прописал
drivers = port,alsa
Установил OpenAL, ALSA, собрал и установил PortAudio
Если прописать только alsa, получае
AL lib: (WW) alc_initconfig: No playback backend available!
AL lib: (WW) alc_initconfig: No capture backend available!
иначе при port
AL lib: (EE) ALCportPlayback_open: Pa_OpenStream() returned an error: Invalid device
То же самое и не хочет работать в OSS
AL lib: (EE) ALCplaybackOSS_open: Could not open /dev/dsp: No such file or directory
Хотя при сборке PortAudio указывает
Configuration summary:
Target ...................... x86_64-unknown-linux-gnu
C++ bindings ................ no
Debug output ................ no
ALSA ........................ yes
ASIHPI ...................... no
OSS ......................... yes
JACK ........................ no
исходя из этого не ясно в чем проблема, как нормально заставить работать OpenAL? и неужели столько костылей при сборке таких вещей?
Исходник
#include <AL/al.h>
#include <AL/alc.h>
#include <AL/alut.h>
#include <stdio.h>
// gcc -o simplealut simplealut.c `pkg-config --libs freealut`
//
#define FILENAME "sample.wav"
int main(int argc, char **argv) {
ALuint buffer, source;
ALint state;
// Initialize the environment
alutInit(0, NULL);
// Capture errors
alGetError();
// Load pcm data into buffer
/* buffer = alutCreateBufferFromFile(FILENAME);
// Create sound source (use buffer to fill source)
alGenSources(1, &source);
alSourcei(source, AL_BUFFER, buffer);
// Play
alSourcePlay(source);
// Wait for the song to complete
do {
alGetSourcei(source, AL_SOURCE_STATE, &state);
} while (state == AL_PLAYING);
// Clean up sources and buffers
alDeleteSources(1, &source);
alDeleteBuffers(1, &buffer);
*/
// Exit everything
alutExit();
return 0;
}