summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor/backend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/regtools/qeditor/backend.cpp')
-rw-r--r--utils/regtools/qeditor/backend.cpp67
1 files changed, 48 insertions, 19 deletions
diff --git a/utils/regtools/qeditor/backend.cpp b/utils/regtools/qeditor/backend.cpp
index eebda31989..204c160054 100644
--- a/utils/regtools/qeditor/backend.cpp
+++ b/utils/regtools/qeditor/backend.cpp
@@ -5,6 +5,36 @@
5#include "backend.h" 5#include "backend.h"
6 6
7/** 7/**
8 * SocFile
9 */
10SocFile::SocFile()
11 :m_valid(false)
12{
13}
14
15SocFile::SocFile(const QString& filename)
16 :m_filename(filename)
17{
18 m_valid = soc_desc_parse_xml(filename.toStdString(), m_soc);
19 soc_desc_normalize(m_soc);
20}
21
22bool SocFile::IsValid()
23{
24 return m_valid;
25}
26
27SocRef SocFile::GetSocRef()
28{
29 return SocRef(this);
30}
31
32QString SocFile::GetFilename()
33{
34 return m_filename;
35}
36
37/**
8 * Backend 38 * Backend
9 */ 39 */
10 40
@@ -12,33 +42,31 @@ Backend::Backend()
12{ 42{
13} 43}
14 44
15QStringList Backend::GetSocNameList() 45
46QList< SocFileRef > Backend::GetSocFileList()
16{ 47{
17 QStringList sl; 48 QList< SocFileRef > list;
18 foreach(const soc_t& soc, m_socs) 49 for(std::list< SocFile >::iterator it = m_socs.begin(); it != m_socs.end(); ++it)
19 sl.append(QString(soc.name.c_str())); 50 list.append(SocFileRef(&(*it)));
20 return sl; 51 return list;
21} 52}
22 53
23bool Backend::GetSocByName(const QString& name, SocRef& s) 54QList< SocRef > Backend::GetSocList()
24{ 55{
25 for(std::list< soc_t >::iterator it = m_socs.begin(); it != m_socs.end(); ++it) 56 QList< SocRef > list;
26 if(it->name == name.toStdString()) 57 for(std::list< SocFile >::iterator it = m_socs.begin(); it != m_socs.end(); ++it)
27 { 58 list.append(it->GetSocRef());
28 s = SocRef(&(*it)); 59 return list;
29 return true;
30 }
31 return false;
32} 60}
33 61
34bool Backend::LoadSocDesc(const QString& filename) 62bool Backend::LoadSocDesc(const QString& filename)
35{ 63{
36 std::vector< soc_t > new_socs; 64 SocFile f(filename);
37 bool ret = soc_desc_parse_xml(filename.toStdString(), new_socs); 65 if(!f.IsValid())
38 for(size_t i = 0; i < new_socs.size(); i++) 66 return false;
39 m_socs.push_back(new_socs[i]); 67 m_socs.push_back(f);
40 emit OnSocListChanged(); 68 emit OnSocListChanged();
41 return ret; 69 return true;
42} 70}
43 71
44IoBackend *Backend::CreateFileIoBackend(const QString& filename) 72IoBackend *Backend::CreateFileIoBackend(const QString& filename)
@@ -321,7 +349,7 @@ HWStubBackendHelper::HWStubBackendHelper()
321 if(m_hotplug) 349 if(m_hotplug)
322 { 350 {
323 m_hotplug = LIBUSB_SUCCESS == libusb_hotplug_register_callback( 351 m_hotplug = LIBUSB_SUCCESS == libusb_hotplug_register_callback(
324 NULL, LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT, 352 NULL, (libusb_hotplug_event)(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT),
325 LIBUSB_HOTPLUG_ENUMERATE, HWSTUB_USB_VID, HWSTUB_USB_PID, HWSTUB_CLASS, 353 LIBUSB_HOTPLUG_ENUMERATE, HWSTUB_USB_VID, HWSTUB_USB_PID, HWSTUB_CLASS,
326 &HWStubBackendHelper::HotPlugCallback, reinterpret_cast< void* >(this), &m_hotplug_handle); 354 &HWStubBackendHelper::HotPlugCallback, reinterpret_cast< void* >(this), &m_hotplug_handle);
327 } 355 }
@@ -364,6 +392,7 @@ void HWStubBackendHelper::OnHotPlug(bool arrived, struct libusb_device *dev)
364int HWStubBackendHelper::HotPlugCallback(struct libusb_context *ctx, struct libusb_device *dev, 392int HWStubBackendHelper::HotPlugCallback(struct libusb_context *ctx, struct libusb_device *dev,
365 libusb_hotplug_event event, void *user_data) 393 libusb_hotplug_event event, void *user_data)
366{ 394{
395 Q_UNUSED(ctx);
367 HWStubBackendHelper *helper = reinterpret_cast< HWStubBackendHelper* >(user_data); 396 HWStubBackendHelper *helper = reinterpret_cast< HWStubBackendHelper* >(user_data);
368 switch(event) 397 switch(event)
369 { 398 {