1/*	Copyright 2000-2008, Ingo Weinhold <ingo_weinhold@gmx.de>,
2 *	All Rights Reserved. Distributed under the terms of the MIT license.
3 */
4#ifndef AUDIO_SUPPLIER_H
5#define AUDIO_SUPPLIER_H
6
7
8/*!	This class is an interface used by the AudioProducer to retreive the
9	audio data to be played. */
10
11
12#include <MediaDefs.h>
13
14
15class AudioProducer;
16
17class AudioSupplier {
18public:
19								AudioSupplier();
20	virtual						~AudioSupplier();
21
22	virtual	void				SetAudioProducer(AudioProducer* producer);
23
24	virtual	status_t			InitCheck() const;
25
26	virtual bigtime_t			InitialLatency() const = 0;
27
28	virtual	status_t			GetFrames(void* buffer, int64 frameCount,
29									bigtime_t startTime,
30									bigtime_t endTime) = 0;
31
32	virtual	void				SetFormat(const media_format& format) = 0;
33
34protected:
35	AudioProducer*				fAudioProducer;
36};
37
38
39#endif	// AUDIO_SUPPLIER_H
40