summaryrefslogtreecommitdiffstats
path: root/core/downloadfromdcthread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/downloadfromdcthread.cpp')
-rw-r--r--core/downloadfromdcthread.cpp59
1 files changed, 57 insertions, 2 deletions
diff --git a/core/downloadfromdcthread.cpp b/core/downloadfromdcthread.cpp
index 64933b5bc..a98ab17b2 100644
--- a/core/downloadfromdcthread.cpp
+++ b/core/downloadfromdcthread.cpp
@@ -249,7 +249,7 @@ int DCDeviceData::getDetectedVendorIndex(const QString &currentText)
QList<btVendorProduct> btAllDevices = BTDiscovery::instance()->getBtAllDevices();
// Pick the vendor of the first confirmed find of a DC (if any), but
- // only return a true vendow, and not our virtual one
+ // only return a true vendor, and not our virtual one
if (!btDCs.isEmpty() && currentText != QObject::tr("Paired Bluetooth Devices")) {
qDebug() << "getDetectedVendorIndex" << currentText << btDCs.first().vendorIdx;
return btDCs.first().vendorIdx;
@@ -311,7 +311,62 @@ QString DCDeviceData::getDetectedDeviceAddress(const QString &currentVendorText,
qDebug() << "getDetectedDeviceAddress" << btAddr;
return btAddr;
}
-
+#endif
return QString();
+}
+
+QString DCDeviceData::getDeviceDescriptorVendor(const QString &currentVendorText,
+ const QString &currentProductText)
+{
+#if defined(BT_SUPPORT)
+ QList<btVendorProduct> btDCs = BTDiscovery::instance()->getBtDcs();
+ QList<btVendorProduct> btAllDevices = BTDiscovery::instance()->getBtAllDevices();
+
+ // Pull the vendor from the first found dive computer that is been
+ // detected as a possible real dive computer (and not some other paired
+ // BT device
+ if (currentVendorText != QObject::tr("Paired Bluetooth Devices") && !btDCs.isEmpty()) {
+ QString dcVendor = dc_descriptor_get_vendor(btDCs.first().dcDescriptor);
+ qDebug() << "getDeviceDescriptorVendor" << dcVendor;
+ return dcVendor;
+ }
+
+ // if the above fails, pull vendor from the selected paired device
+ // unsure being a dive computer
+ if (currentVendorText == QObject::tr("Paired Bluetooth Devices")) {
+ int i = productList[currentVendorText].indexOf(currentProductText);
+ QString dcVendor = dc_descriptor_get_vendor(btAllDevices[i].dcDescriptor);
+ qDebug() << "getDeviceDescriptorVendor" << dcVendor;
+ return dcVendor;
+ }
+#endif
+ return NULL;
+}
+
+QString DCDeviceData::getDeviceDescriptorProduct(const QString &currentVendorText,
+ const QString &currentProductText)
+{
+#if defined(BT_SUPPORT)
+ QList<btVendorProduct> btDCs = BTDiscovery::instance()->getBtDcs();
+ QList<btVendorProduct> btAllDevices = BTDiscovery::instance()->getBtAllDevices();
+
+ // Pull the product from the first found dive computer that is been
+ // detected as a possible real dive computer (and not some other paired
+ // BT device
+ if (currentVendorText != QObject::tr("Paired Bluetooth Devices") && !btDCs.isEmpty()) {
+ QString dcProduct = dc_descriptor_get_product(btDCs.first().dcDescriptor);
+ qDebug() << "getDeviceDescriptorProduct" << dcProduct;
+ return dcProduct;
+ }
+
+ // if the above fails, pull product from the selected paired device
+ // unsure being a dive computer
+ if (currentVendorText == QObject::tr("Paired Bluetooth Devices")) {
+ int i = productList[currentVendorText].indexOf(currentProductText);
+ QString dcProduct = dc_descriptor_get_product(btAllDevices[i].dcDescriptor);
+ qDebug() << "getDeviceDescriptorProduct" << dcProduct;
+ return dcProduct;
+ }
#endif
+ return NULL;
}