BluezQt

media.cpp
1 /*
2  * BluezQt - Asynchronous Bluez wrapper library
3  *
4  * SPDX-FileCopyrightText: 2018 Manuel Weichselbaumer <[email protected]>
5  *
6  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7  */
8 
9 #include "media.h"
10 #include "debug.h"
11 #include "media_p.h"
12 #include "mediaendpoint.h"
13 #include "mediaendpointadaptor.h"
14 #include "pendingcall.h"
15 #include "utils.h"
16 
17 namespace BluezQt
18 {
19 Media::Media(const QString &path, QObject *parent)
20  : QObject(parent)
21  , d(new MediaPrivate())
22 {
23  d->m_path = path;
24  d->m_bluezMedia = new BluezMedia(Strings::orgBluez(), path, DBusConnection::orgBluez(), this);
25 }
26 
28 {
29  delete d;
30 }
31 
33 {
34  Q_ASSERT(endpoint);
35 
36  if (!d->m_bluezMedia) {
37  return new PendingCall(PendingCall::InternalError, QStringLiteral("Media not operational!"));
38  }
39 
40  new MediaEndpointAdaptor(endpoint);
41 
42  if (!DBusConnection::orgBluez().registerObject(endpoint->objectPath().path(), endpoint)) {
43  qCDebug(BLUEZQT) << "Cannot register object" << endpoint->objectPath().path();
44  }
45 
46  return new PendingCall(d->m_bluezMedia->RegisterEndpoint(endpoint->objectPath(), endpoint->properties()), PendingCall::ReturnVoid, this);
47 }
48 
50 {
51  Q_ASSERT(endpoint);
52 
53  if (!d->m_bluezMedia) {
54  return new PendingCall(PendingCall::InternalError, QStringLiteral("Media not operational!"));
55  }
56 
57  DBusConnection::orgBluez().unregisterObject(endpoint->objectPath().path());
58 
59  return new PendingCall(d->m_bluezMedia->UnregisterEndpoint(endpoint->objectPath()), PendingCall::ReturnVoid, this);
60 }
61 
62 } // namespace BluezQt
~Media() override
Destroys a Media object.
Definition: media.cpp:27
PendingCall * unregisterEndpoint(MediaEndpoint *endpoint)
Unregisters endpoint.
Definition: media.cpp:49
@ InternalError
Indicates an internal error.
Definition: pendingcall.h:95
virtual const QVariantMap & properties() const
Properties of the endpoint.
PendingCall * registerEndpoint(MediaEndpoint *endpoint)
Registers endpoint.
Definition: media.cpp:32
QString path() const const
virtual QDBusObjectPath objectPath() const
D-Bus object path of the MediaEndpoint.
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sun Sep 25 2022 04:19:10 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.