mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
I hope this works
This commit is contained in:
parent
fab7e6fde3
commit
b7f596a410
@ -270,17 +270,23 @@ AudioTraits::PlayerClass* LinuxSample::get_player(void) const {
|
|||||||
return LinuxSamplePlayer::get_instance();
|
return LinuxSamplePlayer::get_instance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
AudioTraits::DeleteSoundFunc* LinuxSample::get_destroy(void) const {
|
AudioTraits::DeleteSoundFunc* LinuxSample::get_destroy(void) const {
|
||||||
return LinuxSample::destroy;
|
return LinuxSample::destroy;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
AudioTraits::DeletePlayingFunc* LinuxSample::get_delstate(void) const {
|
AudioTraits::DeletePlayingFunc* LinuxSample::get_delstate(void) const {
|
||||||
return LinuxSamplePlaying::destroy;
|
return LinuxSamplePlaying::destroy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
void LinuxSample::destroy(AudioTraits::SoundClass* sound) {
|
void LinuxSample::destroy(AudioTraits::SoundClass* sound) {
|
||||||
delete sound;
|
delete sound;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
LinuxSample* LinuxSample::load_raw(byte* data, unsigned long size) {
|
LinuxSample* LinuxSample::load_raw(byte* data, unsigned long size) {
|
||||||
LinuxSample* ret = new LinuxSample(data, size);
|
LinuxSample* ret = new LinuxSample(data, size);
|
||||||
@ -302,17 +308,23 @@ AudioTraits::PlayerClass* LinuxMusic::get_player(void) const {
|
|||||||
return LinuxMusicPlayer::get_instance();
|
return LinuxMusicPlayer::get_instance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
AudioTraits::DeleteSoundFunc* LinuxMusic::get_destroy(void) const {
|
AudioTraits::DeleteSoundFunc* LinuxMusic::get_destroy(void) const {
|
||||||
return LinuxMusic::destroy;
|
return LinuxMusic::destroy;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
AudioTraits::DeletePlayingFunc* LinuxMusic::get_delstate(void) const {
|
AudioTraits::DeletePlayingFunc* LinuxMusic::get_delstate(void) const {
|
||||||
return LinuxMusicPlaying::destroy;
|
return LinuxMusicPlaying::destroy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
void LinuxMusic::destroy(AudioTraits::SoundClass* music) {
|
void LinuxMusic::destroy(AudioTraits::SoundClass* music) {
|
||||||
delete music;
|
delete music;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
LinuxSamplePlaying::~LinuxSamplePlaying(void) {
|
LinuxSamplePlaying::~LinuxSamplePlaying(void) {
|
||||||
}
|
}
|
||||||
|
@ -70,9 +70,10 @@ public:
|
|||||||
virtual float length(void) const;
|
virtual float length(void) const;
|
||||||
virtual AudioTraits::PlayingClass* get_state(void) const;
|
virtual AudioTraits::PlayingClass* get_state(void) const;
|
||||||
virtual AudioTraits::PlayerClass* get_player(void) const;
|
virtual AudioTraits::PlayerClass* get_player(void) const;
|
||||||
virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
// REFCOUNT
|
||||||
|
// virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
||||||
|
// static void destroy(AudioTraits::SoundClass*);
|
||||||
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
||||||
static void destroy(AudioTraits::SoundClass*);
|
|
||||||
public:
|
public:
|
||||||
// used by the loader
|
// used by the loader
|
||||||
static LinuxSample* load_raw(byte*, unsigned long);
|
static LinuxSample* load_raw(byte*, unsigned long);
|
||||||
@ -89,9 +90,10 @@ public:
|
|||||||
virtual float length(void) const;
|
virtual float length(void) const;
|
||||||
virtual AudioTraits::PlayingClass* get_state(void) const;
|
virtual AudioTraits::PlayingClass* get_state(void) const;
|
||||||
virtual AudioTraits::PlayerClass* get_player(void) const;
|
virtual AudioTraits::PlayerClass* get_player(void) const;
|
||||||
virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
// REFCOUNT
|
||||||
|
// virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
||||||
|
// static void destroy(AudioTraits::SoundClass*);
|
||||||
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
||||||
static void destroy(AudioTraits::SoundClass*);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class EXPCL_PANDA LinuxSamplePlaying : public AudioTraits::PlayingClass {
|
class EXPCL_PANDA LinuxSamplePlaying : public AudioTraits::PlayingClass {
|
||||||
|
@ -145,9 +145,12 @@ AudioTraits::PlayerClass* MikModSample::get_player(void) const {
|
|||||||
return MikModSamplePlayer::get_instance();
|
return MikModSamplePlayer::get_instance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
AudioTraits::DeleteSoundFunc* MikModSample::get_destroy(void) const {
|
AudioTraits::DeleteSoundFunc* MikModSample::get_destroy(void) const {
|
||||||
return MikModSample::destroy;
|
return MikModSample::destroy;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
AudioTraits::DeletePlayingFunc* MikModSample::get_delstate(void) const {
|
AudioTraits::DeletePlayingFunc* MikModSample::get_delstate(void) const {
|
||||||
return MikModSamplePlaying::destroy;
|
return MikModSamplePlaying::destroy;
|
||||||
@ -164,9 +167,12 @@ MikModSample* MikModSample::load_wav(Filename filename) {
|
|||||||
return new MikModSample(sample);
|
return new MikModSample(sample);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
void MikModSample::destroy(AudioTraits::SoundClass* sample) {
|
void MikModSample::destroy(AudioTraits::SoundClass* sample) {
|
||||||
delete sample;
|
delete sample;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
SAMPLE* MikModSample::get_sample(void) {
|
SAMPLE* MikModSample::get_sample(void) {
|
||||||
return _sample;
|
return _sample;
|
||||||
@ -194,17 +200,23 @@ AudioTraits::PlayerClass* MikModMusic::get_player(void) const {
|
|||||||
return MikModFmsynthPlayer::get_instance();
|
return MikModFmsynthPlayer::get_instance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
AudioTraits::DeleteSoundFunc* MikModMusic::get_destroy(void) const {
|
AudioTraits::DeleteSoundFunc* MikModMusic::get_destroy(void) const {
|
||||||
return MikModMusic::destroy;
|
return MikModMusic::destroy;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
AudioTraits::DeletePlayingFunc* MikModMusic::get_delstate(void) const {
|
AudioTraits::DeletePlayingFunc* MikModMusic::get_delstate(void) const {
|
||||||
return MikModMusicPlaying::destroy;
|
return MikModMusicPlaying::destroy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
void MikModMusic::destroy(AudioTraits::SoundClass* music) {
|
void MikModMusic::destroy(AudioTraits::SoundClass* music) {
|
||||||
delete music;
|
delete music;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
MikModMidi::MikModMidi(void) {
|
MikModMidi::MikModMidi(void) {
|
||||||
}
|
}
|
||||||
@ -229,17 +241,23 @@ AudioTraits::PlayerClass* MikModMidi::get_player(void) const {
|
|||||||
return MikModMidiPlayer::get_instance();
|
return MikModMidiPlayer::get_instance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
AudioTraits::DeleteSoundFunc* MikModMidi::get_destroy(void) const {
|
AudioTraits::DeleteSoundFunc* MikModMidi::get_destroy(void) const {
|
||||||
return MikModMidi::destroy;
|
return MikModMidi::destroy;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
AudioTraits::DeletePlayingFunc* MikModMidi::get_delstate(void) const {
|
AudioTraits::DeletePlayingFunc* MikModMidi::get_delstate(void) const {
|
||||||
return MikModMidiPlaying::destroy;
|
return MikModMidiPlaying::destroy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
void MikModMidi::destroy(AudioTraits::SoundClass* music) {
|
void MikModMidi::destroy(AudioTraits::SoundClass* music) {
|
||||||
delete music;
|
delete music;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
MikModSamplePlaying::MikModSamplePlaying(AudioTraits::SoundClass* s)
|
MikModSamplePlaying::MikModSamplePlaying(AudioTraits::SoundClass* s)
|
||||||
: AudioTraits::PlayingClass(s) {
|
: AudioTraits::PlayingClass(s) {
|
||||||
|
@ -27,12 +27,14 @@ public:
|
|||||||
virtual float length(void) const;
|
virtual float length(void) const;
|
||||||
virtual AudioTraits::PlayingClass* get_state(void) const;
|
virtual AudioTraits::PlayingClass* get_state(void) const;
|
||||||
virtual AudioTraits::PlayerClass* get_player(void) const;
|
virtual AudioTraits::PlayerClass* get_player(void) const;
|
||||||
virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
// REFCOUNT
|
||||||
|
// virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
||||||
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
||||||
public:
|
public:
|
||||||
// used by the readers
|
// used by the readers
|
||||||
static MikModSample* load_wav(Filename);
|
static MikModSample* load_wav(Filename);
|
||||||
static void destroy(AudioTraits::SoundClass*);
|
// REFCOUNT
|
||||||
|
// static void destroy(AudioTraits::SoundClass*);
|
||||||
// used by the players
|
// used by the players
|
||||||
virtual SAMPLE* get_sample(void);
|
virtual SAMPLE* get_sample(void);
|
||||||
virtual int get_freq(void);
|
virtual int get_freq(void);
|
||||||
@ -48,9 +50,10 @@ public:
|
|||||||
virtual float length(void) const;
|
virtual float length(void) const;
|
||||||
virtual AudioTraits::PlayingClass* get_state(void) const;
|
virtual AudioTraits::PlayingClass* get_state(void) const;
|
||||||
virtual AudioTraits::PlayerClass* get_player(void) const;
|
virtual AudioTraits::PlayerClass* get_player(void) const;
|
||||||
virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
// REFCOUNT
|
||||||
|
// virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
||||||
|
// static void destroy(AudioTraits::SoundClass*);
|
||||||
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
||||||
static void destroy(AudioTraits::SoundClass*);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class EXPCL_PANDA MikModMidi : public AudioTraits::SoundClass {
|
class EXPCL_PANDA MikModMidi : public AudioTraits::SoundClass {
|
||||||
@ -62,9 +65,10 @@ public:
|
|||||||
virtual float length(void) const;
|
virtual float length(void) const;
|
||||||
virtual AudioTraits::PlayingClass* get_state(void) const;
|
virtual AudioTraits::PlayingClass* get_state(void) const;
|
||||||
virtual AudioTraits::PlayerClass* get_player(void) const;
|
virtual AudioTraits::PlayerClass* get_player(void) const;
|
||||||
virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
// REFCOUNT
|
||||||
|
// virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
||||||
|
// static void destroy(AudioTraits::SoundClass*);
|
||||||
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
||||||
static void destroy(AudioTraits::SoundClass*);
|
|
||||||
public:
|
public:
|
||||||
// used by the readers
|
// used by the readers
|
||||||
static MikModMidi* load_midi(Filename);
|
static MikModMidi* load_midi(Filename);
|
||||||
|
@ -41,17 +41,23 @@ AudioTraits::PlayerClass* NullSound::get_player(void) const {
|
|||||||
return new NullPlayer();
|
return new NullPlayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
AudioTraits::DeleteSoundFunc* NullSound::get_destroy(void) const {
|
AudioTraits::DeleteSoundFunc* NullSound::get_destroy(void) const {
|
||||||
return NullSound::destroy;
|
return NullSound::destroy;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
AudioTraits::DeletePlayingFunc* NullSound::get_delstate(void) const {
|
AudioTraits::DeletePlayingFunc* NullSound::get_delstate(void) const {
|
||||||
return NullPlaying::destroy;
|
return NullPlaying::destroy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
void NullSound::destroy(AudioTraits::SoundClass* sound) {
|
void NullSound::destroy(AudioTraits::SoundClass* sound) {
|
||||||
delete sound;
|
delete sound;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
NullPlaying::~NullPlaying(void) {
|
NullPlaying::~NullPlaying(void) {
|
||||||
}
|
}
|
||||||
|
@ -21,9 +21,10 @@ public:
|
|||||||
virtual float length(void) const;
|
virtual float length(void) const;
|
||||||
virtual AudioTraits::PlayingClass* get_state(void) const;
|
virtual AudioTraits::PlayingClass* get_state(void) const;
|
||||||
virtual AudioTraits::PlayerClass* get_player(void) const;
|
virtual AudioTraits::PlayerClass* get_player(void) const;
|
||||||
virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
// REFCOUNT
|
||||||
|
// virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
||||||
|
// static void destroy(AudioTraits::SoundClass*);
|
||||||
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
||||||
static void destroy(AudioTraits::SoundClass*);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class EXPCL_PANDA NullPlaying : public AudioTraits::PlayingClass {
|
class EXPCL_PANDA NullPlaying : public AudioTraits::PlayingClass {
|
||||||
|
@ -67,7 +67,7 @@ AudioSound* AudioPool::ns_load_sound(Filename filename) {
|
|||||||
si = _sounds.find(filename);
|
si = _sounds.find(filename);
|
||||||
if (si != _sounds.end()) {
|
if (si != _sounds.end()) {
|
||||||
// this sound was previously loaded
|
// this sound was previously loaded
|
||||||
AudioTraits::SoundClass* sc = (*si).second;
|
PT(AudioTraits::SoundClass) sc = (*si).second;
|
||||||
if (audio_cat->is_debug())
|
if (audio_cat->is_debug())
|
||||||
audio_cat->debug() << "sound is already loaded (0x" << (void*)sc
|
audio_cat->debug() << "sound is already loaded (0x" << (void*)sc
|
||||||
<< ")" << endl;
|
<< ")" << endl;
|
||||||
@ -91,7 +91,7 @@ AudioSound* AudioPool::ns_load_sound(Filename filename) {
|
|||||||
<< "'" << endl;
|
<< "'" << endl;
|
||||||
return (AudioSound*)0L;
|
return (AudioSound*)0L;
|
||||||
}
|
}
|
||||||
AudioTraits::SoundClass* sound = (*((*sli).second))(filename);
|
PT(AudioTraits::SoundClass) sound = (*((*sli).second))(filename);
|
||||||
if (sound == (AudioTraits::SoundClass*)0L) {
|
if (sound == (AudioTraits::SoundClass*)0L) {
|
||||||
audio_cat->error() << "could not load '" << filename << "'" << endl;
|
audio_cat->error() << "could not load '" << filename << "'" << endl;
|
||||||
return (AudioSound*)0L;
|
return (AudioSound*)0L;
|
||||||
@ -116,8 +116,10 @@ void AudioPool::ns_release_sound(AudioSound* sound) {
|
|||||||
SoundMap::iterator si;
|
SoundMap::iterator si;
|
||||||
si = _sounds.find(filename);
|
si = _sounds.find(filename);
|
||||||
if (si != _sounds.end() && (*si).second == sound->get_sound()) {
|
if (si != _sounds.end() && (*si).second == sound->get_sound()) {
|
||||||
AudioTraits::SoundClass* sc = (*si).second;
|
// REFCOUNT
|
||||||
(*(sc->get_destroy()))(sc);
|
// don't do this with refcounting
|
||||||
|
// AudioTraits::SoundClass* sc = (*si).second;
|
||||||
|
// (*(sc->get_destroy()))(sc);
|
||||||
_sounds.erase(si);
|
_sounds.erase(si);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -129,8 +131,10 @@ void AudioPool::ns_release_sound(AudioSound* sound) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void AudioPool::ns_release_all_sounds(void) {
|
void AudioPool::ns_release_all_sounds(void) {
|
||||||
for (SoundMap::iterator i=_sounds.begin(); i!=_sounds.end(); ++i) {
|
for (SoundMap::iterator i=_sounds.begin(); i!=_sounds.end(); ++i) {
|
||||||
AudioTraits::SoundClass* sc = (*i).second;
|
// REFCOUNT
|
||||||
(*(sc->get_destroy()))(sc);
|
// don't do this with refcounting
|
||||||
|
// AudioTraits::SoundClass* sc = (*i).second;
|
||||||
|
// (*(sc->get_destroy()))(sc);
|
||||||
}
|
}
|
||||||
_sounds.clear();
|
_sounds.clear();
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ private:
|
|||||||
static AudioPool* get_ptr(void);
|
static AudioPool* get_ptr(void);
|
||||||
|
|
||||||
static AudioPool *_global_ptr;
|
static AudioPool *_global_ptr;
|
||||||
typedef map<string, AudioTraits::SoundClass* > SoundMap;
|
typedef map<string, PT(AudioTraits::SoundClass) > SoundMap;
|
||||||
SoundMap _sounds;
|
SoundMap _sounds;
|
||||||
public:
|
public:
|
||||||
typedef AudioTraits::SoundClass* SoundLoadFunc(Filename);
|
typedef AudioTraits::SoundClass* SoundLoadFunc(Filename);
|
||||||
|
@ -10,8 +10,10 @@
|
|||||||
/*
|
/*
|
||||||
#include "typedReferenceCount.h"
|
#include "typedReferenceCount.h"
|
||||||
*/
|
*/
|
||||||
#include "typeHandle.h"
|
#include <typeHandle.h>
|
||||||
#include "namable.h"
|
#include <namable.h>
|
||||||
|
#include <pointerTo.h>
|
||||||
|
|
||||||
|
|
||||||
class AudioPool;
|
class AudioPool;
|
||||||
class AudioManager;
|
class AudioManager;
|
||||||
@ -21,7 +23,7 @@ class EXPCL_PANDA AudioSound : public TypedReferenceCount, public Namable {
|
|||||||
*/
|
*/
|
||||||
class EXPCL_PANDA AudioSound : public TypedObject, public Namable {
|
class EXPCL_PANDA AudioSound : public TypedObject, public Namable {
|
||||||
private:
|
private:
|
||||||
AudioTraits::SoundClass *_sound;
|
PT(AudioTraits::SoundClass) _sound;
|
||||||
AudioTraits::PlayingClass *_state;
|
AudioTraits::PlayingClass *_state;
|
||||||
AudioTraits::PlayerClass *_player;
|
AudioTraits::PlayerClass *_player;
|
||||||
AudioTraits::DeletePlayingFunc *_delstate;
|
AudioTraits::DeletePlayingFunc *_delstate;
|
||||||
|
@ -24,11 +24,14 @@ AudioTraits::PlayerClass* AudioTraits::SoundClass::get_player(void) const {
|
|||||||
return (AudioTraits::PlayerClass*)0L;
|
return (AudioTraits::PlayerClass*)0L;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
AudioTraits::DeleteSoundFunc*
|
AudioTraits::DeleteSoundFunc*
|
||||||
AudioTraits::SoundClass::get_destroy(void) const {
|
AudioTraits::SoundClass::get_destroy(void) const {
|
||||||
audio_cat->error() << "In abstract SoundClass::get_destroy!" << endl;
|
audio_cat->error() << "In abstract SoundClass::get_destroy!" << endl;
|
||||||
return (AudioTraits::DeleteSoundFunc*)0L;
|
return (AudioTraits::DeleteSoundFunc*)0L;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
AudioTraits::DeletePlayingFunc*
|
AudioTraits::DeletePlayingFunc*
|
||||||
AudioTraits::SoundClass::get_delstate(void) const {
|
AudioTraits::SoundClass::get_delstate(void) const {
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#define __AUDIO_TRAIT_H__
|
#define __AUDIO_TRAIT_H__
|
||||||
|
|
||||||
#include <pandabase.h>
|
#include <pandabase.h>
|
||||||
|
#include <referenceCount.h>
|
||||||
|
|
||||||
class EXPCL_PANDA AudioTraits {
|
class EXPCL_PANDA AudioTraits {
|
||||||
public:
|
public:
|
||||||
@ -17,7 +18,7 @@ public:
|
|||||||
typedef void DeleteSoundFunc(SoundClass*);
|
typedef void DeleteSoundFunc(SoundClass*);
|
||||||
typedef void DeletePlayingFunc(PlayingClass*);
|
typedef void DeletePlayingFunc(PlayingClass*);
|
||||||
|
|
||||||
class EXPCL_PANDA SoundClass {
|
class EXPCL_PANDA SoundClass : public ReferenceCount {
|
||||||
public:
|
public:
|
||||||
SoundClass(void) {}
|
SoundClass(void) {}
|
||||||
virtual ~SoundClass(void);
|
virtual ~SoundClass(void);
|
||||||
@ -25,7 +26,8 @@ public:
|
|||||||
virtual float length(void) const = 0;
|
virtual float length(void) const = 0;
|
||||||
virtual PlayingClass* get_state(void) const = 0;
|
virtual PlayingClass* get_state(void) const = 0;
|
||||||
virtual PlayerClass* get_player(void) const = 0;
|
virtual PlayerClass* get_player(void) const = 0;
|
||||||
virtual DeleteSoundFunc* get_destroy(void) const = 0;
|
// REFCOUNT
|
||||||
|
// virtual DeleteSoundFunc* get_destroy(void) const = 0;
|
||||||
virtual DeletePlayingFunc* get_delstate(void) const = 0;
|
virtual DeletePlayingFunc* get_delstate(void) const = 0;
|
||||||
};
|
};
|
||||||
class EXPCL_PANDA PlayingClass {
|
class EXPCL_PANDA PlayingClass {
|
||||||
|
@ -204,12 +204,15 @@ AudioTraits::PlayerClass* WinSample::get_player(void) const {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
AudioTraits::DeleteSoundFunc* WinSample::get_destroy(void) const {
|
AudioTraits::DeleteSoundFunc* WinSample::get_destroy(void) const {
|
||||||
if (audio_cat->is_debug())
|
if (audio_cat->is_debug())
|
||||||
audio_cat->debug() << "winsample get_destroy returning 0x"
|
audio_cat->debug() << "winsample get_destroy returning 0x"
|
||||||
<< (void*)(WinSample::destroy) << endl;
|
<< (void*)(WinSample::destroy) << endl;
|
||||||
return WinSample::destroy;
|
return WinSample::destroy;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
AudioTraits::DeletePlayingFunc* WinSample::get_delstate(void) const {
|
AudioTraits::DeletePlayingFunc* WinSample::get_delstate(void) const {
|
||||||
if (audio_cat->is_debug())
|
if (audio_cat->is_debug())
|
||||||
@ -418,12 +421,15 @@ WinSample* WinSample::load_raw(unsigned char* data, unsigned long size) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
void WinSample::destroy(AudioTraits::SoundClass* sample) {
|
void WinSample::destroy(AudioTraits::SoundClass* sample) {
|
||||||
if (audio_cat->is_debug())
|
if (audio_cat->is_debug())
|
||||||
audio_cat->debug() << "winsample destroy deleting 0x" << (void*)sample
|
audio_cat->debug() << "winsample destroy deleting 0x" << (void*)sample
|
||||||
<< endl;
|
<< endl;
|
||||||
delete sample;
|
delete sample;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
WinMusic::~WinMusic(void) {
|
WinMusic::~WinMusic(void) {
|
||||||
// AudioManager::stop(this);
|
// AudioManager::stop(this);
|
||||||
@ -554,12 +560,15 @@ AudioTraits::PlayerClass* WinMusic::get_player(void) const {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
AudioTraits::DeleteSoundFunc* WinMusic::get_destroy(void) const {
|
AudioTraits::DeleteSoundFunc* WinMusic::get_destroy(void) const {
|
||||||
if (audio_cat->is_debug())
|
if (audio_cat->is_debug())
|
||||||
audio_cat->debug() << "winmusic get_destroy returning 0x"
|
audio_cat->debug() << "winmusic get_destroy returning 0x"
|
||||||
<< (void*)(WinMusic::destroy) << endl;
|
<< (void*)(WinMusic::destroy) << endl;
|
||||||
return WinMusic::destroy;
|
return WinMusic::destroy;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
AudioTraits::DeletePlayingFunc* WinMusic::get_delstate(void) const {
|
AudioTraits::DeletePlayingFunc* WinMusic::get_delstate(void) const {
|
||||||
if (audio_cat->is_debug())
|
if (audio_cat->is_debug())
|
||||||
@ -568,11 +577,14 @@ AudioTraits::DeletePlayingFunc* WinMusic::get_delstate(void) const {
|
|||||||
return WinMusicPlaying::destroy;
|
return WinMusicPlaying::destroy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// REFCOUNT
|
||||||
|
/*
|
||||||
void WinMusic::destroy(AudioTraits::SoundClass* music) {
|
void WinMusic::destroy(AudioTraits::SoundClass* music) {
|
||||||
if (audio_cat->is_debug())
|
if (audio_cat->is_debug())
|
||||||
audio_cat->debug() << "winmusic destroy got 0x" << (void*)music << endl;
|
audio_cat->debug() << "winmusic destroy got 0x" << (void*)music << endl;
|
||||||
delete music;
|
delete music;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
WinMusic* WinMusic::load_midi(Filename filename) {
|
WinMusic* WinMusic::load_midi(Filename filename) {
|
||||||
if (audio_cat->is_debug())
|
if (audio_cat->is_debug())
|
||||||
|
@ -30,12 +30,14 @@ public:
|
|||||||
virtual float length(void) const;
|
virtual float length(void) const;
|
||||||
virtual AudioTraits::PlayingClass* get_state(void) const;
|
virtual AudioTraits::PlayingClass* get_state(void) const;
|
||||||
virtual AudioTraits::PlayerClass* get_player(void) const;
|
virtual AudioTraits::PlayerClass* get_player(void) const;
|
||||||
virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
// REFCOUNT
|
||||||
|
// virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
||||||
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
||||||
public:
|
public:
|
||||||
static WinSample* load_wav(Filename);
|
static WinSample* load_wav(Filename);
|
||||||
static WinSample* load_raw(unsigned char*, unsigned long);
|
static WinSample* load_raw(unsigned char*, unsigned long);
|
||||||
static void destroy(AudioTraits::SoundClass*);
|
// REFCOUNT
|
||||||
|
// static void destroy(AudioTraits::SoundClass*);
|
||||||
};
|
};
|
||||||
|
|
||||||
class EXPCL_PANDA WinMusic : public AudioTraits::SoundClass {
|
class EXPCL_PANDA WinMusic : public AudioTraits::SoundClass {
|
||||||
@ -55,9 +57,10 @@ public:
|
|||||||
virtual float length(void) const;
|
virtual float length(void) const;
|
||||||
virtual AudioTraits::PlayingClass* get_state(void) const;
|
virtual AudioTraits::PlayingClass* get_state(void) const;
|
||||||
virtual AudioTraits::PlayerClass* get_player(void) const;
|
virtual AudioTraits::PlayerClass* get_player(void) const;
|
||||||
virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
// REFCOUNT
|
||||||
|
// virtual AudioTraits::DeleteSoundFunc* get_destroy(void) const;
|
||||||
|
// static void destroy(AudioTraits::SoundClass*);
|
||||||
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
virtual AudioTraits::DeletePlayingFunc* get_delstate(void) const;
|
||||||
static void destroy(AudioTraits::SoundClass*);
|
|
||||||
// these are used by the loaders
|
// these are used by the loaders
|
||||||
static WinMusic* load_midi(Filename);
|
static WinMusic* load_midi(Filename);
|
||||||
// these are used by the players
|
// these are used by the players
|
||||||
|
Loading…
x
Reference in New Issue
Block a user