]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Engine.cc
removed alut dependency
[chaz/yoink] / src / Moof / Engine.cc
index f4bc712b27887d0b5397c579fc861d196ffc3bc6..de7c0cba94356afdc190110e97afcef3121cdc73 100644 (file)
 #include <list>
 #include <string>
 
+#include <AL/alc.h>
 #include <SDL/SDL.h>
 #include "fastevents.h"
-#include <AL/alut.h>
+
 
 #include "Engine.hh"
 #include "Event.hh"
@@ -68,15 +69,27 @@ public:
                        const char* error = SDL_GetError();
                        throw Exception(ErrorCode::SDL_INIT, error);
                }
+
                if (FE_Init() != 0)
                {
                        const char* error = FE_GetError();
                        throw Exception(ErrorCode::FASTEVENTS_INIT, error);
                }
-               int argc = 1;
-               char name[] = "hello";
-               alutInit(&argc, (char**)&name);
-               
+
+               mAlDevice = alcOpenDevice(0);
+               mAlContext = alcCreateContext(mAlDevice, 0);
+               if (!mAlDevice || !mAlContext)
+               {
+                       const char* error = alcGetString(mAlDevice,alcGetError(mAlDevice));
+                       logError("error while creating audio context: %s", error);
+               }
+               else
+               {
+                       alcMakeContextCurrent(mAlContext);
+                       logDebug("opened sound device \"%s\"",
+                                       alcGetString(mAlDevice, ALC_DEFAULT_DEVICE_SPECIFIER));
+               }
+
                // now load the settings the engine needs
 
                Settings& settings = Settings::getInstance();
@@ -102,7 +115,10 @@ public:
                // the video object must be destroyed before we can shutdown SDL
                mVideo.reset();
 
-               alutExit();
+               alcMakeContextCurrent(0);
+               alcDestroyContext(mAlContext);
+               alcCloseDevice(mAlDevice);
+
                FE_Quit();
                SDL_Quit();
        }
@@ -329,6 +345,9 @@ public:
        VideoP                                          mVideo;
        Dispatch                                        mDispatch;
 
+       ALCdevice*                                      mAlDevice;
+       ALCcontext*                                     mAlContext;
+
        std::list<LayerP>                       mStack;
        std::list<LayerP>::iterator     mStackIt;
 
This page took 0.021333 seconds and 4 git commands to generate.