#ifndef __DeviceRegistry__
#define __DeviceRegistry__

#ifndef DEVREG_DLL 
    #ifdef DEVICEREGISTRY_BUILD
	    #define DEVREG_DLL __declspec(dllexport)
    #else
	    #define DEVREG_DLL __declspec(dllimport)
        #pragma comment(lib, "DeviceRegistry.lib")
    #endif
#endif


#include "../Core/Device.h"


class DEVREG_DLL DeviceRegistry {
public:
	~DeviceRegistry();

	static DeviceRegistry& instance();

	Device* acquireDevice(const wchar_t* deviceName);
    void    releaseDevice(Device** device);

	const wchar_t* getDeviceList();

private:
	DeviceRegistry();

	class _DeviceRegistry;
	_DeviceRegistry* _deviceRegistry;
};



#endif