mirror of
https://github.com/Halofreak1990/XFXFramework
synced 2024-12-26 13:49:34 +01:00
99 lines
2.7 KiB
C
99 lines
2.7 KiB
C
|
/*****************************************************************************
|
||
|
* DynamicSoundEffectInstance.h *
|
||
|
* *
|
||
|
* XFX::Audio::DynamicSoundEffectInstance definition file *
|
||
|
* Copyright (c) XFX Team. All Rights Reserved *
|
||
|
*****************************************************************************/
|
||
|
#include <Audio/SoundEffectInstance.h>
|
||
|
#include <System/Event.h>
|
||
|
#include <System/TimeSpan.h>
|
||
|
|
||
|
using namespace System;
|
||
|
|
||
|
namespace XFX
|
||
|
{
|
||
|
namespace Audio
|
||
|
{
|
||
|
/**
|
||
|
* Provides properties, methods, and events for play back of the audio buffer.
|
||
|
*/
|
||
|
class DynamicSoundEffectInstance : SoundEffectInstance
|
||
|
{
|
||
|
private:
|
||
|
|
||
|
|
||
|
protected:
|
||
|
void Dispose(bool disposing);
|
||
|
|
||
|
public:
|
||
|
/**
|
||
|
* The event that occurs when the number of audio capture buffers awaiting playback is less than or equal to two.
|
||
|
*/
|
||
|
EventHandler BufferNeeded;
|
||
|
|
||
|
/**
|
||
|
* Initializes a new instance of this class, which creates a dynamic sound effect based on the specified sample rate and audio channel.
|
||
|
*
|
||
|
* @param sampleRate
|
||
|
* Sample rate, in Hertz (Hz), of audio content.
|
||
|
*
|
||
|
* @param channels
|
||
|
* Number of channels in the audio data.
|
||
|
*
|
||
|
* @throws System.ArgumentOutOfRangeException
|
||
|
*
|
||
|
*/
|
||
|
DynamicSoundEffectInstance(int sampleRate, AudioChannels_t channels);
|
||
|
|
||
|
/**
|
||
|
* Returns the sample duration based on the specified size of the audio buffer.
|
||
|
*
|
||
|
* @param sizeInBytes
|
||
|
* Size, in bytes, of the audio data.
|
||
|
*
|
||
|
* @throws System.ObjectDisposedException
|
||
|
*
|
||
|
* @throws System.ArgumentException
|
||
|
*
|
||
|
*/
|
||
|
TimeSpan GetSampleDuration(int sizeInBytes);
|
||
|
/**
|
||
|
* Returns the size of the audio buffer required to contain audio samples based on the specified duration.
|
||
|
*
|
||
|
* @param duration
|
||
|
* TimeSpan object that contains the duration of the audio sample.
|
||
|
*
|
||
|
* @throws System.ObjectDisposedException
|
||
|
*
|
||
|
* @throws System.ArgumentOutOfException
|
||
|
*
|
||
|
*/
|
||
|
int GetSampleSizeInBytes(TimeSpan duration);
|
||
|
/**
|
||
|
* Begins or resumes audio playback.
|
||
|
*
|
||
|
* @throws System.ObjectDisposedException
|
||
|
*/
|
||
|
void Play();
|
||
|
/**
|
||
|
* Submits an audio buffer for playback. Playback begins at the specified offset, and the byte count determines the size of the sample played.
|
||
|
*
|
||
|
* @param buffer
|
||
|
* Buffer that contains the audio data. The audio format must be PCM wave data.
|
||
|
*
|
||
|
* @param offset
|
||
|
* Offset, in bytes, to the starting position of the data.
|
||
|
*
|
||
|
* @param count
|
||
|
* Amount, in bytes, of data sent.
|
||
|
*
|
||
|
* @throws System.ObjectDisposedException
|
||
|
*
|
||
|
* @throws System.ArgumentException
|
||
|
*
|
||
|
*/
|
||
|
void SubmitBuffer(byte buffer[], int offset, int count);
|
||
|
};
|
||
|
}
|
||
|
}
|