34 lines
833 B
C
34 lines
833 B
C
|
#ifndef SMXDeviceSearch_h
|
||
|
#define SMXDeviceSearch_h
|
||
|
|
||
|
#include <memory>
|
||
|
#include <string>
|
||
|
#include <vector>
|
||
|
#include <set>
|
||
|
#include <map>
|
||
|
using namespace std;
|
||
|
|
||
|
#include "Helpers.h"
|
||
|
|
||
|
namespace SMX {
|
||
|
|
||
|
class SMXDeviceSearch
|
||
|
{
|
||
|
public:
|
||
|
// Return a list of connected devices. If the same device stays connected and this
|
||
|
// is called multiple times, the same handle will be returned.
|
||
|
vector<shared_ptr<AutoCloseHandle>> GetDevices(wstring &error);
|
||
|
|
||
|
// After a device is opened and then closed, tell this class that the device was closed.
|
||
|
// We'll discard our record of it, so we'll notice a new device plugged in on the same
|
||
|
// path.
|
||
|
void DeviceWasClosed(shared_ptr<AutoCloseHandle> pDevice);
|
||
|
|
||
|
private:
|
||
|
set<wstring> m_setLastDevicePaths;
|
||
|
map<wstring, shared_ptr<AutoCloseHandle>> m_Devices;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
#endif
|