You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
1.8 KiB
87 lines
1.8 KiB
//========= Copyright (c) 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef MILESBASE_H
|
|
#define MILESBASE_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
// windows.h / platform.h conflicts
|
|
#pragma warning(disable:4005)
|
|
#pragma warning(disable:4201) // nameless struct/union (mmssystem.h has this)
|
|
|
|
#include "miles/mss.h"
|
|
|
|
class CProvider
|
|
{
|
|
public:
|
|
CProvider( HPROVIDER hProvider );
|
|
|
|
static CProvider* FindProvider( HPROVIDER hProvider );
|
|
static void FreeAllProviders();
|
|
|
|
HPROVIDER GetProviderHandle();
|
|
|
|
private:
|
|
|
|
~CProvider();
|
|
|
|
private:
|
|
|
|
HPROVIDER m_hProvider;
|
|
|
|
static CProvider *s_pHead;
|
|
CProvider *m_pNext;
|
|
};
|
|
|
|
|
|
// This holds the handles and function pointers we want from a compressor/decompressor.
|
|
class ASISTRUCT
|
|
{
|
|
public:
|
|
ASISTRUCT();
|
|
~ASISTRUCT();
|
|
|
|
bool Init( void *pCallbackObject, const char *pInputFileType,
|
|
const char *pOutputFileType, AILASIFETCHCB cb );
|
|
void Shutdown();
|
|
int Process( void *pBuffer, unsigned int bufferSize );
|
|
bool IsActive() const;
|
|
unsigned int GetProperty( HPROPERTY attribute );
|
|
void Seek( int position );
|
|
|
|
public:
|
|
HPROPERTY OUTPUT_BITS;
|
|
HPROPERTY OUTPUT_CHANNELS;
|
|
HPROPERTY OUTPUT_RATE;
|
|
|
|
HPROPERTY INPUT_BITS;
|
|
HPROPERTY INPUT_CHANNELS;
|
|
HPROPERTY INPUT_RATE;
|
|
HPROPERTY INPUT_BLOCK_SIZE;
|
|
HPROPERTY POSITION;
|
|
|
|
private:
|
|
void Clear();
|
|
|
|
private:
|
|
ASI_STREAM_OPEN ASI_stream_open;
|
|
ASI_STREAM_PROCESS ASI_stream_process;
|
|
ASI_STREAM_CLOSE ASI_stream_close;
|
|
ASI_STREAM_SEEK ASI_stream_seek;
|
|
ASI_STREAM_PROPERTY ASI_stream_property;
|
|
|
|
HASISTREAM m_stream;
|
|
CProvider *m_pProvider;
|
|
};
|
|
|
|
|
|
extern void IncrementRefMiles();
|
|
extern void DecrementRefMiles();
|
|
|
|
#endif // MILESBASE_H
|