void QBluetoothDeviceDiscoveryAgentPrivate::allocate() { Q_Q(QBluetoothDeviceDiscoveryAgent); /* connect to socker server */ int result = m_socketServer.Connect(); if (result != KErrNone) { _q_setError(QBluetoothDeviceDiscoveryAgent::UnknownError, QString("RSocketServ.Connect() failed with error")); return; } // create link manager device discoverer if (m_socketServer.Handle() != NULL) { // create new active object for querying devices m_deviceDiscovery = new BluetoothLinkManagerDeviceDiscoverer(m_socketServer); if (m_deviceDiscovery) { QObject::connect(m_deviceDiscovery, SIGNAL(deviceDiscoveryComplete()), q, SIGNAL(finished())); QObject::connect(m_deviceDiscovery, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)), q, SLOT(_q_newDeviceFound(const QBluetoothDeviceInfo&))); QObject::connect(m_deviceDiscovery, SIGNAL(linkManagerError(QBluetoothDeviceDiscoveryAgent::Error,QString)), q, SLOT(_q_setError(QBluetoothDeviceDiscoveryAgent::Error,QString))); QObject::connect(m_deviceDiscovery, SIGNAL(canceled()), q, SIGNAL(canceled())); } else { _q_setError(QBluetoothDeviceDiscoveryAgent::UnknownError, QString("Cannot allocate BluetoothLinkManagerDeviceDiscoverer: failed with error")); } } }
void BluetoothLinkManagerDeviceDiscoverer::setError(int errorCode) { qDebug() << __PRETTY_FUNCTION__ << "errorCode=" << errorCode; QString errorString; switch (errorCode) { case KLinkManagerErrBase: errorString.append("Link manager base error value or Insufficient baseband resources error value"); emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString); break; case KErrProxyWriteNotAvailable: errorString.append("Proxy write not available error value"); emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString); break; case KErrReflexiveBluetoothLink: errorString.append("Reflexive BT link error value"); emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString); break; case KErrPendingPhysicalLink: errorString.append("Physical link connection already pending when trying to connect the physical link"); emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString); break; case KErrNotReady: errorString.append("KErrNotReady"); emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString); case KErrHardwareNotAvailable: // this is returned by Symbian backend when bluetooth is off errorString.append("KErrHardwareNotAvailable"); emit linkManagerError(QBluetoothDeviceDiscoveryAgent::PoweredOff, errorString); break; case KErrCancel: errorString.append("KErrCancel"); qDebug() << "emitting canceled"; emit canceled(); break; case KErrNone: // do nothing break; default: errorString = QString("Symbian errorCode = %1").arg(errorCode); emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString); break; } }