diff options
Diffstat (limited to 'AudioManagerPoC/business_logic/include/audioManagerInterface.h')
-rw-r--r-- | AudioManagerPoC/business_logic/include/audioManagerInterface.h | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/AudioManagerPoC/business_logic/include/audioManagerInterface.h b/AudioManagerPoC/business_logic/include/audioManagerInterface.h new file mode 100644 index 0000000..92b53d2 --- /dev/null +++ b/AudioManagerPoC/business_logic/include/audioManagerInterface.h @@ -0,0 +1,114 @@ +/** + * SPDX license identifier: MPL-2.0 + * + * Copyright (C) 2011-2014, Wind River Systems + * Copyright (C) 2014, GENIVI Alliance + * + * This file is part of GENIVI AudioManager PoC. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License (MPL), v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * For further information see http://www.genivi.org/. + * + * List of changes: + * + * 21.09.2014, Adrian Scarlat, First version of the code; + * Added Copyright and License information; + */ + +#ifndef AUDIOMANAGER_H +#define AUDIOMANAGER_H + +#include <stdint.h> + +#include <QDBusArgument> +#include <QDBusAbstractInterface> +#include <QDBusVariant> + +typedef struct +{ + ushort mainConnectionID; + ushort sourceID; + ushort sinkID; + short delay; + short connectionState; +} MainConnection; + + +typedef struct +{ + short available; + short reason; +} Availability; + + +typedef struct +{ + ushort sinkID; + QString name; + Availability availability; + short volume; + short muteState; + ushort sinkClassID; +} Sink; + + +typedef struct +{ + ushort sourceID; + QString name; + Availability availability; + ushort sourceClassID; + short volume; +} Source; + + +Q_DECLARE_METATYPE(ushort); +Q_DECLARE_METATYPE(MainConnection); +Q_DECLARE_METATYPE(Availability); +Q_DECLARE_METATYPE(Sink); +Q_DECLARE_METATYPE(Source); + +Q_DECLARE_METATYPE(QList<MainConnection>); +Q_DECLARE_METATYPE(QList<Availability>); +Q_DECLARE_METATYPE(QList<Sink>); +Q_DECLARE_METATYPE(QList<Source>); + +QDBusArgument &operator<<(QDBusArgument &argument, const MainConnection &theStruct); + +const QDBusArgument &operator>>(const QDBusArgument &argument, MainConnection &theStruct); + +QDBusArgument &operator<<(QDBusArgument &argument, const Availability &theStruct); + +const QDBusArgument &operator>>(const QDBusArgument &argument, Availability &theStruct); + +QDBusArgument &operator<<(QDBusArgument &argument, const Sink &theStruct); + +const QDBusArgument &operator>>(const QDBusArgument &argument, Sink &theStruct); + +QDBusArgument &operator<<(QDBusArgument &argument, const Source &theStruct); + +const QDBusArgument &operator>>(const QDBusArgument &argument, Source &theStruct); + +class Q_DBUS_EXPORT audioManagerInterface : public QDBusAbstractInterface +{ +public: + audioManagerInterface(QObject *parent); + void Connect(const QString sourceName, const QString sinkName); + void Disconnect(const QString sourceName, const QString sinkName); + void SetVolume(const QString sinkName, short volume); + + QList<Source> GetListMainSources(); + QList<Sink> GetListMainSinks(); + QList<MainConnection> GetListMainConnections(); + +private: + QMap<QString, ushort> sinkName2SinkID; + QMap<QString, ushort> sourceName2SourceID; + QMap<uint, QString> mainConnectionID2SourceName; + QMap<QString, uint> sourceName2mainConnectionID; +}; + +#endif // AUDIOMANAGER_H |