#ifndef _OPENSOUNDADDON_H
#define _OPENSOUNDADDON_H
#include <MediaDefs.h>
#include <MediaFormats.h>
#include <MediaAddOn.h>
#define SETTINGS_FILE "Media/oss_audio_settings"
class BEntry;
class OpenSoundAddOn :
public BMediaAddOn
{
public:
virtual ~OpenSoundAddOn(void);
explicit OpenSoundAddOn(image_id image);
public:
virtual status_t InitCheck(
const char ** out_failure_text);
virtual int32 CountFlavors(void);
virtual status_t GetFlavorAt(
int32 n,
const flavor_info ** out_info);
virtual BMediaNode * InstantiateNodeFor(
const flavor_info * info,
BMessage * config,
status_t * out_error);
virtual status_t GetConfigurationFor(
BMediaNode * your_node,
BMessage * into_message);
virtual bool WantsAutoStart(void);
virtual status_t AutoStart(
int in_count,
BMediaNode ** out_node,
int32 * out_internal_id,
bool * out_has_more);
private:
status_t RecursiveScan(const char* path, BEntry *rootEntry = NULL);
void SaveSettings(void);
void LoadSettings(void);
void RegisterMediaFormats(void);
status_t fInitCheckStatus;
BList fDevices;
BMessage fSettings;
};
extern "C" _EXPORT BMediaAddOn *make_media_addon(image_id you);
#endif