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