Sound::Sound()
    : m_bgm(0),
    m_bgm_source(0)
  {
    // Ensure Core is initialized
    get_Core();

#ifndef DISABLE_AL
    if(!alutInit(0, 0))
      throw Sound_Init_Failure();

    // Check for Vorbis extension functionality; seems to always fail :(
#ifdef _MACOSX
    alIsExtensionPresent(const_cast<ALubyte *>(reinterpret_cast<const ALubyte *>("AL_EXT_vorbis")));
#else
    alIsExtensionPresent("AL_EXT_vorbis");
#endif
    //cerr << "Valid Audio Formats: " << alutGetMIMETypes(ALUT_LOADER_BUFFER) << endl;

    ALfloat listener_position[] = {0.0f, 0.0f, 0.0f};
    ALfloat listener_velocity[] = {0.0f, 0.0f, 0.0f};
    ALfloat listener_forward_and_up[] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f};

    alListenerfv(AL_POSITION, listener_position);
    alListenerfv(AL_VELOCITY, listener_velocity);
    alListenerfv(AL_ORIENTATION, listener_forward_and_up);
#endif
  }
Beispiel #2
0
  Net::Net() {
    // Ensure Core is initialized
    get_Core();

    if(SDLNet_Init())
      throw Net_Init_Failure();
  }
Beispiel #3
0
  Thread::~Thread() {
    Core::remove_pre_uninit(&m_uninit);

    if(m_impl) {
      SDL_WaitThread(m_impl, m_status);

      get_Core().remove_pre_uninit(&m_uninit);
    }
  }
Beispiel #4
0
  Joysticks::Joysticks()
    : m_joystick(0)
  {
    Core::remove_post_reinit(&g_reinit);

    /** Initialize SDL itself **/
    Core &cr = get_Core();

    /** Initialize Joysticks **/
    init();

    cr.lend_pre_uninit(&g_uninit);
    cr.lend_post_reinit(&g_reinit);
  }
Beispiel #5
0
  Thread::Thread(Repeatable_Task &task)
    : m_impl(0),
    m_status(&task.status),
#ifdef _WINDOWS
#pragma warning( push )
#pragma warning( disable : 4355 )
#endif
    m_uninit(*this)
#ifdef _WINDOWS
#pragma warning( pop )
#endif
  {
    // Ensure Core is initialized
    Core &cr = get_Core();

    m_impl = SDL_CreateThread(run_repeatable_task, &task);

    cr.lend_pre_uninit(&m_uninit);
  }
Beispiel #6
0
  Thread::Thread(int (SDLCALL *fn)(void *), void *data, int * const status)
    : m_impl(0),
    m_status(status),
#ifdef _WINDOWS
#pragma warning( push )
#pragma warning( disable : 4355 )
#endif
    m_uninit(*this)
#ifdef _WINDOWS
#pragma warning( pop )
#endif
  {
    // Ensure Core is initialized
    Core &cr = get_Core();
    
    m_impl = SDL_CreateThread(fn, data);
    
    cr.lend_pre_uninit(&m_uninit);
  }
Beispiel #7
0
#else
    :
#if SDL_VERSION_ATLEAST(1,3,0)
    m_window(0),
#else
    m_display_surface(0),
#endif
    m_icon_surface(0)
#endif
  {
    if(!g_enabled)
      throw Window_Init_Failure();

    Core::remove_post_reinit(&g_reinit);

    Core &cr = get_Core();

#ifndef ANDROID
    if(SDL_InitSubSystem(SDL_INIT_VIDEO) == -1)
      throw Window_Init_Failure();

    Core::print_error();

    // Initialize Window Mode Listing
#if SDL_VERSION_ATLEAST(1,3,0)
    const int num_modes = SDL_GetNumDisplayModes(0);
    for(int i = 0; i != num_modes; ++i) {
      SDL_DisplayMode mode;
      SDL_GetDisplayMode(0, i, &mode);
      if(m_modes.empty() || m_modes.rbegin()->x != mode.w || m_modes.rbegin()->y != mode.h)
        m_modes.push_back(Point2i(mode.w, mode.h));