From f7209145c24e2075ea2be2d77626162ad1e28c71 Mon Sep 17 00:00:00 2001 From: Cary Sandvig Date: Tue, 17 Oct 2000 21:12:04 +0000 Subject: [PATCH] new top level interface to noises --- panda/src/audio/audio_sound.h | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 panda/src/audio/audio_sound.h diff --git a/panda/src/audio/audio_sound.h b/panda/src/audio/audio_sound.h new file mode 100644 index 0000000000..250c995906 --- /dev/null +++ b/panda/src/audio/audio_sound.h @@ -0,0 +1,65 @@ +// Filename: audio_sound.h +// Created by: cary (17Oct00) +// +//////////////////////////////////////////////////////////////////// + +#ifndef __AUDIO_SOUND_H__ +#define __AUDIO_SOUND_H__ + +#include "audio_trait.h" +#include "typedReferenceCount.h" +#include "namable.h" + +class AudioPool; +class AudioManager; + +class EXPCL_PANDA AudioSound : public TypedReferenceCount, public Namable { +private: + AudioTraits::SoundClass *_sound; + AudioTraits::PlayingClass *_state; + AudioTraits::PlayerClass *_player; + AudioTraits::DeletePlayingFunc *_delstate; +protected: + INLINE AudioSound(AudioTraits::SoundClass*, AudioTraits::PlayingClass*, + AudioTraits::PlayerClass*, AUdioTraits::DeletePlayingFunc*, + const string&); + INLINE AudioSound(const AudioSound&); + INLINE AudioSound& operator=(const AudioSound&); + + INLINE AudioTraits::PlayerClass* get_player(void) const; + INLINE AudioTraits::SoundClass* get_sound(void) const; + INLINE AudioTraits::PlayingClass* get_state(void) const; + + friend class AudioPool; + friend class AudioManager; +public: + virtual ~AudioSound(void); + INLINE bool operator==(const AudioSound&) const; + INLINE bool operator!=(const AudioSound&) const; + + enum SoundStatus { BAD, READY, PLAYING } ; + + float length(void) const; + SoundStatus status(void) const; +public: + // type stuff + static TypeHandle get_class_type(void) { + return _type_handle; + } + static void init_type(void) { + TypedReferenceCount::init_type(); + register_type(_type_handle, "AudioSound", + TypedReferenceCount::get_class_type()); + } + virtual TypeHandle get_type(void) const { + return get_class_type(); + } + virtual TypeHandle force_init_type(void) { + init_type(); + return get_class_type(); + } +private: + static TypeHandle _type_handle; +}; + +#endif /* __AUDIO_SOUND_H__ */