X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdevicemanager.h;h=0a8f2e0dca7d24fedb53cf7b734d321320ff180a;hb=6842b5fc481eb43d9aeea81f17e211820d6dc405;hp=070c3cc7d94ef202e52968333d3ec608589768bc;hpb=107ca6d350b51186d12dac9273f6ed130b3f5dd7;p=pulseview.git diff --git a/pv/devicemanager.h b/pv/devicemanager.h index 070c3cc..0a8f2e0 100644 --- a/pv/devicemanager.h +++ b/pv/devicemanager.h @@ -24,13 +24,21 @@ #include #include +#include +#include +#include struct sr_context; struct sr_dev_driver; -struct sr_dev_inst; namespace pv { +class SigSession; + +namespace device { +class Device; +} + class DeviceManager { public: @@ -38,25 +46,31 @@ public: ~DeviceManager(); - const std::list& devices() const; + const std::list< std::shared_ptr >& + devices() const; - std::list driver_scan( + std::list< std::shared_ptr > driver_scan( struct sr_dev_driver *const driver, GSList *const drvopts = NULL); + const std::shared_ptr find_device_from_info( + const std::map search_info); + private: void init_drivers(); - static void release_devices(); + void release_devices(); void scan_all_drivers(); - static bool compare_devices(const sr_dev_inst *const a, - const sr_dev_inst *const b); + void release_driver(struct sr_dev_driver *const driver); + + static bool compare_devices(std::shared_ptr a, + std::shared_ptr b); private: struct sr_context *const _sr_ctx; - std::list _devices; + std::list< std::shared_ptr > _devices; }; } // namespace pv