11539Srgrimes/*********************************************************************** 21539Srgrimes * AUTHOR: Marcus Overhagen 31539Srgrimes * FILE: TrackReader.h 41539Srgrimes * DESCR: The undocumented BTrackReader class, 51539Srgrimes * used by BSound and the GameSound classes 61539Srgrimes ***********************************************************************/ 71539Srgrimes 81539Srgrimes#if !defined(_TRACK_READER_H_) 91539Srgrimes#define _TRACK_READER_H_ 101539Srgrimes 111539Srgrimes#include <MediaTrack.h> 121539Srgrimes 131539Srgrimesclass BMediaFile; 141539Srgrimes 151539Srgrimesnamespace BPrivate 161539Srgrimes{ 171539Srgrimes 18203964Simpclass BTrackReader 191539Srgrimes{ 201539Srgrimespublic: 211539Srgrimes BTrackReader(BMediaTrack *, media_raw_audio_format const &); 221539Srgrimes BTrackReader(BFile *, media_raw_audio_format const &); 231539Srgrimes ~BTrackReader(); 241539Srgrimes 251539Srgrimes status_t InitCheck(); 261539Srgrimes int64 CountFrames(void); 271539Srgrimes int32 FrameSize(void); 281539Srgrimes status_t ReadFrames(void *in_buffer, int32 frame_count); 291539Srgrimes status_t SeekToFrame(int64 *in_out_frame); 301539Srgrimes 311539Srgrimes BMediaTrack * Track(void); 321539Srgrimes const media_raw_audio_format & Format(void) const; 331539Srgrimes 341539Srgrimesprivate: 355207Snate void SetToTrack(BMediaTrack *track); 3650473Speter 371539Srgrimesprivate: 381539Srgrimes int32 fFrameSize; 391539Srgrimes uint8 * fBuffer; 401539Srgrimes int32 fBufferOffset; 411539Srgrimes int32 fBufferUsedSize; 42102287Speter BMediaFile *fMediaFile; 431539Srgrimes BMediaTrack *fMediaTrack; 441539Srgrimes media_raw_audio_format fFormat; 451539Srgrimes}; 4693032Simp 471539Srgrimes}; //namespace BPrivate 481539Srgrimes 491539Srgrimes#endif 50