ROOT logo
// $Id: AlContext.cxx 2315 2009-12-30 12:14:32Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

//__________________________________________________________________________
// AlContext
//
//

#include "AlContext.h"
#include "AlContext.c7"

#include <AL/alut.h>

ClassImp(AlContext);

/**************************************************************************/

void AlContext::_init()
{
  mDevice  = 0;
  mContext = 0;
}

/**************************************************************************/

void AlContext::Open()
{
  static const Exc_t _eh("AlContext::Open ");

  if (mDevice != 0) {
    ISerr(_eh + "device already opened.");
    return;
  }

  mDevice = alcOpenDevice(0);
  if (mDevice == 0)
    throw _eh + "can't open device.";

  mContext = alcCreateContext(mDevice, 0);
  if (mContext == 0) {
    alcCloseDevice(mDevice);
    mDevice = 0;
    throw _eh + "can't create context.";
  }
  alcMakeContextCurrent(mContext);
}

void AlContext::Close()
{
  static const Exc_t _eh("AlContext::Close ");

  if (mContext == 0) return;

  if (alcGetCurrentContext() == mContext)
    alcMakeContextCurrent(0);
  alcDestroyContext(mContext); mContext = 0;
  alcCloseDevice(mDevice);     mDevice  = 0;
}

//==============================================================================
//==============================================================================

// For now, user init is here ... when another piece will need initialization
// it would better be placed somwhere else.

void libAudio1_GLED_user_init()
{
  alutInitWithoutContext(0, 0);
}

void *Audio1_GLED_user_init = (void*)libAudio1_GLED_user_init;

//------------------------------------------------------------------------------

void libAudio1_GLED_user_shutdown()
{
  if ( ! alutExit())
    ISwarn("libAudio1_GLED_user_shutdown alutExit() failed.");
}

void *Audio1_GLED_user_shutdown = (void*)libAudio1_GLED_user_shutdown;
 AlContext.cxx:1
 AlContext.cxx:2
 AlContext.cxx:3
 AlContext.cxx:4
 AlContext.cxx:5
 AlContext.cxx:6
 AlContext.cxx:7
 AlContext.cxx:8
 AlContext.cxx:9
 AlContext.cxx:10
 AlContext.cxx:11
 AlContext.cxx:12
 AlContext.cxx:13
 AlContext.cxx:14
 AlContext.cxx:15
 AlContext.cxx:16
 AlContext.cxx:17
 AlContext.cxx:18
 AlContext.cxx:19
 AlContext.cxx:20
 AlContext.cxx:21
 AlContext.cxx:22
 AlContext.cxx:23
 AlContext.cxx:24
 AlContext.cxx:25
 AlContext.cxx:26
 AlContext.cxx:27
 AlContext.cxx:28
 AlContext.cxx:29
 AlContext.cxx:30
 AlContext.cxx:31
 AlContext.cxx:32
 AlContext.cxx:33
 AlContext.cxx:34
 AlContext.cxx:35
 AlContext.cxx:36
 AlContext.cxx:37
 AlContext.cxx:38
 AlContext.cxx:39
 AlContext.cxx:40
 AlContext.cxx:41
 AlContext.cxx:42
 AlContext.cxx:43
 AlContext.cxx:44
 AlContext.cxx:45
 AlContext.cxx:46
 AlContext.cxx:47
 AlContext.cxx:48
 AlContext.cxx:49
 AlContext.cxx:50
 AlContext.cxx:51
 AlContext.cxx:52
 AlContext.cxx:53
 AlContext.cxx:54
 AlContext.cxx:55
 AlContext.cxx:56
 AlContext.cxx:57
 AlContext.cxx:58
 AlContext.cxx:59
 AlContext.cxx:60
 AlContext.cxx:61
 AlContext.cxx:62
 AlContext.cxx:63
 AlContext.cxx:64
 AlContext.cxx:65
 AlContext.cxx:66
 AlContext.cxx:67
 AlContext.cxx:68
 AlContext.cxx:69
 AlContext.cxx:70
 AlContext.cxx:71
 AlContext.cxx:72
 AlContext.cxx:73
 AlContext.cxx:74
 AlContext.cxx:75
 AlContext.cxx:76
 AlContext.cxx:77
 AlContext.cxx:78
 AlContext.cxx:79
 AlContext.cxx:80
 AlContext.cxx:81
 AlContext.cxx:82
 AlContext.cxx:83
 AlContext.cxx:84