haiku/src/kits/media/TrackReader.h

50 lines
1.1 KiB
C++

/***********************************************************************
* AUTHOR: Marcus Overhagen
* FILE: TrackReader.h
* DESCR: The undocumented BTrackReader class,
* used by BSound and the GameSound classes
***********************************************************************/
#if !defined(_TRACK_READER_H_)
#define _TRACK_READER_H_
#include <MediaTrack.h>
class BMediaFile;
namespace BPrivate
{
class BTrackReader
{
public:
BTrackReader(BMediaTrack *, media_raw_audio_format const &);
BTrackReader(BFile *, media_raw_audio_format const &);
~BTrackReader();
status_t InitCheck();
int64 CountFrames(void);
int32 FrameSize(void);
status_t ReadFrames(void *in_buffer, int32 frame_count);
status_t SeekToFrame(int64 *in_out_frame);
BMediaTrack * Track(void);
const media_raw_audio_format & Format(void) const;
private:
void SetToTrack(BMediaTrack *track);
private:
int32 fFrameSize;
uint8 * fBuffer;
int32 fBufferOffset;
int32 fBufferUsedSize;
BMediaFile *fMediaFile;
BMediaTrack *fMediaTrack;
media_raw_audio_format fFormat;
};
}; //namespace BPrivate
#endif