diff options
Diffstat (limited to 'core/btdiscovery.cpp')
-rw-r--r-- | core/btdiscovery.cpp | 48 |
1 files changed, 31 insertions, 17 deletions
diff --git a/core/btdiscovery.cpp b/core/btdiscovery.cpp index 5a93174a6..2362c5b4b 100644 --- a/core/btdiscovery.cpp +++ b/core/btdiscovery.cpp @@ -52,6 +52,13 @@ BTDiscovery::BTDiscovery(QObject *parent) #endif #if defined(Q_OS_ANDROID) && defined(BT_SUPPORT) getBluetoothDevices(); + // and add the paired devices to the internal data + // So behaviour is same on Linux/Bluez stack and + // Android/Java stack with respect to discovery + for (int i = 0; i < btPairedDevices.length(); i++) { + btDeviceDiscoveredMain(btPairedDevices[i]); + + } #endif for (int i = 0; i < btPairedDevices.length(); i++) { qDebug() << "Paired =" << btPairedDevices[i].name << btPairedDevices[i].address.toString(); @@ -92,51 +99,58 @@ void BTDiscovery::btDeviceDiscovered(const QBluetoothDeviceInfo &device) this_d.address = device.address(); this_d.name = device.name(); btPairedDevices.append(this_d); - struct btVendorProduct btVP; - - QString newDevice; - dc_descriptor_t *newDC = getDeviceType(device.name()); - if (newDC) - newDevice = dc_descriptor_get_product(newDC); - else - newDevice = device.name(); QList<QBluetoothUuid> serviceUuids = device.serviceUuids(); foreach (QBluetoothUuid id, serviceUuids) { addBtUuid(id); qDebug() << id.toByteArray(); } - qDebug() << "Found new device:" << newDevice << device.address(); + + btDeviceDiscoveredMain(this_d); +} + +void BTDiscovery::btDeviceDiscoveredMain(const btPairedDevice &device) +{ + btVendorProduct btVP; + + QString newDevice; + dc_descriptor_t *newDC = getDeviceType(device.name); + if (newDC) + newDevice = dc_descriptor_get_product(newDC); + else + newDevice = device.name; + + qDebug() << "Found new device:" << newDevice << device.address; QString vendor; if (newDC) foreach (vendor, productList.keys()) { if (productList[vendor].contains(newDevice)) { qDebug() << "this could be a " + vendor + " " + (newDevice == "OSTC 3" ? "OSTC family" : newDevice); - btVP.btdi = device; + btVP.btpdi = device; btVP.dcDescriptor = newDC; btVP.vendorIdx = vendorList.indexOf(vendor); btVP.productIdx = productList[vendor].indexOf(newDevice); - qDebug() << "adding new btDCs entry (detected DC)" << newDevice << btVP.vendorIdx << btVP.productIdx << btVP.btdi.address();; + qDebug() << "adding new btDCs entry (detected DC)" << newDevice << btVP.vendorIdx << btVP.productIdx << btVP.btpdi.address;; btDCs << btVP; break; } } - productList[QObject::tr("Paired Bluetooth Devices")].append(this_d.name + " (" + this_d.address.toString() + ")"); + productList[QObject::tr("Paired Bluetooth Devices")].append(device.name + " (" + device.address.toString() + ")"); - btVP.btdi = device; + btVP.btpdi = device; btVP.dcDescriptor = newDC; btVP.vendorIdx = vendorList.indexOf(QObject::tr("Paired Bluetooth Devices")); - btVP.productIdx = productList[QObject::tr("Paired Bluetooth Devices")].indexOf(this_d.name); - qDebug() << "adding new btDCs entry (all paired)" << newDevice << btVP.vendorIdx << btVP.productIdx << btVP.btdi.address(); + btVP.productIdx = productList[QObject::tr("Paired Bluetooth Devices")].indexOf(device.name); + qDebug() << "adding new btDCs entry (all paired)" << newDevice << btVP.vendorIdx << btVP.productIdx << btVP.btpdi.address; btAllDevices << btVP; } -QList <struct btVendorProduct> BTDiscovery::getBtDcs() +QList<BTDiscovery::btVendorProduct> BTDiscovery::getBtDcs() { return btDCs; } -QList <struct btVendorProduct> BTDiscovery::getBtAllDevices() +QList <BTDiscovery::btVendorProduct> BTDiscovery::getBtAllDevices() { return btAllDevices; } |