]> sigrok.org Git - pulseview.git/blobdiff - pv/devices/device.cpp
main window: Prefer the user specified device in new sessions
[pulseview.git] / pv / devices / device.cpp
index 4edc1d10e11cbb3be3e1b5ae1e79760da47fc4cb..855a1d82fca65019952b1baf46f21aef60c859de 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/>.
  */
 
 #include <cassert>
 
 #include "device.hpp"
 
-using std::map;
-using std::set;
+using std::shared_ptr;
 
 using sigrok::ConfigKey;
-using sigrok::Error;
+using sigrok::Capability;
 
 using Glib::VariantBase;
 using Glib::Variant;
@@ -36,22 +34,18 @@ using Glib::Variant;
 namespace pv {
 namespace devices {
 
-Device::Device()
-{
-}
-
 Device::~Device()
 {
        if (session_)
                session_->remove_datafeed_callbacks();
 }
 
-std::shared_ptr<sigrok::Session> Device::session() const
+shared_ptr<sigrok::Session> Device::session() const
 {
        return session_;
 }
 
-std::shared_ptr<sigrok::Device> Device::device() const
+shared_ptr<sigrok::Device> Device::device() const
 {
        return device_;
 }
@@ -64,20 +58,11 @@ template<typename T>
 T Device::read_config(const ConfigKey *key, const T default_value)
 {
        assert(key);
-       map< const ConfigKey*, set<sigrok::Capability> > keys;
 
        if (!device_)
                return default_value;
 
-       try {
-               keys = device_->config_keys(ConfigKey::DEVICE_OPTIONS);
-       } catch (const Error) {
-               return default_value;
-       }
-
-       const auto iter = keys.find(key);
-       if (iter == keys.end() ||
-               (*iter).second.find(sigrok::GET) == (*iter).second.end())
+       if (!device_->config_check(key, Capability::GET))
                return default_value;
 
        return VariantBase::cast_dynamic<Glib::Variant<guint64>>(