1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
/*****************************************************************************
* This file is part of the BlueDevil project *
* *
* Copyright (C) 2010 Rafael Fernández López <ereslibre@kde.org> *
* Copyright (C) 2010 UFO Coders <info@ufocoders.com> *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public License *
* along with this library; see the file COPYING.LIB. If not, write to *
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301, USA. *
*****************************************************************************/
#include "bluedeviltest.h"
#include <QtCore/QDebug>
#include <QtCore/QTimer>
#include <QtGui/QApplication>
#include <bluedevil/bluedeviladapter.h>
#include <bluedevil/bluedevilmanager.h>
#include <bluedevil/bluedevildevice.h>
using namespace BlueDevil;
DeviceReceiver::DeviceReceiver(QObject *parent)
: QObject(parent)
{
}
DeviceReceiver::~DeviceReceiver()
{
}
void DeviceReceiver::scanDevices()
{
qDebug() << "*** Will scan devices for 30 seconds...";
qDebug();
Adapter *defaultAdapter = Manager::self()->defaultAdapter();
QObject::connect(defaultAdapter, SIGNAL(deviceFound(Device*)), this,
SLOT(deviceFound(Device*)));
defaultAdapter->startDiscovery();
QTimer::singleShot(30000, QCoreApplication::instance(), SLOT(quit()));
}
#ifdef ASYNCHRONOUS_API
void DeviceReceiver::deviceFound(Device *device)
{
qDebug() << "*** Remote device found: " << device->name() << ". Registering it asynchronously...";
connect(device, SIGNAL(registerDeviceResult(Device*,bool)),
this, SLOT(deviceRegistered(Device*,bool)));
asyncCall(device, SLOT(registerDevice()));
}
void DeviceReceiver::deviceRegistered(Device *device, bool registered)
{
if (registered) {
qDebug() << "*** Remote device registered:";
qDebug() << "\tAddress:\t" << device->address();
qDebug() << "\tAlias:\t\t" << device->alias();
qDebug() << "\tClass:\t\t" << device->deviceClass();
qDebug() << "\tIcon:\t\t" << device->icon();
qDebug() << "\tLegacy Pairing:\t" << (device->hasLegacyPairing() ? "yes" : "no");
qDebug() << "\tName:\t\t" << device->name();
qDebug() << "\tPaired:\t\t" << (device->isPaired() ? "yes" : "no");
qDebug() << "\tTrusted:\t" << (device->isTrusted() ? "yes" : "no");
qDebug() << "\tServices:\n" << device->UUIDs();
} else {
qDebug() << "!!! Remote device not registered: " << device->name();
}
qDebug();
}
#else
void DeviceReceiver::deviceFound(Device *device)
{
qDebug() << "*** Remote device found. Requesting information synchronously:";
qDebug() << "\tAddress:\t" << device->address();
qDebug() << "\tAlias:\t\t" << device->alias();
qDebug() << "\tClass:\t\t" << device->deviceClass();
qDebug() << "\tIcon:\t\t" << device->icon();
qDebug() << "\tLegacy Pairing:\t" << (device->hasLegacyPairing() ? "yes" : "no");
qDebug() << "\tName:\t\t" << device->name();
qDebug() << "\tPaired:\t\t" << (device->isPaired() ? "yes" : "no");
qDebug() << "\tTrusted:\t" << (device->isTrusted() ? "yes" : "no");
qDebug() << "\tServices:\n" << device->UUIDs();
}
#endif
void DeviceReceiver::adapterAdded(Adapter *adapter)
{
qDebug() << "*** An adapter has been connected.";
qDebug();
scanDevices();
}
int main(int argc, char **argv)
{
QApplication app(argc, argv);
DeviceReceiver *deviceReceiver = new DeviceReceiver;
Adapter *defaultAdapter = Manager::self()->defaultAdapter();
if (defaultAdapter) {
deviceReceiver->scanDevices();
} else {
qDebug() << "!!! No bluetooth adapters were found. Waiting for bluetooth adapters. Ctrl + C to cancel...";
qDebug();
QObject::connect(Manager::self(), SIGNAL(adapterAdded(Adapter*)), deviceReceiver,
SLOT(adapterAdded(Adapter*)));
}
return app.exec();
}
#include "bluedeviltest.moc"
|