projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Moved DevInst into the pv::device namespace
[pulseview.git]
/
pv
/
dialogs
/
connect.cpp
diff --git
a/pv/dialogs/connect.cpp
b/pv/dialogs/connect.cpp
index b7efe4f3442a875bd40dc37c2ea01d56852ff2d2..7b31942d974e5ca28e8aab2d33e54a5db7d608af 100644
(file)
--- a/
pv/dialogs/connect.cpp
+++ b/
pv/dialogs/connect.cpp
@@
-20,9
+20,12
@@
#include <boost/foreach.hpp>
#include <boost/foreach.hpp>
+#include <libsigrok/libsigrok.h>
+
#include "connect.h"
#include "pv/devicemanager.h"
#include "connect.h"
#include "pv/devicemanager.h"
+#include "pv/device/devinst.h"
extern "C" {
/* __STDC_FORMAT_MACROS is required for PRIu64 and friends (in C++). */
extern "C" {
/* __STDC_FORMAT_MACROS is required for PRIu64 and friends (in C++). */
@@
-31,7
+34,9
@@
extern "C" {
#include <libsigrok/libsigrok.h>
}
#include <libsigrok/libsigrok.h>
}
-using namespace std;
+using boost::shared_ptr;
+using std::list;
+using std::string;
extern sr_context *sr_ctx;
extern sr_context *sr_ctx;
@@
-77,13
+82,21
@@
Connect::Connect(QWidget *parent, pv::DeviceManager &device_manager) :
_layout.addWidget(&_button_box);
}
_layout.addWidget(&_button_box);
}
-s
truct sr_dev_inst*
Connect::get_selected_device() const
+s
hared_ptr<device::DevInst>
Connect::get_selected_device() const
{
const QListWidgetItem *const item = _device_list.currentItem();
if (!item)
{
const QListWidgetItem *const item = _device_list.currentItem();
if (!item)
- return NULL;
+ return shared_ptr<device::DevInst>();
+
+ const sr_dev_inst *const sdi = (sr_dev_inst*)item->data(
+ Qt::UserRole).value<void*>();
+ assert(sdi);
- return (sr_dev_inst*)item->data(Qt::UserRole).value<void*>();
+ std::map<const sr_dev_inst*, boost::shared_ptr<pv::device::DevInst> >::
+ const_iterator iter = _device_map.find(sdi);
+ assert(iter != _device_map.end());
+
+ return (*iter).second;
}
void Connect::populate_drivers()
}
void Connect::populate_drivers()
@@
-123,6
+136,7
@@
void Connect::populate_drivers()
void Connect::unset_connection()
{
_device_list.clear();
void Connect::unset_connection()
{
_device_list.clear();
+ _device_map.clear();
_serial_device.hide();
_form_layout.labelForField(&_serial_device)->hide();
_button_box.button(QDialogButtonBox::Ok)->setDisabled(true);
_serial_device.hide();
_form_layout.labelForField(&_serial_device)->hide();
_button_box.button(QDialogButtonBox::Ok)->setDisabled(true);
@@
-137,6
+151,7
@@
void Connect::set_serial_connection()
void Connect::scan_pressed()
{
_device_list.clear();
void Connect::scan_pressed()
{
_device_list.clear();
+ _device_map.clear();
const int index = _drivers.currentIndex();
if (index == -1)
const int index = _drivers.currentIndex();
if (index == -1)
@@
-155,15
+170,20
@@
void Connect::scan_pressed()
drvopts = g_slist_append(drvopts, src);
}
drvopts = g_slist_append(drvopts, src);
}
- const list<
sr_dev_inst*> devices = _device_manager.driver_scan(
- driver, drvopts);
+ const list<
shared_ptr<device::DevInst> > devices =
+
_device_manager.driver_scan(
driver, drvopts);
g_slist_free_full(drvopts, (GDestroyNotify)free_drvopts);
g_slist_free_full(drvopts, (GDestroyNotify)free_drvopts);
- BOOST_FOREACH(s
r_dev_inst *const sdi
, devices)
+ BOOST_FOREACH(s
hared_ptr<device::DevInst> dev_inst
, devices)
{
{
- const string title = DeviceManager::format_device_title(sdi);
+ assert(dev_inst);
+ const sr_dev_inst *const sdi = dev_inst->dev_inst();
+ assert(sdi);
+
+ const string title = dev_inst->format_device_title();
QString text = QString::fromUtf8(title.c_str());
QString text = QString::fromUtf8(title.c_str());
+
if (sdi->probes) {
text += QString(" with %1 probes").arg(
g_slist_length(sdi->probes));
if (sdi->probes) {
text += QString(" with %1 probes").arg(
g_slist_length(sdi->probes));
@@
-173,10
+193,11
@@
void Connect::scan_pressed()
&_device_list);
item->setData(Qt::UserRole, qVariantFromValue((void*)sdi));
_device_list.addItem(item);
&_device_list);
item->setData(Qt::UserRole, qVariantFromValue((void*)sdi));
_device_list.addItem(item);
+ _device_map[sdi] = dev_inst;
}
_device_list.setCurrentRow(0);
}
_device_list.setCurrentRow(0);
- _button_box.button(QDialogButtonBox::Ok)->setDisabled(
false
);
+ _button_box.button(QDialogButtonBox::Ok)->setDisabled(
_device_list.count() == 0
);
}
void Connect::device_selected(int index)
}
void Connect::device_selected(int index)