]> sigrok.org Git - pulseview.git/blobdiff - pv/devicemanager.hpp
AnalogSignal: Use setting change handler for threshold display
[pulseview.git] / pv / devicemanager.hpp
index 8bceed34ff409d7a1a7769d0ad2c9c7fcf6a1f4f..2c9343001211409e8e836d95c9d5d623417ebcd2 100644 (file)
@@ -14,8 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef PULSEVIEW_PV_DEVICEMANAGER_HPP
 #include <list>
 #include <map>
 #include <memory>
+#include <set>
 #include <string>
+#include <vector>
+
+using std::list;
+using std::map;
+using std::set;
+using std::shared_ptr;
+using std::string;
+using std::vector;
 
 namespace Glib {
 class VariantBase;
@@ -36,6 +44,8 @@ class Context;
 class Driver;
 }
 
+using sigrok::ConfigKey;
+
 namespace pv {
 
 namespace devices {
@@ -48,46 +58,39 @@ class Session;
 class DeviceManager
 {
 public:
-       DeviceManager(std::shared_ptr<sigrok::Context> context);
-
-       ~DeviceManager();
-
-       const std::shared_ptr<sigrok::Context>& context() const;
+       DeviceManager(shared_ptr<sigrok::Context> context, std::string driver);
 
-       std::shared_ptr<sigrok::Context> context();
+       ~DeviceManager() = default;
 
-       const std::list< std::shared_ptr<devices::HardwareDevice> >&
-               devices() const;
+       const shared_ptr<sigrok::Context>& context() const;
 
-       std::list< std::shared_ptr<devices::HardwareDevice> > driver_scan(
-               std::shared_ptr<sigrok::Driver> driver,
-               std::map<const sigrok::ConfigKey *, Glib::VariantBase> drvopts);
+       shared_ptr<sigrok::Context> context();
 
-       const std::map<std::string, std::string> get_device_info(
-               const std::shared_ptr<devices::Device> device);
+       const list< shared_ptr<devices::HardwareDevice> >& devices() const;
+       shared_ptr<devices::HardwareDevice> user_spec_device() const;
 
-       const std::shared_ptr<devices::HardwareDevice> find_device_from_info(
-               const std::map<std::string, std::string> search_info);
+       list< shared_ptr<devices::HardwareDevice> > driver_scan(
+               shared_ptr<sigrok::Driver> driver,
+               map<const sigrok::ConfigKey *, Glib::VariantBase> drvopts);
 
-       void build_display_name(std::shared_ptr<devices::Device> device);
+       const map<string, string> get_device_info(
+               const shared_ptr<devices::Device> device);
 
-       const std::string get_display_name(
-               std::shared_ptr<devices::Device> dev);
-
-       const std::string get_full_name(std::shared_ptr<devices::Device> dev);
-
-       void update_display_name(std::shared_ptr<devices::Device> dev);
+       const shared_ptr<devices::HardwareDevice> find_device_from_info(
+               const map<string, string> search_info);
 
 private:
-       bool compare_devices(std::shared_ptr<devices::Device> a,
-               std::shared_ptr<devices::Device> b);
+       bool compare_devices(shared_ptr<devices::Device> a,
+               shared_ptr<devices::Device> b);
 
-protected:
-       std::shared_ptr<sigrok::Context> context_;
-       std::list< std::shared_ptr<devices::HardwareDevice> > devices_;
+       static map<const ConfigKey *, Glib::VariantBase>
+       drive_scan_options(vector<string> user_spec,
+               set<const ConfigKey *> driver_opts);
 
-       std::map< std::shared_ptr<devices::Device>, std::string > display_names_;
-       std::map< std::shared_ptr<devices::Device>, std::string > full_names_;
+protected:
+       shared_ptr<sigrok::Context> context_;
+       list< shared_ptr<devices::HardwareDevice> > devices_;
+       shared_ptr<devices::HardwareDevice> user_spec_device_;
 };
 
 } // namespace pv