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

Public Member Functions

virtual PN_stdfloat audio_3d_get_distance_factor () const
 Gets units per meter (Fmod uses meters internally for its sound- spacialization calculations) 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 units per meter (Fmod uses meters internally for its sound- spacialization calculations) 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 FMOD use a left handed coordinate system. More...
 
virtual void clear_cache ()
 NOT USED FOR FMOD-EX!!! Clear out the sound cache. More...
 
virtual TypeHandle force_init_type ()
 
virtual bool get_active () const
 
virtual unsigned int get_cache_limit () const
 NOT USED FOR FMOD-EX!!! Gets the number of sounds that the cache can hold. More...
 
virtual unsigned int get_concurrent_sound_limit () const
 NOT USED FOR FMOD-EX!!! More...
 
virtual int get_speaker_setup ()
 This is to query if you are using a MultiChannel Setup. More...
 
virtual TypeHandle get_type () const
 
virtual PN_stdfloat get_volume () const
 Returns the AudioManager's volume. More...
 
virtual bool is_valid ()
 This just check to make sure the FMOD System is up and running correctly. More...
 
virtual PT (AudioSound) get_sound(const Filename &
 
virtual PT (AudioSound) get_sound(MovieAudio *
 
virtual void reduce_sounds_playing_to (unsigned int count)
 NOT USED FOR FMOD-EX!!! More...
 
virtual void set_active (bool)
 Turn on/off Warning: not implemented. More...
 
virtual void set_cache_limit (unsigned int count)
 NOT USED FOR FMOD-EX!!! Set the number of sounds that the cache can hold. More...
 
virtual void set_concurrent_sound_limit (unsigned int limit=0)
 NOT USED FOR FMOD-EX!!! More...
 
virtual void set_speaker_setup (SpeakerModeCategory cat)
 This is to set up FMOD to use a MultiChannel Setup. More...
 
virtual void set_volume (PN_stdfloat)
 Sets the volume of the AudioManager. More...
 
virtual void set_wavwriter (bool)
 Changes output mode to write all audio to a wav file. More...
 
virtual void stop_all_sounds ()
 Stop playback on all sounds managed by this manager. More...
 
virtual void uncache_sound (const Filename &)
 NOT USED FOR FMOD-EX!!! Clears a sound out of the sound cache. More...
 
virtual void update ()
 Perform all per-frame update functions. More...
 
- Public Member Functions inherited from AudioManager
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 shutdown ()
 Call this at exit time to shut down the audio system. More...
 
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 FmodAudioSound
 

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 82 of file fmodAudioManager.h.

Member Function Documentation

◆ audio_3d_get_distance_factor()

PN_stdfloat FmodAudioManager::audio_3d_get_distance_factor ( ) const
virtual

Gets units per meter (Fmod uses meters internally for its sound- spacialization calculations)

Reimplemented from AudioManager.

Definition at line 682 of file fmodAudioManager.cxx.

◆ audio_3d_get_listener_attributes()

void FmodAudioManager::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 652 of file fmodAudioManager.cxx.

◆ audio_3d_set_distance_factor()

void FmodAudioManager::audio_3d_set_distance_factor ( PN_stdfloat  factor)
virtual

Set units per meter (Fmod uses meters internally for its sound- spacialization calculations)

Reimplemented from AudioManager.

Definition at line 663 of file fmodAudioManager.cxx.

◆ audio_3d_set_doppler_factor()

void FmodAudioManager::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 692 of file fmodAudioManager.cxx.

◆ audio_3d_set_drop_off_factor()

void FmodAudioManager::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 719 of file fmodAudioManager.cxx.

◆ audio_3d_set_listener_attributes()

void FmodAudioManager::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 FMOD use a left 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 FMOD the Y-Axis is going up and the Z-Axis is going into the screen. The solution is simple, we just flip the Y and Z axis, as we move coordinates from Panda to FMOD 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 621 of file fmodAudioManager.cxx.

◆ clear_cache()

void FmodAudioManager::clear_cache ( )
virtual

NOT USED FOR FMOD-EX!!! Clear out the sound cache.

Implements AudioManager.

Definition at line 785 of file fmodAudioManager.cxx.

◆ get_cache_limit()

unsigned int FmodAudioManager::get_cache_limit ( ) const
virtual

NOT USED FOR FMOD-EX!!! Gets the number of sounds that the cache can hold.

Implements AudioManager.

Definition at line 803 of file fmodAudioManager.cxx.

◆ get_concurrent_sound_limit()

unsigned int FmodAudioManager::get_concurrent_sound_limit ( ) const
virtual

NOT USED FOR FMOD-EX!!!

Implements AudioManager.

Definition at line 758 of file fmodAudioManager.cxx.

◆ get_speaker_setup()

int FmodAudioManager::get_speaker_setup ( )
virtual

This is to query if you are using a MultiChannel Setup.

Reimplemented from AudioManager.

Definition at line 450 of file fmodAudioManager.cxx.

◆ get_volume()

PN_stdfloat FmodAudioManager::get_volume ( ) const
virtual

Returns the AudioManager's volume.

Implements AudioManager.

Definition at line 529 of file fmodAudioManager.cxx.

◆ is_valid()

bool FmodAudioManager::is_valid ( )
virtual

This just check to make sure the FMOD System is up and running correctly.

Implements AudioManager.

Definition at line 208 of file fmodAudioManager.cxx.

◆ reduce_sounds_playing_to()

void FmodAudioManager::reduce_sounds_playing_to ( unsigned int  count)
virtual

NOT USED FOR FMOD-EX!!!

Implements AudioManager.

Definition at line 766 of file fmodAudioManager.cxx.

◆ set_active()

void FmodAudioManager::set_active ( bool  active)
virtual

Turn on/off Warning: not implemented.

Implements AudioManager.

Definition at line 558 of file fmodAudioManager.cxx.

◆ set_cache_limit()

void FmodAudioManager::set_cache_limit ( unsigned int  count)
virtual

NOT USED FOR FMOD-EX!!! Set the number of sounds that the cache can hold.

Implements AudioManager.

Definition at line 794 of file fmodAudioManager.cxx.

◆ set_concurrent_sound_limit()

void FmodAudioManager::set_concurrent_sound_limit ( unsigned int  limit = 0)
virtual

NOT USED FOR FMOD-EX!!!

Implements AudioManager.

Definition at line 750 of file fmodAudioManager.cxx.

◆ set_speaker_setup()

void FmodAudioManager::set_speaker_setup ( AudioManager::SpeakerModeCategory  cat)
virtual

This is to set up FMOD to use a MultiChannel Setup.

This method is pretty much useless. To set a speaker setup in FMOD for Surround Sound, stereo, or whatever you have to set the SpeakerMode BEFORE you Initialize FMOD. Since Panda Inits the FmodAudioManager right when you Start it up, you are never given an oppertunity to call this function. That is why I stuck a BOOL in the CONFIG.PRC file, whichs lets you flag if you want to use a Multichannel or not. That will set the speaker setup when an instance of this class is constructed. Still I put this here as a measure of good faith, since you can query the speaker setup after everything in Init. Also, maybe someone will completely hack Panda someday, in which one can init or re-init the AudioManagers after Panda is running.

Reimplemented from AudioManager.

Definition at line 505 of file fmodAudioManager.cxx.

◆ set_volume()

void FmodAudioManager::set_volume ( PN_stdfloat  volume)
virtual

Sets the volume of the AudioManager.

It is not an override, but a multiplier.

Implements AudioManager.

Definition at line 518 of file fmodAudioManager.cxx.

◆ set_wavwriter()

void FmodAudioManager::set_wavwriter ( bool  outputwav)
virtual

Changes output mode to write all audio to a wav file.

Definition at line 542 of file fmodAudioManager.cxx.

◆ stop_all_sounds()

void FmodAudioManager::stop_all_sounds ( )
virtual

Stop playback on all sounds managed by this manager.

Implements AudioManager.

Definition at line 584 of file fmodAudioManager.cxx.

◆ uncache_sound()

void FmodAudioManager::uncache_sound ( const Filename file_name)
virtual

NOT USED FOR FMOD-EX!!! Clears a sound out of the sound cache.

Implements AudioManager.

Definition at line 775 of file fmodAudioManager.cxx.

◆ update()

void FmodAudioManager::update ( )
virtual

Perform all per-frame update functions.

Reimplemented from AudioManager.

Definition at line 604 of file fmodAudioManager.cxx.


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