mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-09-19 03:56:10 +08:00
First version of the SOurce SDK 2013
This commit is contained in:
64
public/vaudio/ivaudio.h
Normal file
64
public/vaudio/ivaudio.h
Normal file
@ -0,0 +1,64 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef IVAUDIO_H
|
||||
#define IVAUDIO_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
class IAudioStreamEvent
|
||||
{
|
||||
public:
|
||||
// called by the stream to request more data
|
||||
// seek the source to position "offset"
|
||||
// -1 indicates previous position
|
||||
// copy the data to pBuffer and return the number of bytes copied
|
||||
// you may return less than bytesRequested if the end of the stream
|
||||
// is encountered.
|
||||
virtual int StreamRequestData( void *pBuffer, int bytesRequested, int offset ) = 0;
|
||||
};
|
||||
|
||||
|
||||
class IAudioStream
|
||||
{
|
||||
public:
|
||||
virtual ~IAudioStream() {}
|
||||
|
||||
// Decode another bufferSize output bytes from the stream
|
||||
// returns number of bytes decoded
|
||||
virtual int Decode( void *pBuffer, unsigned int bufferSize ) = 0;
|
||||
|
||||
// output sampling bits (8/16)
|
||||
virtual int GetOutputBits() = 0;
|
||||
// output sampling rate in Hz
|
||||
virtual int GetOutputRate() = 0;
|
||||
// output channels (1=mono,2=stereo)
|
||||
virtual int GetOutputChannels() = 0;
|
||||
|
||||
// seek
|
||||
virtual unsigned int GetPosition() = 0;
|
||||
|
||||
// NOTE: BUGBUG: Only supports seeking forward currently!
|
||||
virtual void SetPosition( unsigned int position ) = 0;
|
||||
|
||||
// reset?
|
||||
};
|
||||
|
||||
|
||||
#define VAUDIO_INTERFACE_VERSION "VAudio002"
|
||||
class IVAudio
|
||||
{
|
||||
public:
|
||||
virtual ~IVAudio() {}
|
||||
|
||||
virtual IAudioStream *CreateMP3StreamDecoder( IAudioStreamEvent *pEventHandler ) = 0;
|
||||
virtual void DestroyMP3StreamDecoder( IAudioStream *pDecoder ) = 0;
|
||||
};
|
||||
|
||||
|
||||
#endif // IVAUDIO_H
|
Reference in New Issue
Block a user