File indexing completed on 2025-01-12 03:36:40
0001 /* 0002 * BluezQt - Asynchronous Bluez wrapper library 0003 * 0004 * SPDX-FileCopyrightText: 2019 Manuel Weichselbaumer <mincequi@web.de> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "gattcharacteristic_p.h" 0010 #include "gattservice.h" 0011 #include "utils.h" 0012 0013 namespace BluezQt 0014 { 0015 GattCharacterisiticPrivate::GattCharacterisiticPrivate(const QString &uuid, const QStringList &flags, const GattService *service) 0016 : m_uuid(uuid) 0017 , m_service(service) 0018 , m_notifying(false) 0019 , m_flags(flags) 0020 { 0021 static uint8_t charcNumber = 0; 0022 m_objectPath.setPath(m_service->objectPath().path() + QStringLiteral("/char") + QString::number(charcNumber++)); 0023 m_dbusProperties = std::make_unique<DBusProperties>(Strings::orgBluez(), m_objectPath.path(), DBusConnection::orgBluez()); 0024 0025 m_canNotify = flags.contains(QLatin1String("notify")) || flags.contains(QLatin1String("encrypt-notify")) 0026 || flags.contains(QLatin1String("encrypt-authenticated-notify")) || flags.contains(QLatin1String("secure-notify")); 0027 } 0028 0029 void GattCharacterisiticPrivate::emitPropertyChanged(QVariantMap updatedProperties) 0030 { 0031 QDBusMessage signal = QDBusMessage::createSignal(m_objectPath.path(), Strings::orgFreedesktopDBusProperties(), QStringLiteral("PropertiesChanged")); 0032 signal << Strings::orgBluezGattCharacteristic1(); 0033 signal << updatedProperties; 0034 signal << QStringList(); 0035 DBusConnection::orgBluez().send(signal); 0036 } 0037 0038 } // namespace BluezQt