1/*
2 * Copyright 2010, Stephan A��mus <superstippi@gmx.de>. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef TRACK_SUPPLIER_H
6#define TRACK_SUPPLIER_H
7
8
9#include <MediaDefs.h>
10#include <MediaFormats.h>
11
12#include "AudioTrackSupplier.h"
13#include "SubTitles.h"
14#include "VideoTrackSupplier.h"
15
16
17class BMessage;
18class BString;
19
20
21class TrackSupplier {
22public:
23								TrackSupplier();
24	virtual						~TrackSupplier();
25
26	virtual	status_t			InitCheck() = 0;
27
28	virtual	status_t			GetFileFormatInfo(
29									media_file_format* fileFormat) = 0;
30	virtual	status_t			GetCopyright(BString* copyright) = 0;
31	virtual	status_t			GetMetaData(BMessage* metaData) = 0;
32
33	virtual	int32				CountAudioTracks() = 0;
34	virtual	int32				CountVideoTracks() = 0;
35	virtual	int32				CountSubTitleTracks() = 0;
36
37	virtual	status_t			GetAudioMetaData(int32 index,
38									BMessage* metaData) = 0;
39	virtual	status_t			GetVideoMetaData(int32 index,
40									BMessage* metaData) = 0;
41
42	virtual	AudioTrackSupplier*	CreateAudioTrackForIndex(int32 index) = 0;
43	virtual	VideoTrackSupplier*	CreateVideoTrackForIndex(int32 index) = 0;
44	virtual	const SubTitles*	SubTitleTrackForIndex(int32 index) = 0;
45};
46
47
48#endif // TRACK_SUPPLIER_H
49