diff options
Diffstat (limited to 'src/bluetoothsettings/discoverymodel.cpp')
-rw-r--r-- | src/bluetoothsettings/discoverymodel.cpp | 270 |
1 files changed, 0 insertions, 270 deletions
diff --git a/src/bluetoothsettings/discoverymodel.cpp b/src/bluetoothsettings/discoverymodel.cpp deleted file mode 100644 index 31cf972..0000000 --- a/src/bluetoothsettings/discoverymodel.cpp +++ /dev/null @@ -1,270 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Device Utilities module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) any later version -** approved by the KDE Free Qt Foundation. The licenses are as published by -** the Free Software Foundation and appearing in the file LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include <QBluetoothAddress> -#include "discoverymodel.h" - -QT_BEGIN_NAMESPACE - -BtDeviceItem::BtDeviceItem(const QBluetoothDeviceInfo& bt, QObject *parent) - : QObject(parent) - ,m_name(bt.name()) - ,m_address(bt.address().toString()) - ,m_connected(false) -{ - m_type = getDeviceType(bt.majorDeviceClass(), bt.minorDeviceClass()); -} - -QString BtDeviceItem::name() const -{ - return m_name; -} - -QString BtDeviceItem::address() const -{ - return m_address; -} - -bool BtDeviceItem::connected() const -{ - return m_connected; -} - -void BtDeviceItem::setConnected(bool aConnected) -{ - m_connected = aConnected; - emit connectedChanged(); -} - -BtDeviceItem::DeviceType BtDeviceItem::type() const -{ - return m_type; -} - -BtDeviceItem::DeviceType BtDeviceItem::getDeviceType(const QBluetoothDeviceInfo::MajorDeviceClass major, const quint8 minor) const -{ - switch (major) { - case QBluetoothDeviceInfo::ComputerDevice: - return getComputerDeviceType(minor); - break; - case QBluetoothDeviceInfo::PhoneDevice: - return getPhoneDeviceType(minor); - break; - case QBluetoothDeviceInfo::AudioVideoDevice: - return getAudioDeviceType(minor); - break; - case QBluetoothDeviceInfo::PeripheralDevice: - return getPeripheralDeviceType(minor); - break; - case QBluetoothDeviceInfo::ImagingDevice: - return getImagingDeviceType(minor); - break; - default: - return GenericDevice; - } - return GenericDevice; -} - -BtDeviceItem::DeviceType BtDeviceItem::getComputerDeviceType(const quint8 minor) const -{ - Q_UNUSED(minor); - return Computer; -} - -BtDeviceItem::DeviceType BtDeviceItem::getAudioDeviceType(const quint8 minor) const -{ - switch (minor) { - case QBluetoothDeviceInfo::Microphone: - return Microphone; - break; - case QBluetoothDeviceInfo::WearableHeadsetDevice: - case QBluetoothDeviceInfo::Headphones: - return Headphones; - break; - case QBluetoothDeviceInfo::Camcorder: - case QBluetoothDeviceInfo::VideoCamera: - return Camcorder; - break; - default: - return GenericDevice; - break; - } -} - -BtDeviceItem::DeviceType BtDeviceItem::getPeripheralDeviceType(const quint8 minor) const -{ - switch (minor) { - case QBluetoothDeviceInfo::KeyboardPeripheral: - return Keyboard; - break; - case QBluetoothDeviceInfo::PointingDevicePeripheral: - return Mouse; - break; - default: - return GenericDevice; - break; - } -} - -BtDeviceItem::DeviceType BtDeviceItem::getImagingDeviceType(const quint8 minor) const -{ - switch (minor) { - case QBluetoothDeviceInfo::ImageCamera: - return Camera; - break; - default: - return GenericDevice; - break; - } -} - -BtDeviceItem::DeviceType BtDeviceItem::getPhoneDeviceType(const quint8 minor) const -{ - Q_UNUSED(minor); - return Phone; -} - - -DiscoveryModel::DiscoveryModel(QObject *parent) - : QAbstractListModel(parent) - ,m_discoveryAgent(Q_NULLPTR) -{ - m_roleNames.insert(Qt::UserRole, "modelData"); - m_roleNames.insert(Address, "address"); - m_roleNames.insert(Name, "name"); - m_roleNames.insert(Type, "type"); - m_roleNames.insert(Connected, "connected"); -} - -void DiscoveryModel::deviceDiscovered(const QBluetoothDeviceInfo &device) -{ - int index; - - // Insert the device to alphabetically sorted location - for (index = 0; index < m_items.count(); index++) - { - if (device.name() < m_items.at(index)->name()) - break; - } - - beginInsertRows(QModelIndex(), index, index); - BtDeviceItem *item = new BtDeviceItem(device); - m_items.insert(index, item); - endInsertRows(); -} - -DiscoveryModel::~DiscoveryModel() -{ - -} - -void DiscoveryModel::scanDevices() -{ - if (!m_discoveryAgent) { - m_discoveryAgent = new QBluetoothDeviceDiscoveryAgent(this); - connect(m_discoveryAgent, SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)), - this, SLOT(deviceDiscovered(QBluetoothDeviceInfo))); - - connect(m_discoveryAgent, SIGNAL(finished()), - this, SIGNAL(scanFinished())); - } - - // Reset previous list, devices are already cached by bluez - clearDeviceList(); - - m_discoveryAgent->start(); -} - -void DiscoveryModel::stopScanning() -{ - if (m_discoveryAgent) { - m_discoveryAgent->stop(); - } -} - -QHash<int, QByteArray> DiscoveryModel::roleNames() const -{ - return m_roleNames; -} - -int DiscoveryModel::rowCount(const QModelIndex & parent) const -{ - Q_UNUSED(parent); - return m_items.count(); -} - -QVariant DiscoveryModel::data(const QModelIndex & index, int role) const -{ - if (!index.isValid()) return QVariant(); - - BtDeviceItem *item = m_items[index.row()]; - - switch (role) { - case DiscoveryModel::Name: - return item->name(); - break; - case DiscoveryModel::Address: - return item->address(); - break; - case DiscoveryModel::Type: - return item->type(); - break; - case DiscoveryModel::Connected: - return item->connected(); - default: - return QVariant(); - } -} - -void DiscoveryModel::setConnected(const QString &aAddress, bool connected) -{ - bool found = false; - int i = 0; - QVector<int> role; - role.append(DiscoveryModel::Connected); - foreach (BtDeviceItem *item, m_items) { - if (item->address() == aAddress) { - item->setConnected(connected); - found = true; - break; - } - i++; - } - - if (found) - emit dataChanged(index(i, 0), index(i, 0), role); -} - -void DiscoveryModel::clearDeviceList() -{ - beginResetModel(); - m_items.clear(); - endResetModel(); -} - -QT_END_NAMESPACE |