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