diff options
author | RJ Ryan <rryan@mixxx.org> | 2016-05-10 14:51:38 -0700 |
---|---|---|
committer | RJ Ryan <rryan@mixxx.org> | 2016-05-11 21:06:34 -0700 |
commit | f068295b43453e63d9a8c67ff85f23897cb69cb9 (patch) | |
tree | c4437c1be7010c0814aafefdd4d53c9f24da9ae7 /src/controllers/controllerpresetinfo.cpp | |
parent | effbb061a0b0f55c5ece9e5c1df2f5665cca7817 (diff) |
Use a simpler datastructure to represent controller product details.
Diffstat (limited to 'src/controllers/controllerpresetinfo.cpp')
-rw-r--r-- | src/controllers/controllerpresetinfo.cpp | 49 |
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; } |