X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdialogs%2Fconnect.cpp;h=284ce07240c2a279d247252aac081cab66333d07;hp=03a03f26aed6c118fe6b7833a4dfabf47733b692;hb=3093830343c9d3b3220c2874a942c843d7a05cf7;hpb=9663c82b7fa8ec54ece3045b41bbc4a53db8bb0b diff --git a/pv/dialogs/connect.cpp b/pv/dialogs/connect.cpp index 03a03f2..284ce07 100644 --- a/pv/dialogs/connect.cpp +++ b/pv/dialogs/connect.cpp @@ -63,11 +63,30 @@ Connect::Connect(QWidget *parent) : void Connect::populate_drivers() { + const int *hwopts; struct sr_dev_driver **drivers = sr_driver_list(); - for (int i = 0; drivers[i]; ++i) - _drivers.addItem(QString("%1 (%2)").arg( - drivers[i]->longname).arg(drivers[i]->name), - qVariantFromValue((void*)drivers[i])); + for (int i = 0; drivers[i]; ++i) { + /** + * We currently only support devices that can deliver + * samples at a fixed samplerate i.e. oscilloscopes and + * logic analysers. + * @todo Add support for non-monotonic devices i.e. DMMs + * and sensors. + */ + bool supported_device = false; + if ((sr_config_list(drivers[i], SR_CONF_DEVICE_OPTIONS, + (const void **)&hwopts, NULL) == SR_OK) && hwopts) + for (int j = 0; hwopts[j]; j++) + if(hwopts[j] == SR_CONF_SAMPLERATE) { + supported_device = true; + break; + } + + if(supported_device) + _drivers.addItem(QString("%1 (%2)").arg( + drivers[i]->longname).arg(drivers[i]->name), + qVariantFromValue((void*)drivers[i])); + } } void Connect::device_selected(int index)