LoadedDeviceAdapter::LoadedDeviceAdapter(const std::string& name, const std::string& filename) : name_(name), InitializeModuleData_(0), CreateDevice_(0), DeleteDevice_(0), GetModuleVersion_(0), GetDeviceInterfaceVersion_(0), GetNumberOfDevices_(0), GetDeviceName_(0), GetDeviceType_(0), GetDeviceDescription_(0) { try { module_ = boost::make_shared<LoadedModule>(filename); } catch (const CMMError& e) { module_.reset(); throw CMMError("Failed to load device adapter " + ToQuotedString(name_), e); } try { CheckInterfaceVersion(); } catch (const CMMError& e) { module_.reset(); throw CMMError("Failed to load device adapter " + ToQuotedString(name_) + " from " + ToQuotedString(filename), e); } InitializeModuleData(); }
int Hub::DetectInstalledDevices() { ClearInstalledDevices(); InitializeModuleData(); char hubname[MM::MaxStrLength]; GetName(hubname); for(unsigned i = 0; i < GetNumberOfDevices(); i++) { char devname[MM::MaxStrLength]; if(GetDeviceName(i, devname, MM::MaxStrLength) && strcmp(hubname, devname) != 0) { MM::Device* dev = CreateDevice(devname); AddInstalledDevice(dev); } } return DEVICE_OK; }