summaryrefslogtreecommitdiffstats
path: root/src/controllers/controllerpresetinfo.cpp
diff options
context:
space:
mode:
authorRJ Ryan <rryan@mixxx.org>2016-05-10 14:51:38 -0700
committerRJ Ryan <rryan@mixxx.org>2016-05-11 21:06:34 -0700
commitf068295b43453e63d9a8c67ff85f23897cb69cb9 (patch)
treec4437c1be7010c0814aafefdd4d53c9f24da9ae7 /src/controllers/controllerpresetinfo.cpp
parenteffbb061a0b0f55c5ece9e5c1df2f5665cca7817 (diff)
Use a simpler datastructure to represent controller product details.
Diffstat (limited to 'src/controllers/controllerpresetinfo.cpp')
-rw-r--r--src/controllers/controllerpresetinfo.cpp49
1 files changed, 16 insertions, 33 deletions
diff --git a/src/controllers/controllerpresetinfo.cpp b/src/controllers/controllerpresetinfo.cpp
index 96c5c69b2c..03e5667edf 100644
--- a/src/controllers/controllerpresetinfo.cpp
+++ b/src/controllers/controllerpresetinfo.cpp
@@ -19,7 +19,7 @@ PresetInfo::PresetInfo()
: m_valid(false) {
}
-PresetInfo::PresetInfo(const QString preset_path)
+PresetInfo::PresetInfo(const QString& preset_path)
: m_valid(false) {
// Parse <info> header section from a controller description XML file
// Contents parsed by xml path:
@@ -87,19 +87,18 @@ PresetInfo::PresetInfo(const QString preset_path)
}
}
-QHash<QString,QString> PresetInfo::parseBulkProduct(const QDomElement& element) const {
+ProductInfo PresetInfo::parseBulkProduct(const QDomElement& element) const {
// <product protocol="bulk" vendor_id="0x06f8" product_id="0x0b105" in_epaddr="0x82" out_epaddr="0x03">
-
- QHash<QString, QString> product;
- product.insert("protocol", element.attribute("protocol",""));
- product.insert("vendor_id", element.attribute("vendor_id",""));
- product.insert("product_id", element.attribute("product_id",""));
- product.insert("in_epaddr", element.attribute("in_epaddr",""));
- product.insert("out_epaddr", element.attribute("out_epaddr",""));
+ ProductInfo product;
+ product.protocol = element.attribute("protocol");
+ product.vendor_id = element.attribute("vendor_id");
+ product.product_id = element.attribute("product_id");
+ product.in_epaddr = element.attribute("in_epaddr");
+ product.out_epaddr = element.attribute("out_epaddr");
return product;
}
-QHash<QString,QString> PresetInfo::parseHIDProduct(const QDomElement& element) const {
+ProductInfo PresetInfo::parseHIDProduct(const QDomElement& element) const {
// HID device <product> element parsing. Example of valid element:
// <product protocol="hid" vendor_id="0x1" product_id="0x2" usage_page="0x3" usage="0x4" interface_number="0x3" />
// All numbers must be hex prefixed with 0x
@@ -107,28 +106,12 @@ QHash<QString,QString> PresetInfo::parseHIDProduct(const QDomElement& element) c
// usage_page and usage are matched on OS/X and windows
// interface_number is matched on linux, which does support usage_page/usage
- QHash<QString,QString> product;
- product.insert("procotol", element.attribute("protocol",""));
- product.insert("vendor_id", element.attribute("vendor_id",""));
- product.insert("product_id", element.attribute("product_id",""));
- product.insert("usage_page", element.attribute("usage_page",""));
- product.insert("usage", element.attribute("usage",""));
- product.insert("interface_number", element.attribute("interface_number",""));
- return product;
-}
-
-QHash<QString,QString> PresetInfo::parseMIDIProduct(const QDomElement& element) const {
- // TODO - implement parsing of MIDI attributes
- // When done, remember to fix switch() above to call this
- QHash<QString,QString> product;
- product.insert("procotol",element.attribute("protocol",""));
- return product;
-}
-
-QHash<QString,QString> PresetInfo::parseOSCProduct(const QDomElement& element) const {
- // TODO - implement parsing of OSC product attributes
- // When done, remember to fix switch() above to call this
- QHash<QString,QString> product;
- product.insert("procotol",element.attribute("protocol",""));
+ ProductInfo product;
+ product.protocol = element.attribute("protocol");
+ product.vendor_id = element.attribute("vendor_id");
+ product.product_id = element.attribute("product_id");
+ product.usage_page = element.attribute("usage_page");
+ product.usage = element.attribute("usage");
+ product.interface_number = element.attribute("interface_number");
return product;
}