1*5fa5e5feSStephan Aßmus /* 2*5fa5e5feSStephan Aßmus * Copyright 2007, Haiku. All rights reserved. 3*5fa5e5feSStephan Aßmus * Distributed under the terms of the MIT License. 4*5fa5e5feSStephan Aßmus * 5*5fa5e5feSStephan Aßmus * Authors: 6*5fa5e5feSStephan Aßmus * Stephan Aßmus <superstippi@gmx.de> 7*5fa5e5feSStephan Aßmus */ 8*5fa5e5feSStephan Aßmus #ifndef MEDIA_TRACK_AUDIO_SUPPLIER_H 9*5fa5e5feSStephan Aßmus #define MEDIA_TRACK_AUDIO_SUPPLIER_H 10*5fa5e5feSStephan Aßmus 11*5fa5e5feSStephan Aßmus #include "AudioSupplier.h" 12*5fa5e5feSStephan Aßmus 13*5fa5e5feSStephan Aßmus class BMediaTrack; 14*5fa5e5feSStephan Aßmus 15*5fa5e5feSStephan Aßmus class MediaTrackAudioSupplier : public AudioSupplier { 16*5fa5e5feSStephan Aßmus public: 17*5fa5e5feSStephan Aßmus MediaTrackAudioSupplier(BMediaTrack* track); 18*5fa5e5feSStephan Aßmus virtual ~MediaTrackAudioSupplier(); 19*5fa5e5feSStephan Aßmus 20*5fa5e5feSStephan Aßmus virtual media_format Format() const; 21*5fa5e5feSStephan Aßmus virtual status_t ReadFrames(void* buffer, int64* framesRead, 22*5fa5e5feSStephan Aßmus bigtime_t* performanceTime); 23*5fa5e5feSStephan Aßmus virtual status_t SeekToTime(bigtime_t* performanceTime); 24*5fa5e5feSStephan Aßmus 25*5fa5e5feSStephan Aßmus virtual bigtime_t Position() const 26*5fa5e5feSStephan Aßmus { return fPerformanceTime; } 27*5fa5e5feSStephan Aßmus virtual bigtime_t Duration() const 28*5fa5e5feSStephan Aßmus { return fDuration; } 29*5fa5e5feSStephan Aßmus private: 30*5fa5e5feSStephan Aßmus BMediaTrack* fMediaTrack; 31*5fa5e5feSStephan Aßmus 32*5fa5e5feSStephan Aßmus media_format fFormat; 33*5fa5e5feSStephan Aßmus 34*5fa5e5feSStephan Aßmus bigtime_t fPerformanceTime; 35*5fa5e5feSStephan Aßmus bigtime_t fDuration; 36*5fa5e5feSStephan Aßmus }; 37*5fa5e5feSStephan Aßmus 38*5fa5e5feSStephan Aßmus #endif // MEDIA_TRACK_AUDIO_SUPPLIER_H 39