Panda3D

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
FmodAudioSound Class Reference
Inheritance diagram for FmodAudioSound:

## Public Member Functions
| FmodAudioSound (AudioManager *manager, VirtualFile *file, bool positional)
| Constructor All sound will DEFAULT load as a 2D sound unless otherwise specified.
| ~FmodAudioSound ()
| DESTRUCTOR!
void | finished ()
| Not implemented.
virtual TypeHandle | force_init_type ()
void | get_3d_attributes (PN_stdfloat *px, PN_stdfloat *py, PN_stdfloat *pz, PN_stdfloat *vx, PN_stdfloat *vy, PN_stdfloat *vz)
| Get position and velocity of this sound Currently unimplemented.
PN_stdfloat | get_3d_max_distance () const
| Get the distance that this sound stops falling off.
PN_stdfloat | get_3d_min_distance () const
| Get the distance that this sound begins to fall off.
bool | get_active () const
| Returns whether the sound has been marked "active".
PN_stdfloat | get_balance () const
| -1.0 to 1.0 scale -1 should be all the way left.
const std::string & | get_finished_event () const
| NOT USED ANYMORE!
bool | get_loop () const
| Returns whether looping is on or off.
unsigned long | get_loop_count () const
| Return how many times a sound will loop.
const std::string & | get_name () const
| Get name of sound file.
PN_stdfloat | get_play_rate () const
virtual PN_stdfloat | get_speaker_mix (int speaker)
| In Multichannel Speaker systems [like Surround].
PN_stdfloat | get_time () const
| Gets the play position within the sound.
virtual TypeHandle | get_type () const
PN_stdfloat | get_volume () const
| Gets the current volume of a sound.
PN_stdfloat | length () const
| Get length FMOD returns the time in MS so we have to convert to seconds.
void | play ()
| Plays a sound.
void | set_3d_attributes (PN_stdfloat px, PN_stdfloat py, PN_stdfloat pz, PN_stdfloat vx, PN_stdfloat vy, PN_stdfloat vz)
| Set position and velocity of this sound NOW LISTEN UP!
void | set_3d_max_distance (PN_stdfloat dist)
| Set the distance that this sound stops falling off.
void | set_3d_min_distance (PN_stdfloat dist)
| Set the distance that this sound begins to fall off.
void | set_active (bool active=true)
| Sets whether the sound is marked "active".
void | set_balance (PN_stdfloat balance_right=0.0)
| -1.0 to 1.0 scale
void | set_finished_event (const std::string &event)
| NOT USED ANYMORE!
void | set_loop (bool loop=true)
| Turns looping on and off.
void | set_loop_count (unsigned long loop_count=1)
| Panda uses 0 to mean loop forever.
void | set_play_rate (PN_stdfloat play_rate=1.0f)
| Sets the speed at which a sound plays back.
virtual void | set_speaker_mix (PN_stdfloat frontleft, PN_stdfloat frontright, PN_stdfloat center, PN_stdfloat sub, PN_stdfloat backleft, PN_stdfloat backright, PN_stdfloat sideleft, PN_stdfloat sideright)
| This sets the speaker mix for Surround Sound sytems.
void | set_time (PN_stdfloat start_time=0.0)
| Sets the time at which the next play() operation will begin.
void | set_volume (PN_stdfloat volume=1.0)
| 0.0 to 1.0 scale of volume converted to Fmod's internal 0.0 to 255.0 scale.
AudioSound::SoundStatus | status () const
| Get status of the sound.
void | stop ()
| Stop a sound.
Public Member Functions inherited from AudioSound
virtual bool | configure_filters (FilterProperties *config)
| Configure the local DSP filter chain.
virtual PN_stdfloat | get_speaker_level (int index)
| For use only with Miles.
virtual void | output (std::ostream &out) const
virtual void | set_speaker_levels (PN_stdfloat level1, PN_stdfloat level2=-1.0f, PN_stdfloat level3=-1.0f, PN_stdfloat level4=-1.0f, PN_stdfloat level5=-1.0f, PN_stdfloat level6=-1.0f, PN_stdfloat level7=-1.0f, PN_stdfloat level8=-1.0f, PN_stdfloat level9=-1.0f)
| For use only with Miles.
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
TypedObject * | as_typed_object ()
| Returns the object, upcast (if necessary) to a TypedObject pointer.
const TypedObject * | as_typed_object () const
| Returns the object, upcast (if necessary) to a TypedObject pointer.
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.
bool | is_exact_type (TypeHandle handle) const
| Returns true if the current object is the indicated type exactly.
bool | is_of_type (TypeHandle handle) const
| Returns true if the current object is or derives from the indicated type.
TypedObject & | operator= (const TypedObject &copy)=default
Public Member Functions inherited from MemoryBase
void | operator delete (void *, void *)
void | operator delete (void *ptr)
void | operator delete[] (void *, void *)
void | operator delete[] (void *ptr)
void * | operator new (size_t size)
void * | operator new (size_t size, void *ptr)
void * | operator new[] (size_t size)
void * | operator new[] (size_t size, void *ptr)
Public Member Functions inherited from ReferenceCount
int | get_ref_count () const
WeakReferenceList * | get_weak_list () const
| Returns the WeakReferenceList associated with this ReferenceCount object.
bool | has_weak_list () const
| Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise.
void | local_object ()
| This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack.
void | ref () const
| Explicitly increments the reference count.
bool | ref_if_nonzero () const
| Atomically increases the reference count of this object if it is not zero.
bool | test_ref_count_integrity () const
| Does some easy checks to make sure that the reference count isn't completely bogus.
bool | test_ref_count_nonzero () const
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus.
virtual bool | unref () const
| Explicitly decrements the reference count.
bool | unref_if_one () const
| Atomically decreases the reference count of this object if it is one.
WeakReferenceList * | weak_ref ()
| Adds the indicated PointerToVoid as a weak reference to this object.
void | weak_unref ()
| Removes the indicated PointerToVoid as a weak reference to this object.

## Static Public Member Functions
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from AudioSound
static TypeHandle | get_class_type ()
static void | init_type ()
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.
Static Public Member Functions inherited from ReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()

## Additional Inherited Members
Public Types inherited from AudioSound
enum | SoundStatus { BAD , READY , PLAYING }
Public Attributes inherited from TypedObject
| get_type
Public Attributes inherited from ReferenceCount
| get_ref_count
| Returns the current reference count.

## Detailed Description

Definition at line 75 of file fmodAudioSound.h.

## Constructor & Destructor Documentation

## ◆ FmodAudioSound()

FmodAudioSound::FmodAudioSound | ( | AudioManager * | manager,
|  | VirtualFile * | file,
|  | bool | positional )

Constructor All sound will DEFAULT load as a 2D sound unless otherwise specified.

Definition at line 41 of file fmodAudioSound.cxx.

References downcase(), VirtualFile::get_file_size(), VirtualFile::get_original_filename(), VirtualFile::get_system_info(), VirtualFile::read_file(), and Filename::set_binary().

## ◆ ~FmodAudioSound()

FmodAudioSound::~FmodAudioSound | ( |  | ) |

DESTRUCTOR!

!!

Definition at line 221 of file fmodAudioSound.cxx.

## Member Function Documentation

## ◆ finished()

void FmodAudioSound::finished | ( |  | ) |

Not implemented.

Definition at line 855 of file fmodAudioSound.cxx.

## ◆ force_init_type()

virtual TypeHandle FmodAudioSound::force_init_type | ( |  | ) |
| inline virtual

Reimplemented from AudioSound.

Definition at line 222 of file fmodAudioSound.h.

## ◆ get_3d_attributes()

void FmodAudioSound::get_3d_attributes | ( | PN_stdfloat * | px,
|  | PN_stdfloat * | py,
|  | PN_stdfloat * | pz,
|  | PN_stdfloat * | vx,
|  | PN_stdfloat * | vy,
|  | PN_stdfloat * | vz )
| virtual

Get position and velocity of this sound Currently unimplemented.

Get the attributes of the attached object.

Reimplemented from AudioSound.

Definition at line 607 of file fmodAudioSound.cxx.

## ◆ get_3d_max_distance()

PN_stdfloat FmodAudioSound::get_3d_max_distance | ( |  | ) | const
| virtual

Get the distance that this sound stops falling off.

Reimplemented from AudioSound.

Definition at line 652 of file fmodAudioSound.cxx.

## ◆ get_3d_min_distance()

PN_stdfloat FmodAudioSound::get_3d_min_distance | ( |  | ) | const
| virtual

Get the distance that this sound begins to fall off.

Reimplemented from AudioSound.

Definition at line 630 of file fmodAudioSound.cxx.

## ◆ get_active()

bool FmodAudioSound::get_active | ( |  | ) | const
| virtual

Returns whether the sound has been marked "active".

Implements AudioSound.

Definition at line 847 of file fmodAudioSound.cxx.

## ◆ get_balance()

PN_stdfloat FmodAudioSound::get_balance | ( |  | ) | const
| virtual

-1.0 to 1.0 scale -1 should be all the way left.

1 is all the way to the right.

Implements AudioSound.

Definition at line 487 of file fmodAudioSound.cxx.

## ◆ get_class_type()

static TypeHandle FmodAudioSound::get_class_type | ( |  | ) |
| inline static

Definition at line 212 of file fmodAudioSound.h.

## ◆ get_finished_event()

const string & FmodAudioSound::get_finished_event | ( |  | ) | const
| virtual

NOT USED ANYMORE!

!! Return the string the finished event is referenced by

Implements AudioSound.

Definition at line 876 of file fmodAudioSound.cxx.

## ◆ get_loop()

bool FmodAudioSound::get_loop | ( |  | ) | const
| virtual

Returns whether looping is on or off.

Implements AudioSound.

Definition at line 281 of file fmodAudioSound.cxx.

References get_loop_count().

## ◆ get_loop_count()

unsigned long FmodAudioSound::get_loop_count | ( |  | ) | const
| virtual

Return how many times a sound will loop.

Implements AudioSound.

Definition at line 326 of file fmodAudioSound.cxx.

Referenced by get_loop(), and set_active().

## ◆ get_name()

const string & FmodAudioSound::get_name | ( |  | ) | const
| virtual

Get name of sound file.

Implements AudioSound.

Definition at line 536 of file fmodAudioSound.cxx.

## ◆ get_play_rate()

PN_stdfloat FmodAudioSound::get_play_rate | ( |  | ) | const
| virtual

Implements AudioSound.

Definition at line 509 of file fmodAudioSound.cxx.

## ◆ get_speaker_mix()

PN_stdfloat FmodAudioSound::get_speaker_mix | ( | int | speaker | ) |
| virtual

In Multichannel Speaker systems [like Surround].

Speakers which don't exist in some systems will simply be ignored. But I haven't been able to test this yet, so I am jsut letting you know.

BTW This will also work in Stereo speaker systems, but since PANDA/FMOD has a balance [pan] function what is the point?

Reimplemented from AudioSound.

Definition at line 666 of file fmodAudioSound.cxx.

## ◆ get_time()

PN_stdfloat FmodAudioSound::get_time | ( |  | ) | const
| virtual

Gets the play position within the sound.

Implements AudioSound.

Definition at line 360 of file fmodAudioSound.cxx.

Referenced by set_active().

## ◆ get_type()

virtual TypeHandle FmodAudioSound::get_type | ( |  | ) | const
| inline virtual

Reimplemented from AudioSound.

Definition at line 219 of file fmodAudioSound.h.

## ◆ get_volume()

PN_stdfloat FmodAudioSound::get_volume | ( |  | ) | const
| virtual

Gets the current volume of a sound.

1 is Max. O is Min.

Implements AudioSound.

Definition at line 392 of file fmodAudioSound.cxx.

## ◆ init_type()

static void FmodAudioSound::init_type | ( |  | ) |
| inline static

Definition at line 215 of file fmodAudioSound.h.

## ◆ length()

PN_stdfloat FmodAudioSound::length | ( |  | ) | const
| virtual

Get length FMOD returns the time in MS so we have to convert to seconds.

Implements AudioSound.

Definition at line 544 of file fmodAudioSound.cxx.

References length().

Referenced by length().

## ◆ play()

void FmodAudioSound::play | ( |  | ) |
| virtual

Plays a sound.

Implements AudioSound.

Definition at line 238 of file fmodAudioSound.cxx.

Referenced by set_active().

## ◆ set_3d_attributes()

void FmodAudioSound::set_3d_attributes | ( | PN_stdfloat | px,
|  | PN_stdfloat | py,
|  | PN_stdfloat | pz,
|  | PN_stdfloat | vx,
|  | PN_stdfloat | vy,
|  | PN_stdfloat | vz )
| virtual

Set position and velocity of this sound 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 AudioSound.

Definition at line 567 of file fmodAudioSound.cxx.

## ◆ set_3d_max_distance()

void FmodAudioSound::set_3d_max_distance | ( | PN_stdfloat | dist | ) |
| virtual

Set the distance that this sound stops falling off.

Reimplemented from AudioSound.

Definition at line 638 of file fmodAudioSound.cxx.

## ◆ set_3d_min_distance()

void FmodAudioSound::set_3d_min_distance | ( | PN_stdfloat | dist | ) |
| virtual

Set the distance that this sound begins to fall off.

Also affects the rate it falls off.

Reimplemented from AudioSound.

Definition at line 616 of file fmodAudioSound.cxx.

## ◆ set_active()

void FmodAudioSound::set_active | ( | bool | active = true | ) |
| virtual

Sets whether the sound is marked "active".

By default, the active flag true for all sounds. If the active flag is set to false for any particular sound, the sound will not be heard.

Implements AudioSound.

Definition at line 815 of file fmodAudioSound.cxx.

References get_loop_count(), get_time(), play(), status(), and stop().

## ◆ set_balance()

void FmodAudioSound::set_balance | ( | PN_stdfloat | balance_right = 0.0 | ) |
| virtual

-1.0 to 1.0 scale

Implements AudioSound.

Definition at line 476 of file fmodAudioSound.cxx.

## ◆ set_finished_event()

void FmodAudioSound::set_finished_event | ( | const std::string & | event | ) |
| virtual

NOT USED ANYMORE!

!! Assign a string for the finished event to be referenced by in python by an accept method

Implements AudioSound.

Definition at line 865 of file fmodAudioSound.cxx.

## ◆ set_loop()

void FmodAudioSound::set_loop | ( | bool | loop = true | ) |
| virtual

Turns looping on and off.

Implements AudioSound.

Definition at line 269 of file fmodAudioSound.cxx.

References set_loop_count().

## ◆ set_loop_count()

void FmodAudioSound::set_loop_count | ( | unsigned long | loop_count = 1 | ) |
| virtual

Panda uses 0 to mean loop forever.

Fmod uses negative numbers to mean loop forever. (0 means don't loop, 1 means play twice, etc. We must convert!

Implements AudioSound.

Definition at line 295 of file fmodAudioSound.cxx.

Referenced by set_loop().

## ◆ set_play_rate()

void FmodAudioSound::set_play_rate | ( | PN_stdfloat | rate = 1.0f | ) |
| virtual

Sets the speed at which a sound plays back.

The rate is a multiple of the sound, normal playback speed. IE 2 would play back 2 times fast, 3 would play 3 times, and so on. This can also be set to a negative number so a sound plays backwards. But rememeber if the sound is not playing, you must set the sound's time to its end to hear a song play backwards.

Implements AudioSound.

Definition at line 499 of file fmodAudioSound.cxx.

## ◆ set_speaker_mix()

void FmodAudioSound::set_speaker_mix | ( | PN_stdfloat | frontleft,
|  | PN_stdfloat | frontright,
|  | PN_stdfloat | center,
|  | PN_stdfloat | sub,
|  | PN_stdfloat | backleft,
|  | PN_stdfloat | backright,
|  | PN_stdfloat | sideleft,
|  | PN_stdfloat | sideright )
| virtual

This sets the speaker mix for Surround Sound sytems.

It required 8 parameters which match up to the following:

* 1 = Front Left * 2 = Front Right * 3 = Center * 4 = Subwoofer * 5 = Back Left * 6 = Back Right * 7 = Side Left * 8 = Side Right

Reimplemented from AudioSound.

Definition at line 707 of file fmodAudioSound.cxx.

## ◆ set_time()

void FmodAudioSound::set_time | ( | PN_stdfloat | start_time = 0.0 | ) |
| virtual

Sets the time at which the next play() operation will begin.

If we are already playing, skips to that time immediatey.

Implements AudioSound.

Definition at line 346 of file fmodAudioSound.cxx.

References status().

## ◆ set_volume()

void FmodAudioSound::set_volume | ( | PN_stdfloat | volume = 1.0 | ) |
| virtual

0.0 to 1.0 scale of volume converted to Fmod's internal 0.0 to 255.0 scale.

Implements AudioSound.

Definition at line 382 of file fmodAudioSound.cxx.

## ◆ status()

AudioSound::SoundStatus FmodAudioSound::status | ( |  | ) | const
| virtual

Get status of the sound.

Implements AudioSound.

Definition at line 792 of file fmodAudioSound.cxx.

Referenced by set_active(), and set_time().

## ◆ stop()

void FmodAudioSound::stop | ( |  | ) |
| virtual

Stop a sound.

Implements AudioSound.

Definition at line 246 of file fmodAudioSound.cxx.

Referenced by set_active().

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

- panda/src/audiotraits/fmodAudioSound.h
- panda/src/audiotraits/fmodAudioSound.cxx