1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
/*
$Id: setupsound_unix.cpp,v 1.7 2002/01/22 10:14:04 mbn Exp $
------------------------------------------------------------------------
ClanLib, the platform independent game SDK.
This library is distributed under the GNU LIBRARY GENERAL PUBLIC LICENSE
version 2. See COPYING for details.
For a total list of contributers see CREDITS.
------------------------------------------------------------------------
*/
#include "Sound/Sound/ClanSound/cdaudio_linux.h"
#include "Sound/System/Generic/setupsound_generic.h"
#include "API/Sound/setupsound.h"
#include "API/Sound/sound.h"
#include "Sound/Sound/ClanSound/soundcard_clan.h"
static int sound_ref_count = 0;
static class CL_SoundCard *cl_current_soundcard = 0;
void CL_SetupSound::init(bool register_resources_only)
{
sound_ref_count++;
if (sound_ref_count > 1) return;
CL_SetupSound_Generic::init();
if (register_resources_only) return;
// todo: new clansound here.
CL_Sound::cards.push_back(new CL_SoundCard_ClanSound);
if (CL_Sound::cards.size() > 0) cl_current_soundcard = CL_Sound::cards[0];
}
void CL_SetupSound::deinit()
{
sound_ref_count--;
if (sound_ref_count > 0) return;
int num_cards = CL_Sound::cards.size();
for (int i=0; i<num_cards; i++) delete CL_Sound::cards[i];
CL_Sound::cards.clear();
// CL_Sound::num_cards = 0;
CL_SetupSound_Generic::deinit();
}
void CL_SetupCDAudio::init(bool register_resources_only)
{
if (register_resources_only) return;
CL_CDDrive_Linux::init_cdaudio();
}
void CL_SetupCDAudio::deinit()
{
// Do nothing
return;
}
void CL_Sound::select_card(CL_SoundCard *card)
{
cl_current_soundcard = card;
}
/*
CL_SoundCard *CL_Sound::get_current_card()
{
cl_assert(cl_current_soundcard != NULL);
return cl_current_soundcard;
}
*/
|