winamp/Src/Plugins/Input/in_mp3/ifc_mpeg_stream_reader.h
2024-09-24 14:54:57 +02:00

45 lines
1.1 KiB
C++

#pragma once
#include <bfc/dispatch.h>
class ifc_mpeg_stream_reader : public Dispatchable
{
protected:
ifc_mpeg_stream_reader() {}
~ifc_mpeg_stream_reader() {}
public:
int MPEGStream_Peek( void *buffer, size_t to_read, size_t *bytes_read );
int MPEGStream_Read( void *buffer, size_t to_read, size_t *bytes_read );
int MPEGStream_EOF();
float MPEGStream_Gain();
DISPATCH_CODES
{
MPEGSTREAM_PEEK = 0,
MPEGSTREAM_READ = 1,
MPEGSTREAM_EOF = 2,
MPEGSTREAM_GAIN = 3,
};
};
inline int ifc_mpeg_stream_reader::MPEGStream_Peek( void *buffer, size_t to_read, size_t *bytes_read )
{
return _call( MPEGSTREAM_PEEK, (int)1, buffer, to_read, bytes_read );
}
inline int ifc_mpeg_stream_reader::MPEGStream_Read( void *buffer, size_t to_read, size_t *bytes_read )
{
return _call( MPEGSTREAM_READ, (int)1, buffer, to_read, bytes_read );
}
inline int ifc_mpeg_stream_reader::MPEGStream_EOF()
{
return _call( MPEGSTREAM_EOF, (int)true );
}
inline float ifc_mpeg_stream_reader::MPEGStream_Gain()
{
return _call( MPEGSTREAM_GAIN, (float)1.0f );
}