Skylicht Engine
Loading...
Searching...
No Matches
Skylicht::Audio::CAudioEmitter Class Reference

Audio emitter for playing and managing sound sources. More...

#include <Engine/CAudioEmitter.h>

Public Member Functions

 CAudioEmitter (IStream *stream, IAudioDecoder::EDecoderType type, ISoundDriver *driver)
 CAudioEmitter (const char *file, bool cache, ISoundDriver *driver)
void setName (const char *name)
 Set name for this emitter.
const char * getName ()
 Get name of this emitter.
IAudioDecoder::EDecoderType getDecoderType ()
 Get decoder type.
IStreamgetStream ()
 Get underlying stream.
ISoundSource::ESourceState getState ()
 Get current state of the sound source.
void initDefaultValue ()
 Initialize default values for the emitter.
bool init ()
 Initialize the emitter (streaming and decoding).
virtual void update ()
 Update the emitter state, handles decoding and streaming buffers. This is called automatically by CAudioEngine.
virtual void play (bool fromBegin=true)
 Start or resume playback.
virtual void stop ()
 Stop playback.
virtual void pause ()
 Pause playback.
virtual void reset ()
 Reset emitter state to Stopped.
virtual void stopStream ()
 Stop streaming and decoding.
virtual void seek (float time)
 Seek to a specific time in the audio.
void stopWithFade (float time)
 Stop playback with a fade-out effect.
void playWithFade (float gain, float time)
 Start playback with a fade-in effect.
virtual void setLoop (bool loop)
 Enable or disable looping.
virtual bool isLoop ()
 Check if looping is enabled.
virtual void setPitch (float p)
 Set playback pitch.
virtual float getPitch ()
 Get current playback pitch.
virtual void setGain (float g)
 Set playback volume (gain).
virtual float getGain ()
 Get current playback volume (gain).
bool isPlaying ()
 Check if the sound is currently playing.
void setPosition (float x, float y, float z)
 Set 3D position of the sound source.
void setRollOff (float rollOff)
 Set roll-off factor for 3D distance attenuation.
float getCurrentTime ()
 Get current playback time in milliseconds.
IAudioDecodergetDecoder ()
 Get underlying audio decoder.

Static Public Member Functions

static IAudioDecoder::EDecoderType getDecode (const char *fileName)

Protected Member Functions

EStatus initEmitter ()
void updateSourceBuffer ()

Protected Attributes

std::string m_name
std::string m_fileName
bool m_cache
IAudioDecoderm_decoder
IMutexm_mutex
IStreamm_stream
ISoundSourcem_source
ISoundDriverm_driver
ISoundSource::ESourceState m_state
IAudioDecoder::EDecoderType m_decodeType
unsigned char ** m_buffer
unsigned char * m_decodeBuffer
float m_bufferLengthTime
int m_currentBuffer
int m_numBuffer
int m_bufferSize
int m_allocBufferSize
bool m_init
int m_initState
float m_gain
bool m_loop
float m_pitch
bool m_forcePlay
bool m_is3DSound
SVector3 m_position
float m_rollOff
float m_fadeGain
float m_fadeout
float m_stopWithFade
float m_playWithFade
float m_currentTime

Detailed Description

Audio emitter for playing and managing sound sources.

#include "SkylichtAudio.h"
// Initialize audio engine
// Create and play sound
Audio::CAudioEmitter* sound = engine->createAudioEmitter("SampleAudio/helicopter_loop.wav", true);
if (sound) {
sound->setLoop(true);
sound->setGain(0.8f);
sound->setPosition(0.0f, 0.0f, 0.0f);
sound->play();
}
// Stop with fade out
sound->stopWithFade(1000.0f); // 1 second fade out
Audio emitter for playing and managing sound sources.
Definition CAudioEmitter.h:70
virtual void play(bool fromBegin=true)
Start or resume playback.
virtual void setGain(float g)
Set playback volume (gain).
virtual void setLoop(bool loop)
Enable or disable looping.
void stopWithFade(float time)
Stop playback with a fade-out effect.
void setPosition(float x, float y, float z)
Set 3D position of the sound source.
The main audio engine singleton for managing audio playback and resources.
Definition CAudioEngine.h:84
CAudioEmitter * createAudioEmitter(IStream *stream, IAudioDecoder::EDecoderType decode)
Create an audio emitter from a stream.
static CAudioEngine * getSoundEngine()
Get the singleton instance of the audio engine.
void initSkylichtAudio()
Initialize the Skylicht Audio system.

Member Function Documentation

◆ getCurrentTime()

float Skylicht::Audio::CAudioEmitter::getCurrentTime ( )
inline

Get current playback time in milliseconds.

Returns
Time in milliseconds

◆ getDecoder()

IAudioDecoder * Skylicht::Audio::CAudioEmitter::getDecoder ( )
inline

Get underlying audio decoder.

Returns
Pointer to IAudioDecoder

◆ getDecoderType()

IAudioDecoder::EDecoderType Skylicht::Audio::CAudioEmitter::getDecoderType ( )
inline

Get decoder type.

Returns
The EDecoderType

◆ getGain()

virtual float Skylicht::Audio::CAudioEmitter::getGain ( )
inlinevirtual

Get current playback volume (gain).

Returns
Gain value

◆ getName()

const char * Skylicht::Audio::CAudioEmitter::getName ( )
inline

Get name of this emitter.

Returns
The name string

◆ getPitch()

virtual float Skylicht::Audio::CAudioEmitter::getPitch ( )
inlinevirtual

Get current playback pitch.

Returns
Pitch value

◆ getState()

ISoundSource::ESourceState Skylicht::Audio::CAudioEmitter::getState ( )
inline

Get current state of the sound source.

Returns
The ESourceState (Playing, Stopped, Paused, etc.)

◆ getStream()

IStream * Skylicht::Audio::CAudioEmitter::getStream ( )
inline

Get underlying stream.

Returns
Pointer to IStream

◆ init()

bool Skylicht::Audio::CAudioEmitter::init ( )

Initialize the emitter (streaming and decoding).

Returns
True if initialization is successful or in progress

◆ isLoop()

virtual bool Skylicht::Audio::CAudioEmitter::isLoop ( )
inlinevirtual

Check if looping is enabled.

Returns
True if looping is enabled

◆ isPlaying()

bool Skylicht::Audio::CAudioEmitter::isPlaying ( )

Check if the sound is currently playing.

Returns
True if playing

◆ play()

virtual void Skylicht::Audio::CAudioEmitter::play ( bool fromBegin = true)
virtual

Start or resume playback.

Parameters
fromBeginIf true, seek to the beginning before playing

◆ playWithFade()

void Skylicht::Audio::CAudioEmitter::playWithFade ( float gain,
float time )

Start playback with a fade-in effect.

Parameters
gainTarget gain after fade-in
timeDuration of the fade-in in milliseconds

◆ seek()

virtual void Skylicht::Audio::CAudioEmitter::seek ( float time)
virtual

Seek to a specific time in the audio.

Parameters
timeTime in milliseconds

◆ setGain()

virtual void Skylicht::Audio::CAudioEmitter::setGain ( float g)
virtual

Set playback volume (gain).

Parameters
gGain value (0.0f to 4.0f)

◆ setLoop()

virtual void Skylicht::Audio::CAudioEmitter::setLoop ( bool loop)
virtual

Enable or disable looping.

Parameters
loopTrue to enable looping

◆ setName()

void Skylicht::Audio::CAudioEmitter::setName ( const char * name)
inline

Set name for this emitter.

Parameters
nameThe name string

◆ setPitch()

virtual void Skylicht::Audio::CAudioEmitter::setPitch ( float p)
virtual

Set playback pitch.

Parameters
pPitch value (0.25f to 4.0f)

◆ setPosition()

void Skylicht::Audio::CAudioEmitter::setPosition ( float x,
float y,
float z )

Set 3D position of the sound source.

Parameters
xX coordinate
yY coordinate
zZ coordinate

◆ setRollOff()

void Skylicht::Audio::CAudioEmitter::setRollOff ( float rollOff)

Set roll-off factor for 3D distance attenuation.

Parameters
rollOffThe distance at which the sound starts to attenuate

◆ stopWithFade()

void Skylicht::Audio::CAudioEmitter::stopWithFade ( float time)

Stop playback with a fade-out effect.

Parameters
timeDuration of the fade-out in milliseconds

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