#ifndef LOCAL_DEVICE_ADDON_H
#define LOCAL_DEVICE_ADDON_H

#include <bluetooth/LocalDevice.h>
#include <bluetooth/RemoteDevice.h>

class LocalDeviceAddOn {

public:

	virtual const char* GetName()=0;

	virtual status_t	InitCheck(LocalDevice* lDevice)=0;

	virtual const char* GetActionDescription()=0;
	virtual status_t	TakeAction(LocalDevice* lDevice)=0;

	virtual const char* GetActionOnRemoteDescription()=0;
	virtual status_t 	TakeActionOnRemote(LocalDevice* lDevice, RemoteDevice* rDevice)=0;

	virtual const char* GetOverridenPropertiesDescription()=0;
	virtual BMessage*	OverridenProperties(LocalDevice* lDevice, const char* property)=0;

};

#define INSTANTIATE_LOCAL_DEVICE_ADDON(addon) LocalDeviceAddOn* InstantiateLocalDeviceAddOn(){return new addon();}
#define EXPORT_LOCAL_DEVICE_ADDON extern "C" __declspec(dllexport) LocalDeviceAddOn* InstantiateLocalDeviceAddOn();



#endif