}
HardwareDevice::~HardwareDevice() {
- if (device_open_)
- device_->close();
-
- if (session_)
- session_->remove_devices();
+ close();
}
string HardwareDevice::full_name() const {
return join(parts, " ");
}
-void HardwareDevice::create() {
- // Open the device
+void HardwareDevice::open() {
+ if (device_open_)
+ close();
+
try {
device_->open();
} catch(const sigrok::Error &e) {
session_->add_device(device_);
}
+void HardwareDevice::close() {
+ if (device_open_)
+ device_->close();
+
+ if (session_)
+ session_->remove_devices();
+
+ device_open_ = false;
+}
+
} // namespace devices
} // namespace pv