dungeon_crawler

annotate prototype/src/audio/audio.cc @ 48:aa9e28670ae2

added sound playback, more to do
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 17 Sep 2012 08:40:59 +0300
parents d52711f2b9a1
children c40efa9cf844
rev   line source
nuclear@47 1 #include <stdio.h>
nuclear@47 2 #include "openal.h"
nuclear@47 3 #include "audio.h"
nuclear@47 4
nuclear@47 5 static ALCdevice *dev;
nuclear@47 6 static ALCcontext *ctx;
nuclear@47 7
nuclear@47 8
nuclear@47 9 bool init_audio()
nuclear@47 10 {
nuclear@47 11 if(dev) {
nuclear@47 12 return true;
nuclear@47 13 }
nuclear@47 14
nuclear@47 15 if(!(dev = alcOpenDevice(0))) {
nuclear@47 16 fprintf(stderr, "failed to open OpenAL device\n");
nuclear@47 17 return false;
nuclear@47 18 }
nuclear@47 19 ctx = alcCreateContext(dev, 0);
nuclear@47 20 alcMakeContextCurrent(ctx);
nuclear@47 21
nuclear@47 22 alGetError(); // clear error code
nuclear@47 23 return true;
nuclear@47 24 }
nuclear@47 25
nuclear@47 26 void destroy_audio()
nuclear@47 27 {
nuclear@47 28 alcMakeContextCurrent(0);
nuclear@47 29 if(ctx) {
nuclear@47 30 alcDestroyContext(ctx);
nuclear@47 31 }
nuclear@47 32 if(dev) {
nuclear@47 33 alcCloseDevice(dev);
nuclear@47 34 }
nuclear@47 35 }