1/***********************************************************************
2 * AUTHOR: Marcus Overhagen
3 *   FILE: TrackReader.h
4 *  DESCR: The undocumented BTrackReader class,
5 *         used by BSound and the GameSound classes
6 ***********************************************************************/
7
8#if !defined(_TRACK_READER_H_)
9#define _TRACK_READER_H_
10
11#include <MediaTrack.h>
12
13class BMediaFile;
14
15namespace BPrivate
16{
17
18class BTrackReader
19{
20public:
21	BTrackReader(BMediaTrack *, media_raw_audio_format const &);
22	BTrackReader(BFile *, media_raw_audio_format const &);
23	~BTrackReader();
24
25	status_t 	InitCheck();
26	int64 		CountFrames(void);
27	int32 		FrameSize(void);
28	status_t 	ReadFrames(void *in_buffer, int32 frame_count);
29	status_t 	SeekToFrame(int64 *in_out_frame);
30
31	BMediaTrack * 					Track(void);
32	const media_raw_audio_format & 	Format(void) const;
33
34private:
35	void SetToTrack(BMediaTrack *track);
36
37private:
38	int32	fFrameSize;
39	uint8 *	fBuffer;
40	int32 	fBufferOffset;
41	int32	fBufferUsedSize;
42	BMediaFile *fMediaFile;
43	BMediaTrack *fMediaTrack;
44	media_raw_audio_format fFormat;
45};
46
47}; //namespace BPrivate
48
49#endif
50