// Copyright (c) Charles J. Cliffe // SPDX-License-Identifier: GPL-2.0+ #pragma once #include #include #include "SDRDevicesForm.h" #include "SoapySDRThread.h" #include "SDREnumerator.h" #include "SDRDeviceAdd.h" class SDRDevicesDialog: public devFrame { public: SDRDevicesDialog( wxWindow* parent ); void OnClose( wxCloseEvent& event ); void OnDeleteItem( wxTreeEvent& event ); void OnSelectionChanged( wxTreeEvent& event ); void OnAddRemote( wxMouseEvent& event ); void OnUseSelected( wxMouseEvent& event ); void OnTreeDoubleClick( wxMouseEvent& event ); void OnDeviceTimer( wxTimerEvent& event ); void OnRefreshDevices( wxMouseEvent& event ); void OnPropGridChanged( wxPropertyGridEvent& event ); void OnPropGridFocus( wxFocusEvent& event ); private: void refreshDeviceProperties(); void doRefreshDevices(); SDRDeviceInfo *getSelectedDevice(wxTreeItemId selId); wxPGProperty *addArgInfoProperty(wxPropertyGrid *pg, SoapySDR::ArgInfo arg); bool refresh, failed; std::map* > devs; std::vector::iterator devs_i; std::map devItems; std::map::iterator devItems_i; SDRDeviceInfo *dev; std::map deviceArgs; std::map runtimeProps; std::map runtimeArgs; std::map streamProps; std::map devSettings; wxTreeItemId selId; wxTreeItemId editId; wxTreeItemId removeId; SDRDeviceAddDialog *devAddDialog; };