File indexing completed on 2025-01-19 12:42:12
0001 /* 0002 * BluezQt - Asynchronous BlueZ wrapper library 0003 * 0004 * SPDX-FileCopyrightText: 2014 David Rosca <nowrep@gmail.com> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "bluezqtextensionplugin.h" 0010 #include "declarativeadapter.h" 0011 #include "declarativebattery.h" 0012 #include "declarativedevice.h" 0013 #include "declarativedevicesmodel.h" 0014 #include "declarativeinput.h" 0015 #include "declarativemanager.h" 0016 #include "declarativemediaplayer.h" 0017 #include "device.h" 0018 #include "pendingcall.h" 0019 #include "rfkill.h" 0020 #include "services.h" 0021 0022 #include <QQmlEngine> 0023 0024 static QObject *manager_singleton(QQmlEngine *engine, QJSEngine *scriptEngine) 0025 { 0026 Q_UNUSED(engine) 0027 Q_UNUSED(scriptEngine) 0028 0029 return new DeclarativeManager; 0030 } 0031 0032 static QJSValue services_singleton(QQmlEngine *engine, QJSEngine *scriptEngine) 0033 { 0034 Q_UNUSED(engine) 0035 0036 QJSValue object = scriptEngine->newObject(); 0037 object.setProperty(QStringLiteral("ServiceDiscoveryServer"), BluezQt::Services::ServiceDiscoveryServer); 0038 object.setProperty(QStringLiteral("SerialPort"), BluezQt::Services::SerialPort); 0039 object.setProperty(QStringLiteral("DialupNetworking"), BluezQt::Services::DialupNetworking); 0040 object.setProperty(QStringLiteral("ObexObjectPush"), BluezQt::Services::ObexObjectPush); 0041 object.setProperty(QStringLiteral("ObexFileTransfer"), BluezQt::Services::ObexFileTransfer); 0042 object.setProperty(QStringLiteral("Headset"), BluezQt::Services::Headset); 0043 object.setProperty(QStringLiteral("AudioSource"), BluezQt::Services::AudioSource); 0044 object.setProperty(QStringLiteral("AudioSink"), BluezQt::Services::AudioSink); 0045 object.setProperty(QStringLiteral("AudioVideoRemoteControlTarget"), BluezQt::Services::AudioVideoRemoteControlTarget); 0046 object.setProperty(QStringLiteral("AdvancedAudioDistribution"), BluezQt::Services::AdvancedAudioDistribution); 0047 object.setProperty(QStringLiteral("AudioVideoRemoteControl"), BluezQt::Services::AudioVideoRemoteControl); 0048 object.setProperty(QStringLiteral("HeadsetAudioGateway"), BluezQt::Services::HeadsetAudioGateway); 0049 object.setProperty(QStringLiteral("Panu"), BluezQt::Services::Panu); 0050 object.setProperty(QStringLiteral("Nap"), BluezQt::Services::Nap); 0051 object.setProperty(QStringLiteral("Handsfree"), BluezQt::Services::Handsfree); 0052 object.setProperty(QStringLiteral("HandsfreeAudioGateway"), BluezQt::Services::HandsfreeAudioGateway); 0053 object.setProperty(QStringLiteral("HumanInterfaceDevice"), BluezQt::Services::HumanInterfaceDevice); 0054 object.setProperty(QStringLiteral("SimAccess"), BluezQt::Services::SimAccess); 0055 object.setProperty(QStringLiteral("PhonebookAccessServer"), BluezQt::Services::PhonebookAccessServer); 0056 object.setProperty(QStringLiteral("MessageAccessServer"), BluezQt::Services::MessageAccessServer); 0057 object.setProperty(QStringLiteral("PnpInformation"), BluezQt::Services::PnpInformation); 0058 object.setProperty(QStringLiteral("GenericAccess"), BluezQt::Services::GenericAccess); 0059 object.setProperty(QStringLiteral("GenericAcces"), BluezQt::Services::GenericAccess); // TODO KF6: Remove the one with typo 0060 object.setProperty(QStringLiteral("GenericAttribute"), BluezQt::Services::GenericAttribute); 0061 object.setProperty(QStringLiteral("ImmediateAlert"), BluezQt::Services::ImmediateAlert); 0062 object.setProperty(QStringLiteral("LinkLoss"), BluezQt::Services::LinkLoss); 0063 object.setProperty(QStringLiteral("TxPower"), BluezQt::Services::TxPower); 0064 object.setProperty(QStringLiteral("HeartRate"), BluezQt::Services::HeartRate); 0065 return object; 0066 } 0067 0068 void BluezQtExtensionPlugin::registerTypes(const char *uri) 0069 { 0070 using namespace BluezQt; 0071 0072 Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.bluezqt")); 0073 0074 qmlRegisterSingletonType<DeclarativeManager>(uri, 1, 0, "Manager", manager_singleton); 0075 qmlRegisterType<DeclarativeDevicesModel>(uri, 1, 0, "DevicesModelPrivate"); 0076 qmlRegisterUncreatableType<DeclarativeAdapter>(uri, 1, 0, "Adapter", QStringLiteral("Adapter cannot be created")); 0077 qmlRegisterUncreatableType<DeclarativeBattery>(uri, 1, 0, "Battery", QStringLiteral("Battery cannot be created")); 0078 qmlRegisterUncreatableType<DeclarativeDevice>(uri, 1, 0, "Device", QStringLiteral("Device cannot be created")); 0079 qmlRegisterUncreatableType<DeclarativeInput>(uri, 1, 0, "Input", QStringLiteral("Input cannot be created")); 0080 qmlRegisterUncreatableType<DeclarativeMediaPlayer>(uri, 1, 0, "MediaPlayer", QStringLiteral("MediaPlayer cannot be created")); 0081 qmlRegisterUncreatableType<PendingCall>(uri, 1, 0, "PendingCall", QStringLiteral("PendingCall cannot be created")); 0082 qmlRegisterUncreatableType<Rfkill>(uri, 1, 0, "Rfkill", QStringLiteral("Rfkill cannot be created")); 0083 qmlRegisterSingletonType(uri, 1, 0, "Services", services_singleton); 0084 } 0085 0086 #include "moc_bluezqtextensionplugin.cpp"