BluezQt 5.109.0
mediaendpoint.h
1/*
2 * BluezQt - Asynchronous BlueZ wrapper library
3 *
4 * SPDX-FileCopyrightText: 2018 Manuel Weichselbaumer <mincequi@web.de>
5 *
6 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7 */
8
9#ifndef BLUEZQT_MEDIAENDPOINT_H
10#define BLUEZQT_MEDIAENDPOINT_H
11
12#include <QObject>
13
14#include "bluezqt_export.h"
15#include "request.h"
16
17class QDBusObjectPath;
18
19namespace BluezQt
20{
28class BLUEZQT_EXPORT MediaEndpoint : public QObject
29{
30 Q_OBJECT
31
32public:
34 enum class Role {
35 AudioSource,
36 AudioSink,
37 };
38
39 // KF6 TODO: use types from mediatypes.h
41 enum class Codec {
42 Sbc,
43 Aac,
44 };
45
48 Role role;
49 Codec codec;
50 };
51
57 explicit MediaEndpoint(const Configuration &configuration, QObject *parent = nullptr);
58
62 ~MediaEndpoint() override;
63
73 virtual QDBusObjectPath objectPath() const;
74
80 virtual const QVariantMap &properties() const;
81
88 virtual void setConfiguration(const QString &transportObjectPath, const QVariantMap &properties);
89
99 virtual void selectConfiguration(const QByteArray &capabilities, const Request<QByteArray> &request);
100
104 virtual void clearConfiguration(const QString &transportObjectPath);
105
116 virtual void release();
117
118Q_SIGNALS:
122 void configurationSelected(const QByteArray &capabilities, const QByteArray &configuration);
123
127 void configurationSet(const QString &transportObjectPath, const QVariantMap &properties);
128
132 void configurationCleared(const QString &transportObjectPath);
133
134private:
135 class MediaEndpointPrivate *const d;
136};
137
138} // namespace BluezQt
139
140#endif // BLUEZQT_MEDIAENDPOINT_H
Bluetooth MediaEndpoint.
Definition mediaendpoint.h:29
void configurationSet(const QString &transportObjectPath, const QVariantMap &properties)
Indicates that configuration was set for transport.
Codec
Codec which this MediaEndpoint supports.
Definition mediaendpoint.h:41
virtual const QVariantMap & properties() const
Properties of the endpoint.
virtual void clearConfiguration(const QString &transportObjectPath)
Clear transport configuration.
~MediaEndpoint() override
Destroys a MediaEndpoint object.
MediaEndpoint(const Configuration &configuration, QObject *parent=nullptr)
Creates a new MediaEndpoint object.
void configurationCleared(const QString &transportObjectPath)
Indicates that configuration was cleared for transport.
virtual void selectConfiguration(const QByteArray &capabilities, const Request< QByteArray > &request)
Select preferable configuration from the supported capabilities.
Role
Role which this MediaEndpoint acts as.
Definition mediaendpoint.h:34
virtual void setConfiguration(const QString &transportObjectPath, const QVariantMap &properties)
Set configuration for the transport.
virtual QDBusObjectPath objectPath() const
D-Bus object path of the MediaEndpoint.
virtual void release()
Indicates that the MediaEndpoint was unregistered.
void configurationSelected(const QByteArray &capabilities, const QByteArray &configuration)
Indicates that configuration was selected.
D-Bus request.
Definition request.h:39
Configuration for MediaEndpoint construction.
Definition mediaendpoint.h:47