Panda3D
|
00001 // Filename: nullAudioManager.h 00002 // Created by: skyler (June 6, 2001) 00003 // Prior system by: cary 00004 // 00005 //////////////////////////////////////////////////////////////////// 00006 // 00007 // PANDA 3D SOFTWARE 00008 // Copyright (c) Carnegie Mellon University. All rights reserved. 00009 // 00010 // All use of this software is subject to the terms of the revised BSD 00011 // license. You should have received a copy of this license along 00012 // with this source code in a file named "LICENSE." 00013 // 00014 //////////////////////////////////////////////////////////////////// 00015 00016 #ifndef __NULL_AUDIO_MANAGER_H__ 00017 #define __NULL_AUDIO_MANAGER_H__ 00018 00019 #include "audioManager.h" 00020 #include "nullAudioSound.h" 00021 00022 class EXPCL_PANDA_AUDIO NullAudioManager : public AudioManager { 00023 // All of these methods are stubbed out to some degree. 00024 // If you're looking for a starting place for a new AudioManager, 00025 // please consider looking at the milesAudioManager. 00026 00027 public: 00028 NullAudioManager(); 00029 virtual ~NullAudioManager(); 00030 00031 virtual bool is_valid(); 00032 00033 virtual PT(AudioSound) get_sound(const string&, bool positional = false, int mode=SM_heuristic); 00034 virtual PT(AudioSound) get_sound(MovieAudio *sound, bool positional = false, int mode=SM_heuristic); 00035 virtual void uncache_sound(const string&); 00036 virtual void clear_cache(); 00037 virtual void set_cache_limit(unsigned int); 00038 virtual unsigned int get_cache_limit() const; 00039 00040 virtual void set_volume(PN_stdfloat); 00041 virtual PN_stdfloat get_volume() const; 00042 00043 virtual void set_play_rate(PN_stdfloat); 00044 virtual PN_stdfloat get_play_rate() const; 00045 00046 virtual void set_active(bool); 00047 virtual bool get_active() const; 00048 00049 virtual void set_concurrent_sound_limit(unsigned int limit); 00050 virtual unsigned int get_concurrent_sound_limit() const; 00051 00052 virtual void reduce_sounds_playing_to(unsigned int count); 00053 00054 virtual void stop_all_sounds(); 00055 00056 virtual void audio_3d_set_listener_attributes(PN_stdfloat px, PN_stdfloat py, PN_stdfloat pz, 00057 PN_stdfloat vx, PN_stdfloat vy, PN_stdfloat vz, 00058 PN_stdfloat fx, PN_stdfloat fy, PN_stdfloat fz, 00059 PN_stdfloat ux, PN_stdfloat uy, PN_stdfloat uz); 00060 virtual void audio_3d_get_listener_attributes(PN_stdfloat *px, PN_stdfloat *py, PN_stdfloat *pz, 00061 PN_stdfloat *vx, PN_stdfloat *vy, PN_stdfloat *vz, 00062 PN_stdfloat *fx, PN_stdfloat *fy, PN_stdfloat *fz, 00063 PN_stdfloat *ux, PN_stdfloat *uy, PN_stdfloat *uz); 00064 00065 virtual void audio_3d_set_distance_factor(PN_stdfloat factor); 00066 virtual PN_stdfloat audio_3d_get_distance_factor() const; 00067 00068 virtual void audio_3d_set_doppler_factor(PN_stdfloat factor); 00069 virtual PN_stdfloat audio_3d_get_doppler_factor() const; 00070 00071 virtual void audio_3d_set_drop_off_factor(PN_stdfloat factor); 00072 virtual PN_stdfloat audio_3d_get_drop_off_factor() const; 00073 00074 00075 public: 00076 static TypeHandle get_class_type() { 00077 return _type_handle; 00078 } 00079 static void init_type() { 00080 AudioManager::init_type(); 00081 register_type(_type_handle, "NullAudioManager", 00082 AudioManager::get_class_type()); 00083 } 00084 virtual TypeHandle get_type() const { 00085 return get_class_type(); 00086 } 00087 virtual TypeHandle force_init_type() {init_type(); return get_class_type();} 00088 00089 private: 00090 static TypeHandle _type_handle; 00091 }; 00092 00093 #endif /* __NULL_AUDIO_MANAGER_H__ */