1/*
2 * Copyright (c) 2002, Jerome Duval (jerome.duval@free.fr)
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef MULTI_AUDIO_ADDON_H
6#define MULTI_AUDIO_ADDON_H
7
8
9#include <MediaDefs.h>
10#include <MediaAddOn.h>
11#include <Message.h>
12
13class BEntry;
14
15
16class MultiAudioAddOn : public BMediaAddOn {
17public:
18						MultiAudioAddOn(image_id image);
19	virtual				~MultiAudioAddOn();
20
21	virtual	status_t	InitCheck(const char** _failureText);
22	virtual	int32		CountFlavors();
23	virtual	status_t	GetFlavorAt(int32 i, const flavor_info** _info);
24	virtual	BMediaNode*	InstantiateNodeFor(const flavor_info* info,
25							BMessage* config, status_t* _error);
26	virtual	status_t	GetConfigurationFor(BMediaNode* node,
27							BMessage* message);
28	virtual	bool		WantsAutoStart();
29	virtual	status_t	AutoStart(int count, BMediaNode** _node,
30							int32* _internalID, bool* _hasMore);
31
32private:
33			status_t	_RecursiveScan(const char* path, BEntry* rootEntry = NULL,
34							uint32 depth = 0);
35			void		_SaveSettings();
36			void		_LoadSettings();
37
38private:
39	status_t 		fInitStatus;
40	BList			fDevices;
41
42	BMessage		fSettings;
43		// loaded from settings directory
44};
45
46extern "C" BMediaAddOn* make_media_addon(image_id you);
47
48#endif	// MULTI_AUDIO_ADDON_H
49