1/*
2 * BluezQt - Asynchronous Bluez wrapper library
3 *
4 * SPDX-FileCopyrightText: 2015 David Rosca <nowrep@gmail.com>
5 *
6 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7 */
8
9#include "input.h"
10#include "input_p.h"
11#include "macros.h"
12#include "utils.h"
13
14#include <QVariantMap>
15
16namespace BluezQt
17{
18static Input::ReconnectMode stringToReconnectMode(const QString &mode)
19{
20 if (mode == QLatin1String("none")) {
21 return Input::NoReconnect;
22 } else if (mode == QLatin1String("host")) {
23 return Input::HostReconnect;
24 } else if (mode == QLatin1String("device")) {
25 return Input::DeviceReconnect;
26 }
27 return Input::AnyReconnect;
28}
29
30InputPrivate::InputPrivate(const QString &path, const QVariantMap &properties)
31 : QObject()
32 , m_path(path)
33{
34 // Init properties
35 m_reconnectMode = stringToReconnectMode(mode: properties.value(QStringLiteral("ReconnectMode")).toString());
36}
37
38void InputPrivate::propertiesChanged(const QString &interface, const QVariantMap &changed, const QStringList &invalidated)
39{
40 Q_UNUSED(invalidated)
41
42 if (interface != Strings::orgBluezInput1()) {
43 return;
44 }
45
46 QVariantMap::const_iterator i;
47 for (i = changed.constBegin(); i != changed.constEnd(); ++i) {
48 const QVariant &value = i.value();
49 const QString &property = i.key();
50
51 if (property == QLatin1String("ReconnectMode")) {
52 PROPERTY_CHANGED2(m_reconnectMode, stringToReconnectMode(value.toString()), reconnectModeChanged);
53 }
54 }
55}
56
57Input::Input(const QString &path, const QVariantMap &properties)
58 : d(new InputPrivate(path, properties))
59{
60}
61
62Input::~Input() = default;
63
64InputPtr Input::toSharedPtr() const
65{
66 return d->q.toStrongRef();
67}
68
69Input::ReconnectMode Input::reconnectMode() const
70{
71 return d->m_reconnectMode;
72}
73
74} // namespace BluezQt
75
76#include "moc_input.cpp"
77#include "moc_input_p.cpp"
78

source code of bluez-qt/src/input.cpp