deargui-vpl/ref/virtools/Includes/CKSoundReader.h

66 lines
1.4 KiB
C++

/*************************************************************************/
/* File : CKSoundReader.h */
/* Author : Nicolas Galinotti */
/* */
/* Virtools SDK */
/* Copyright (c) Virtools 2000, All Rights Reserved. */
/*************************************************************************/
#ifndef CKSOUNDREADER_H
#define CKSOUNDREADER_H
#include "CKDataReader.h"
#include "CKSoundManager.h"
//
typedef enum CK_SOUNDREADER_ERROR {
CKSOUND_READER_OK = 0,
CKSOUND_READER_GENERICERR = -1,
CKSOUND_READER_EOF = -2,
CKSOUND_READER_NO_DATA_READY= -3
} CK_SOUNDREADER_ERROR;
//
class CKSoundReader: public CKDataReader
{
protected:
CK_DATAREADER_FLAGS m_Flags;
public:
void* m_SubFileMem; //Used to keep data in memory when read from VxBigfile files when sound is streamed
public:
virtual ~CKSoundReader(){}
virtual CK_DATAREADER_FLAGS GetFlags() {return m_Flags; }
virtual CKERROR OpenFile(char *file) = 0;
virtual CKERROR Decode() = 0;
virtual CKERROR GetDataBuffer(BYTE **buf, int *size) = 0;
virtual CKERROR GetWaveFormat(CKWaveFormat *wfe) = 0;
virtual int GetDataSize() = 0;
virtual int GetDuration() = 0;
virtual CKERROR Play() = 0;
virtual CKERROR Stop() = 0;
virtual CKERROR Pause() = 0;
virtual CKERROR Resume() = 0;
virtual CKERROR Seek(int pos) = 0;
virtual CKERROR ReadMemory(void* memory, int size){return CK_OK;};
};
#endif