return _sdi;
}
+void Device::use(SigSession *owner) throw(QString)
+{
+ DevInst::use(owner);
+
+ sr_session_new();
+
+ assert(_sdi);
+ sr_dev_open(_sdi);
+ if (sr_session_dev_add(_sdi) != SR_OK)
+ throw QString(tr("Failed to use device."));
+}
+
+void Device::release()
+{
+ if (_owner) {
+ DevInst::release();
+ sr_session_destroy();
+ }
+
+ sr_dev_close(_sdi);
+}
+
std::string Device::format_device_title() const
{
ostringstream s;
return s.str();
}
+bool Device::is_trigger_enabled() const
+{
+ assert(_sdi);
+ for (const GSList *l = _sdi->channels; l; l = l->next) {
+ const sr_channel *const p = (const sr_channel *)l->data;
+ assert(p);
+ if (p->trigger && p->trigger[0] != '\0')
+ return true;
+ }
+ return false;
+}
+
} // device
} // pv