void QBtDeviceDiscovererPrivate::RegisterFoundDevice(BTDEVHDL dev_hdl) { BTUINT8 szDevName[BTSDK_DEVNAME_LEN] = { 0 }; BTUINT16 usLen = 0; BTUINT32 ulDevClass = 0; BTUINT8 szBdAddr[6] = {0}; QBtDevice devInfo; usLen = BTSDK_DEVNAME_LEN; BTINT32 result = BTSDK_FALSE; if ((result = Btsdk_GetRemoteDeviceName(dev_hdl, szDevName, &usLen)) != BTSDK_OK) { usLen = BTSDK_DEVNAME_LEN; ZeroMemory(szDevName, BTSDK_DEVNAME_LEN); if ((result = Btsdk_UpdateRemoteDeviceName(dev_hdl, szDevName, &usLen)) != BTSDK_OK) { strcpy((char*)szDevName, "Unknown"); } } devInfo.setName(QString::fromUtf8((char*)szDevName)); Btsdk_GetRemoteDeviceAddress(dev_hdl, szBdAddr); QByteArray btAddrr((char*)szBdAddr, 6); devInfo.setAddress(QBtAddress::getAddressFromReversedArray(btAddrr)); Btsdk_GetRemoteDeviceClass(dev_hdl, &ulDevClass); if(ulDevClass & BTSDK_DEVCLS_COMPUTER) devInfo.setType(QBtDevice::Computer); else if(ulDevClass & BTSDK_DEVCLS_PHONE) devInfo.setType(QBtDevice::Phone); else if(ulDevClass & BTSDK_DEVCLS_LAP) devInfo.setType(QBtDevice::LANAccess); else if(ulDevClass & BTSDK_DEVCLS_AUDIO) devInfo.setType(QBtDevice::AudioVideo); else if(ulDevClass & BTSDK_DEVCLS_PERIPHERAL) devInfo.setType(QBtDevice::Peripheral); else if(ulDevClass & BTSDK_DEVCLS_IMAGE) devInfo.setType(QBtDevice::Imaging); else if(ulDevClass & BTSDK_DEVCLS_IMAGE) devInfo.setType(QBtDevice::Imaging); else if(ulDevClass & BTSDK_DEVCLS_WEARABLE) devInfo.setType(QBtDevice::Wearable); else devInfo.setType(QBtDevice::Uncategorized); deviceList.append(devInfo); if(sp_ptr) emit sp_ptr->newDeviceFound(devInfo); }
static void InquiryResult(BTDEVHDL dev_hdl) { BtDevice dev; BTUINT32 dev_class; BST(Btsdk_GetRemoteDeviceClass(dev_hdl, &dev_class)); BtSdkRemoteDevicePropertyStru props; BST(Btsdk_GetRemoteDeviceProperty(dev_hdl, &props)); byte nameBuf[256]; WORD len = sizeof(nameBuf); BST(Btsdk_GetRemoteDeviceName(dev_hdl, nameBuf, &len)); dev.name = (char*)nameBuf; BST(Btsdk_GetRemoteDeviceAddress(dev_hdl, dev.address.a)); { CriticalSectionHandler csh(&gBt.critSec); LOGBT("d%i: \"%s\" (%s)\n", gBt.devices.size(), dev.name.c_str(), btaddr2string(dev.addr)); gBt.devices.push_back(dev); } gBt.deviceCallback(); }