Panda3D
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
OpenALAudioManager Class Reference
Inheritance diagram for OpenALAudioManager:
AudioManager TypedReferenceCount TypedObject ReferenceCount MemoryBase MemoryBase

Public Member Functions

virtual PN_stdfloat audio_3d_get_distance_factor () const
 Get value in units per meter. More...
 
virtual PN_stdfloat audio_3d_get_doppler_factor () const
 
virtual PN_stdfloat audio_3d_get_drop_off_factor () const
 
virtual void audio_3d_get_listener_attributes (PN_stdfloat *px, PN_stdfloat *py, PN_stdfloat *pz, PN_stdfloat *vx, PN_stdfloat *vy, PN_stdfloat *vz, PN_stdfloat *fx, PN_stdfloat *fy, PN_stdfloat *fz, PN_stdfloat *ux, PN_stdfloat *uy, PN_stdfloat *uz)
 Get position of the "ear" that picks up 3d sounds. More...
 
virtual void audio_3d_set_distance_factor (PN_stdfloat factor)
 Set value in units per meter WARNING: OpenAL has no distance factor but we use this as a scale on the min/max distances of sounds to preserve FMOD compatibility. More...
 
virtual void audio_3d_set_doppler_factor (PN_stdfloat factor)
 Exaggerates or diminishes the Doppler effect. More...
 
virtual void audio_3d_set_drop_off_factor (PN_stdfloat factor)
 Control the effect distance has on audability. More...
 
virtual void audio_3d_set_listener_attributes (PN_stdfloat px, PN_stdfloat py, PN_stdfloat pz, PN_stdfloat vx, PN_stdfloat xy, PN_stdfloat xz, PN_stdfloat fx, PN_stdfloat fy, PN_stdfloat fz, PN_stdfloat ux, PN_stdfloat uy, PN_stdfloat uz)
 Set position of the "ear" that picks up 3d sounds NOW LISTEN UP!!! THIS IS IMPORTANT! Both Panda3D and OpenAL use a right handed coordinate system. More...
 
virtual void clear_cache ()
 Clear out the sound cache. More...
 
virtual TypeHandle force_init_type ()
 
virtual bool get_active () const
 
virtual unsigned int get_cache_limit () const
 
virtual unsigned int get_concurrent_sound_limit () const
 
PN_stdfloat get_play_rate () const
 get the overall speed/pitch/play rate More...
 
virtual TypeHandle get_type () const
 
virtual PN_stdfloat get_volume () const
 Gets listener gain. More...
 
virtual bool is_valid ()
 This is mostly for debugging, but it it could be used to detect errors in a release build if you don't mind the cpu cost. More...
 
virtual PT (AudioSound) get_sound(const Filename &
 
virtual PT (AudioSound) get_sound(MovieAudio *sound
 
virtual void reduce_sounds_playing_to (unsigned int count)
 
virtual void set_active (bool)
 Turn on/off Warning: not implemented. More...
 
virtual void set_cache_limit (unsigned int count)
 Set the number of sounds that the cache can hold. More...
 
virtual void set_concurrent_sound_limit (unsigned int limit=0)
 
void set_play_rate (PN_stdfloat play_rate)
 set the overall play rate More...
 
virtual void set_volume (PN_stdfloat)
 Sets listener gain. More...
 
virtual void shutdown ()
 Call this at exit time to shut down the audio system. More...
 
virtual void stop_all_sounds ()
 Stop playback on all sounds managed by this manager. More...
 
virtual void uncache_sound (const Filename &)
 Deletes a sample from the expiration queues. More...
 
virtual void update ()
 Perform all per-frame update functions. More...
 
- Public Member Functions inherited from AudioManager
virtual bool configure_filters (FilterProperties *config)
 Configures the global DSP filter chain. More...
 
virtual int get_speaker_setup ()
 
virtual void output (std::ostream &out) const
 
 PT (AudioSound) get_null_sound()
 
virtual void set_speaker_configuration (LVecBase3 *speaker1, LVecBase3 *speaker2=nullptr, LVecBase3 *speaker3=nullptr, LVecBase3 *speaker4=nullptr, LVecBase3 *speaker5=nullptr, LVecBase3 *speaker6=nullptr, LVecBase3 *speaker7=nullptr, LVecBase3 *speaker8=nullptr, LVecBase3 *speaker9=nullptr)
 For use only with Miles. More...
 
virtual void set_speaker_setup (SpeakerModeCategory cat)
 
virtual void write (std::ostream &out) const
 
- Public Member Functions inherited from TypedReferenceCount
 TypedReferenceCount (const TypedReferenceCount &copy)
 
void operator= (const TypedReferenceCount &copy)
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)=default
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
const TypedObjectas_typed_object () const
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
int get_best_parent_from_Set (const std::set< int > &) const
 
int get_type_index () const
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
 
bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly. More...
 
bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type. More...
 
TypedObjectoperator= (const TypedObject &copy)=default
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 
WeakReferenceListget_weak_list () const
 Returns the WeakReferenceList associated with this ReferenceCount object. More...
 
bool has_weak_list () const
 Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More...
 
void local_object ()
 This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More...
 
void ref () const
 Explicitly increments the reference count. More...
 
bool ref_if_nonzero () const
 Atomically increases the reference count of this object if it is not zero. More...
 
bool test_ref_count_integrity () const
 Does some easy checks to make sure that the reference count isn't completely bogus. More...
 
bool test_ref_count_nonzero () const
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
 
virtual bool unref () const
 Explicitly decrements the reference count. More...
 
WeakReferenceListweak_ref ()
 Adds the indicated PointerToVoid as a weak reference to this object. More...
 
void weak_unref ()
 Removes the indicated PointerToVoid as a weak reference to this object. More...
 

Static Public Member Functions

static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from AudioManager
static TypeHandle get_class_type ()
 
static Filename get_dls_pathname ()
 
static void init_type ()
 
static PT (AudioManager) create_AudioManager()
 
static void register_AudioManager_creator (Create_AudioManager_proc *proc)
 
- Static Public Member Functions inherited from TypedReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from TypedObject
static TypeHandle get_class_type ()
 
static void init_type ()
 This function is declared non-inline to work around a compiler bug in g++ 2.96. More...
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 

Public Attributes

virtual bool int mode =SM_heuristic)
 
virtual bool positional = false
 
- Public Attributes inherited from AudioManager
 get_dls_pathname
 Returns the full pathname to the DLS file, as specified by the Config.prc file, or the default for the current OS if appropriate. More...
 
virtual bool int mode =SM_heuristic) = 0
 
virtual bool positional = false
 
- Public Attributes inherited from TypedObject
 get_type
 
- Public Attributes inherited from ReferenceCount
 get_ref_count
 Returns the current reference count. More...
 

Friends

class OpenALAudioSound
 
class OpenALSoundData
 

Additional Inherited Members

- Public Types inherited from AudioManager
enum  SpeakerId {
  SPK_none, SPK_frontleft, SPK_frontright, SPK_center,
  SPK_sub, SPK_backleft, SPK_backright, SPK_sideleft,
  SPK_sideright, SPK_COUNT
}
 
enum  SpeakerModeCategory {
  SPEAKERMODE_raw, SPEAKERMODE_mono, SPEAKERMODE_stereo, SPEAKERMODE_quad,
  SPEAKERMODE_surround, SPEAKERMODE_5point1, SPEAKERMODE_7point1, SPEAKERMODE_max,
  SPEAKERMODE_COUNT
}
 
enum  StreamMode { SM_heuristic, SM_sample, SM_stream }
 

Detailed Description

Definition at line 39 of file openalAudioManager.h.

Member Function Documentation

◆ audio_3d_get_distance_factor()

PN_stdfloat OpenALAudioManager::audio_3d_get_distance_factor ( ) const
virtual

Get value in units per meter.

Reimplemented from AudioManager.

Definition at line 790 of file openalAudioManager.cxx.

◆ audio_3d_get_listener_attributes()

void OpenALAudioManager::audio_3d_get_listener_attributes ( PN_stdfloat *  px,
PN_stdfloat *  py,
PN_stdfloat *  pz,
PN_stdfloat *  vx,
PN_stdfloat *  vy,
PN_stdfloat *  vz,
PN_stdfloat *  fx,
PN_stdfloat *  fy,
PN_stdfloat *  fz,
PN_stdfloat *  ux,
PN_stdfloat *  uy,
PN_stdfloat *  uz 
)
virtual

Get position of the "ear" that picks up 3d sounds.

Reimplemented from AudioManager.

Definition at line 732 of file openalAudioManager.cxx.

◆ audio_3d_set_distance_factor()

void OpenALAudioManager::audio_3d_set_distance_factor ( PN_stdfloat  factor)
virtual

Set value in units per meter WARNING: OpenAL has no distance factor but we use this as a scale on the min/max distances of sounds to preserve FMOD compatibility.

Also adjusts the speed of sound to compensate for unit difference.

Reimplemented from AudioManager.

Definition at line 758 of file openalAudioManager.cxx.

◆ audio_3d_set_doppler_factor()

void OpenALAudioManager::audio_3d_set_doppler_factor ( PN_stdfloat  factor)
virtual

Exaggerates or diminishes the Doppler effect.

Defaults to 1.0

Reimplemented from AudioManager.

Definition at line 798 of file openalAudioManager.cxx.

◆ audio_3d_set_drop_off_factor()

void OpenALAudioManager::audio_3d_set_drop_off_factor ( PN_stdfloat  factor)
virtual

Control the effect distance has on audability.

Defaults to 1.0

Reimplemented from AudioManager.

Definition at line 821 of file openalAudioManager.cxx.

◆ audio_3d_set_listener_attributes()

void OpenALAudioManager::audio_3d_set_listener_attributes ( PN_stdfloat  px,
PN_stdfloat  py,
PN_stdfloat  pz,
PN_stdfloat  vx,
PN_stdfloat  vy,
PN_stdfloat  vz,
PN_stdfloat  fx,
PN_stdfloat  fy,
PN_stdfloat  fz,
PN_stdfloat  ux,
PN_stdfloat  uy,
PN_stdfloat  uz 
)
virtual

Set position of the "ear" that picks up 3d sounds NOW LISTEN UP!!! THIS IS IMPORTANT! Both Panda3D and OpenAL use a right handed coordinate system.

But there is a major difference! In Panda3D the Y-Axis is going into the Screen and the Z-Axis is going up. In OpenAL the Y-Axis is going up and the Z-Axis is coming out of the screen. The solution is simple, we just flip the Y and Z axis and negate the Z, as we move coordinates from Panda to OpenAL and back. What does did mean to average Panda user? Nothing, they shouldn't notice anyway. But if you decide to do any 3D audio work in here you have to keep it in mind. I told you, so you can't say I didn't.

Reimplemented from AudioManager.

Definition at line 698 of file openalAudioManager.cxx.

◆ clear_cache()

void OpenALAudioManager::clear_cache ( )
virtual

Clear out the sound cache.

Implements AudioManager.

Definition at line 568 of file openalAudioManager.cxx.

◆ get_play_rate()

PN_stdfloat OpenALAudioManager::get_play_rate ( ) const

get the overall speed/pitch/play rate

Definition at line 658 of file openalAudioManager.cxx.

◆ get_volume()

PN_stdfloat OpenALAudioManager::get_volume ( ) const
virtual

Gets listener gain.

Implements AudioManager.

Definition at line 634 of file openalAudioManager.cxx.

◆ is_valid()

bool OpenALAudioManager::is_valid ( )
virtual

This is mostly for debugging, but it it could be used to detect errors in a release build if you don't mind the cpu cost.

Implements AudioManager.

Definition at line 235 of file openalAudioManager.cxx.

Referenced by PT().

◆ set_active()

void OpenALAudioManager::set_active ( bool  active)
virtual

Turn on/off Warning: not implemented.

Implements AudioManager.

Definition at line 666 of file openalAudioManager.cxx.

◆ set_cache_limit()

void OpenALAudioManager::set_cache_limit ( unsigned int  count)
virtual

Set the number of sounds that the cache can hold.

Implements AudioManager.

Definition at line 577 of file openalAudioManager.cxx.

◆ set_play_rate()

void OpenALAudioManager::set_play_rate ( PN_stdfloat  play_rate)

set the overall play rate

Definition at line 642 of file openalAudioManager.cxx.

◆ set_volume()

void OpenALAudioManager::set_volume ( PN_stdfloat  volume)
virtual

Sets listener gain.

Implements AudioManager.

Definition at line 607 of file openalAudioManager.cxx.

◆ shutdown()

void OpenALAudioManager::shutdown ( )
virtual

Call this at exit time to shut down the audio system.

This will invalidate all currently-active AudioManagers and AudioSounds in the system. If you change your mind and want to play sounds again, you will have to recreate all of these objects.

Reimplemented from AudioManager.

Definition at line 217 of file openalAudioManager.cxx.

◆ stop_all_sounds()

void OpenALAudioManager::stop_all_sounds ( )
virtual

Stop playback on all sounds managed by this manager.

Implements AudioManager.

Definition at line 948 of file openalAudioManager.cxx.

◆ uncache_sound()

void OpenALAudioManager::uncache_sound ( const Filename file_name)
virtual

Deletes a sample from the expiration queues.

If the sound is actively in use, then the sound cannot be deleted, and this function has no effect.

Implements AudioManager.

Definition at line 528 of file openalAudioManager.cxx.

◆ update()

void OpenALAudioManager::update ( )
virtual

Perform all per-frame update functions.

Reimplemented from AudioManager.

Definition at line 957 of file openalAudioManager.cxx.

References TrueClock::get_global_ptr().


The documentation for this class was generated from the following files: