example02.cpp 2.03 KB
Newer Older
jpbl's avatar
jpbl committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
 *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
 *  Author: Jean-Philippe Barrette-LaPierre
 *             <jean-philippe.barrette-lapierre@savoirfairelinux.com>
 *                                                                              
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *                                                                              
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *                                                                              
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <iostream>
#include <list>
#include <string>

jpbl's avatar
jpbl committed
25
26
27
28
#include <AL/al.h>
#include <AL/alc.h>
#include <AL/alut.h>

jpbl's avatar
jpbl committed
29
30
31
32
33
34
#include "SFLAudio.hpp"

using namespace SFLAudio;

int main(int, char* []) 
{
jpbl's avatar
jpbl committed
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
  ALenum format;
  ALvoid *data;
  ALsizei size;
  ALsizei freq;
  ALboolean loop;

  AudioLayer *layer = SFLAudio::AudioManager::instance().currentLayer();
  Device *device = layer->openDevice();
  Context *context = device->createContext();

  // Load test.wav
  alutLoadWAVFile("test.wav",&format,&data,&size,&freq,&loop);
  ALenum error = alGetError();
  if (error != AL_NO_ERROR) {
    std::cerr << "OpenAL: loadWAVFile : " << alGetString(error);
    return 1;
jpbl's avatar
jpbl committed
51
  }
jpbl's avatar
jpbl committed
52
53
54
55
56
57

  Source *source = context->createSource(format, freq);
  source->play(data, size);

  // Unload test.wav
  alutUnloadWAV(format, data, size, freq);
jpbl's avatar
jpbl committed
58
  std::cin.get();
jpbl's avatar
jpbl committed
59
  error = alGetError();
jpbl's avatar
jpbl committed
60

jpbl's avatar
jpbl committed
61
62
63
64
65
  if (error != AL_NO_ERROR) {
    std::cerr << "OpenAL: unloadWAV : " << alGetString(error);
  }


jpbl's avatar
jpbl committed
66
}