]> sigrok.org Git - pulseview.git/blobdiff - pv/devicemanager.cpp
device manager: Move filter for supported devices to the scan routine
[pulseview.git] / pv / devicemanager.cpp
index 58f507c92fae06c2cd2b84dfce474a5dfc5638de..ac6ce6fb433da3fa29eefa9ba551c043c70f63b5 100644 (file)
@@ -101,6 +101,18 @@ DeviceManager::driver_scan(
 
        assert(driver);
 
+       /*
+        * 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 (DMMs, sensors, etc).
+        */
+       const auto keys = driver->config_keys();
+       bool supported_device = keys.count(ConfigKey::LOGIC_ANALYZER) |
+               keys.count(ConfigKey::OSCILLOSCOPE);
+       if (!supported_device)
+               return driver_devices;
+
        // Remove any device instances from this driver from the device
        // list. They will not be valid after the scan.
        devices_.remove_if([&](shared_ptr<devices::HardwareDevice> device) {