initial
This commit is contained in:
103
soundsystem/snd_wave_mixer_private.h
Normal file
103
soundsystem/snd_wave_mixer_private.h
Normal file
@@ -0,0 +1,103 @@
|
||||
//===== Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ======//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $Workfile: $
|
||||
// $Date: $
|
||||
// $NoKeywords: $
|
||||
//===========================================================================//
|
||||
|
||||
#ifndef SND_WAVE_MIXER_PRIVATE_H
|
||||
#define SND_WAVE_MIXER_PRIVATE_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "soundsystem/snd_audio_source.h"
|
||||
#include "soundsystem/snd_device.h"
|
||||
#include "snd_wave_mixer.h"
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Linear iterator over source data.
|
||||
// Keeps track of position in source, and maintains necessary buffers
|
||||
//-----------------------------------------------------------------------------
|
||||
class CWaveData
|
||||
{
|
||||
public:
|
||||
virtual ~CWaveData( void ) {}
|
||||
virtual CAudioSourceWave &Source( void ) = 0;
|
||||
virtual int ReadSourceData( void **pData, int sampleIndex, int sampleCount, bool forward = true ) = 0;
|
||||
};
|
||||
|
||||
class CAudioMixerWave : public CAudioMixer
|
||||
{
|
||||
public:
|
||||
CAudioMixerWave( CWaveData *data );
|
||||
virtual ~CAudioMixerWave( void );
|
||||
|
||||
virtual bool MixDataToDevice( IAudioDevice *pDevice, channel_t *pChannel, int startSample, int sampleCount, int outputRate, bool forward = true );
|
||||
virtual void IncrementSamples( channel_t *pChannel, int startSample, int sampleCount,int outputRate, bool forward = true );
|
||||
virtual bool SkipSamples( IAudioDevice *pDevice, channel_t *pChannel, int startSample, int sampleCount,int outputRate, bool forward = true );
|
||||
virtual void Mix( IAudioDevice *pDevice,
|
||||
channel_t *pChannel,
|
||||
void *pData,
|
||||
int outputOffset,
|
||||
int inputOffset,
|
||||
fixedint fracRate,
|
||||
int outCount,
|
||||
int timecompress,
|
||||
bool forward = true ) = 0;
|
||||
|
||||
virtual int GetOutputData( void **pData, int samplePosition, int sampleCount, bool forward = true );
|
||||
|
||||
virtual CAudioSource *GetSource( void );
|
||||
|
||||
virtual int GetSamplePosition( void );
|
||||
virtual int GetScubPosition( void );
|
||||
|
||||
virtual bool SetSamplePosition( int position, bool scrubbing = false );
|
||||
virtual void SetLoopPosition( int position );
|
||||
virtual int GetStartPosition( void );
|
||||
|
||||
virtual bool GetActive( void );
|
||||
virtual void SetActive( bool active );
|
||||
|
||||
virtual void SetModelIndex( int index );
|
||||
virtual int GetModelIndex( void ) const;
|
||||
|
||||
virtual void SetDirection( bool forward );
|
||||
virtual bool GetDirection( void ) const;
|
||||
|
||||
virtual void SetAutoDelete( bool autodelete );
|
||||
virtual bool GetAutoDelete( void ) const;
|
||||
|
||||
virtual void SetVolume( float volume );
|
||||
virtual channel_t *GetChannel();
|
||||
|
||||
protected:
|
||||
int m_sample;
|
||||
int m_absoluteSample;
|
||||
int m_scubSample;
|
||||
int m_startpos;
|
||||
int m_loop;
|
||||
int m_fracOffset;
|
||||
CWaveData *m_pData;
|
||||
|
||||
int m_absoluteStartPos;
|
||||
|
||||
bool m_bActive;
|
||||
// Associated playback model in faceposer
|
||||
int m_nModelIndex;
|
||||
|
||||
bool m_bForward;
|
||||
|
||||
bool m_bAutoDelete;
|
||||
|
||||
channel_t *m_pChannel;
|
||||
};
|
||||
|
||||
|
||||
#endif // SND_WAVE_MIXER_PRIVATE_H
|
||||
Reference in New Issue
Block a user