66 lines
1.4 KiB
C++
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
|