1/*
2 * ESounD media addon for BeOS
3 *
4 * Copyright (c) 2006 François Revol (revol@free.fr)
5 *
6 * Based on Multi Audio addon for Haiku,
7 * Copyright (c) 2002, 2003 Jerome Duval (jerome.duval@free.fr)
8 *
9 * All rights reserved.
10 * Redistribution and use in source and binary forms, with or without modification,
11 * are permitted provided that the following conditions are met:
12 *
13 * - Redistributions of source code must retain the above copyright notice,
14 *   this list of conditions and the following disclaimer.
15 * - Redistributions in binary form must reproduce the above copyright notice,
16 *   this list of conditions and the following disclaimer in the documentation
17 *   and/or other materials provided with the distribution.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
25 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 *
30 */
31#ifndef _ESDSINK_ADDON_H
32#define _ESDSINK_ADDON_H
33
34#include <MediaDefs.h>
35#include <MediaAddOn.h>
36
37#define SETTINGS_FILE					"Media/esound_sink_settings"
38
39class ESDSinkAddOn :
40    public BMediaAddOn
41{
42public:
43	virtual ~ESDSinkAddOn(void);
44	explicit ESDSinkAddOn(image_id image);
45
46/**************************/
47/* begin from BMediaAddOn */
48public:
49virtual	status_t InitCheck(
50				const char ** out_failure_text);
51virtual	int32 CountFlavors(void);
52virtual	status_t GetFlavorAt(
53				int32 n,
54				const flavor_info ** out_info);
55virtual	BMediaNode * InstantiateNodeFor(
56				const flavor_info * info,
57				BMessage * config,
58				status_t * out_error);
59virtual	status_t GetConfigurationFor(
60				BMediaNode * your_node,
61				BMessage * into_message);
62/*
63virtual	bool WantsAutoStart(void);
64virtual	status_t AutoStart(
65				int in_count,
66				BMediaNode ** out_node,
67				int32 * out_internal_id,
68				bool * out_has_more);
69*/
70
71/* end from BMediaAddOn */
72/************************/
73
74private:
75	status_t SetupDefaultSinks();
76	void SaveSettings();
77	void LoadSettings();
78
79	status_t 		fInitCheckStatus;
80	BList			fDevices;
81
82	BMessage fSettings;				// settings loaded from settings directory
83};
84
85extern "C" _EXPORT BMediaAddOn *make_media_addon( image_id you );
86
87#endif /* _ESDSINK_ADDON_H */
88