mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-09-24 15:54:12 +00:00
65 lines
No EOL
1.6 KiB
C++
65 lines
No EOL
1.6 KiB
C++
#ifndef NULLSOFT_VLB_OBJ_VLBDECODER_H
|
|
#define NULLSOFT_VLB_OBJ_VLBDECODER_H
|
|
#include "aacdecoderapi.h"
|
|
#include <bfc/dispatch.h>
|
|
|
|
class obj_vlbDecoder : public Dispatchable
|
|
{
|
|
protected:
|
|
obj_vlbDecoder() {}
|
|
~obj_vlbDecoder() {}
|
|
public:
|
|
int Open(DataIOControl *paacInput);
|
|
void Close();
|
|
long Synchronize(AACStreamParameters *paacStreamParameters);
|
|
long DecodeFrame(AACStreamParameters *paacStreamParameters);
|
|
void Flush();
|
|
size_t Read(void *buffer, size_t bufferlen);
|
|
|
|
enum
|
|
{
|
|
OBJ_VLBDECODER_OPEN = 0,
|
|
OBJ_VLBDECODER_CLOSE = 1,
|
|
OBJ_VLBDECODER_SYNCHRONIZE = 2,
|
|
OBJ_VLBDECODER_DECODEFRAME = 3,
|
|
OBJ_VLBDECODER_FLUSH = 4,
|
|
OBJ_VLBDECODER_READ = 5,
|
|
};
|
|
};
|
|
|
|
|
|
inline int obj_vlbDecoder::Open(DataIOControl *paacInput)
|
|
{
|
|
return _call(OBJ_VLBDECODER_OPEN, (int)0, paacInput);
|
|
}
|
|
|
|
inline void obj_vlbDecoder::Close()
|
|
{
|
|
_voidcall(OBJ_VLBDECODER_CLOSE);
|
|
}
|
|
|
|
inline long obj_vlbDecoder::Synchronize(AACStreamParameters *paacStreamParameters)
|
|
{
|
|
return _call(OBJ_VLBDECODER_SYNCHRONIZE, (long)ERR_SYNC_ERROR, paacStreamParameters);
|
|
}
|
|
|
|
inline long obj_vlbDecoder::DecodeFrame(AACStreamParameters *paacStreamParameters)
|
|
{
|
|
return _call(OBJ_VLBDECODER_DECODEFRAME, (long)ERR_INVALID_BITSTREAM, paacStreamParameters);
|
|
}
|
|
|
|
inline void obj_vlbDecoder::Flush()
|
|
{
|
|
_voidcall(OBJ_VLBDECODER_FLUSH);
|
|
}
|
|
|
|
inline size_t obj_vlbDecoder::Read(void *buffer, size_t bufferlen)
|
|
{
|
|
return _call(OBJ_VLBDECODER_READ, (size_t)0, buffer, bufferlen);
|
|
}
|
|
|
|
// {A9F0E37C-69BA-48d7-BFEB-1C85A9F5A2FA}
|
|
static const GUID obj_vlbDecoderGUID =
|
|
{ 0xa9f0e37c, 0x69ba, 0x48d7, { 0xbf, 0xeb, 0x1c, 0x85, 0xa9, 0xf5, 0xa2, 0xfa } };
|
|
|
|
#endif |