xref: /haiku/src/kits/media/TrackReader.h (revision 93aeb8c3bc3f13cb1f282e3e749258a23790d947)
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 namespace BPrivate
12 {
13 
14 class BTrackReader
15 {
16 public:
17 	BTrackReader(BMediaTrack *, media_raw_audio_format const &);
18 	BTrackReader(BFile *, media_raw_audio_format const &);
19 	~BTrackReader();
20 
21 	status_t 	InitCheck();
22 	int64 		CountFrames(void);
23 	int32 		FrameSize(void);
24 	status_t 	ReadFrames(void *in_buffer, int32 frame_count);
25 	status_t 	SeekToFrame(int64 *in_out_frame);
26 
27 	BMediaTrack * 					Track(void);
28 	const media_raw_audio_format & 	Format(void) const;
29 
30 private:
31 	void SetToTrack(BMediaTrack *track);
32 
33 private:
34 	int32	fFrameSize;
35 	uint8 *	fBuffer;
36 	int32 	fBufferOffset;
37 	int32	fBufferUsedSize;
38 	BMediaFile *fMediaFile;
39 	BMediaTrack *fMediaTrack;
40 	media_raw_audio_format fFormat;
41 };
42 
43 }; //namespace BPrivate
44 
45 #endif
46