summaryrefslogtreecommitdiffstats
path: root/app/mixer.h
diff options
context:
space:
mode:
authorLoïc Collignon <loic.collignon@iot.bzh>2018-06-15 23:31:34 +0200
committerLoïc Collignon <loic.collignon@iot.bzh>2018-06-16 18:44:22 +0200
commit62bb1f0ceab710c594021c715017560f4e5f25da (patch)
treeb3a656bea2adce533b4336e246a3fd60e6b173df /app/mixer.h
parent2aabd6ae0f05d91253f492ff1659626d3090cabe (diff)
WIP version based on 4a High Level APIeel_5.1.0eel/5.1.05.1.0eel
This is a non-completly working version based on the 4a High Level API. It displays one slider per audio role, should be able to set volume on roles, but sliders are not in sync and moving a slider cause a lot of calls due to bug. Supposed to be fixed soon. Also, had to hack the autobuild script cause it make cmake to fail. Obsiously, target 'package' should run 'make widget'... Change-Id: Ic16ed484e090ebc853e59b836ff1570afdcfce3b Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
Diffstat (limited to 'app/mixer.h')
-rw-r--r--app/mixer.h66
1 files changed, 14 insertions, 52 deletions
diff --git a/app/mixer.h b/app/mixer.h
index b09e1c0..a46c8a1 100644
--- a/app/mixer.h
+++ b/app/mixer.h
@@ -15,78 +15,40 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#ifndef MIXER_H
-#define MIXER_H
+#pragma once
#include <QObject>
+#include <QString>
#include <QSharedPointer>
-#include <QVariantList>
-#include "qafbwsclient.h"
-#include "qafbwsmsg.h"
+#include <QStringList>
+#include "qafbwebsocketclient.h"
+//#include "volumeslider.h"
class Mixer
: public QObject
{
Q_OBJECT
- Q_PROPERTY(QVariantList hals READ hals NOTIFY halsChanged)
- Q_PROPERTY(QString activeHal READ activeHal WRITE setActiveHal NOTIFY activeHalChanged)
+ Q_PROPERTY(QStringList roles READ roles NOTIFY rolesChanged)
- Q_PROPERTY(int masterVolume READ masterVolume WRITE setMasterVolume NOTIFY masterVolumeChanged)
- Q_PROPERTY(int pcmVolume READ pcmVolume WRITE setPcmVolume NOTIFY pcmVolumeChanged)
- Q_PROPERTY(int microphoneVolume READ microphoneVolume WRITE setMicrophoneVolume NOTIFY microphoneVolumeChanged)
+private:
public:
explicit Mixer(QObject* parent = nullptr);
Mixer(const Mixer&) = delete;
Q_INVOKABLE void open(const QUrl& url);
- Q_INVOKABLE QVariantList hals() const;
- Q_INVOKABLE QString activeHal() const;
- Q_INVOKABLE void setActiveHal(QString h);
-
- Q_INVOKABLE int masterVolume() const;
- Q_INVOKABLE int pcmVolume() const;
- Q_INVOKABLE int microphoneVolume() const;
-
- Q_INVOKABLE void setMasterVolume(int v);
- Q_INVOKABLE void setPcmVolume(int v);
- Q_INVOKABLE void setMicrophoneVolume(int v);
+ Q_INVOKABLE QStringList roles() const;
+ Q_INVOKABLE void setVolume(const QString& name, int value);
+ Q_INVOKABLE void getVolume(const QString& name);
signals:
- void halsChanged();
- void activeHalChanged();
- void masterVolumeChanged();
- void pcmVolumeChanged();
- void microphoneVolumeChanged();
+ void rolesChanged();
+ void volumeChanged(const QString& name, int value);
private slots:
void onClientConnected();
- void onHalListClosed();
- void onGetMasterVolume();
- void onGetPcmVolume();
- void onGetMicrophoneVolume();
- void onSetMasterVolume();
- void onSetPcmVolume();
- void onSetMicrophoneVolume();
private:
- int m_masterVolume;
- int m_pcmVolume;
- int m_microphoneVolume;
- int m_masterVolumePending;
- int m_pcmVolumePending;
- int m_microphoneVolumePending;
- QAfbWsClient m_client;
- QVariantList m_hallist;
- QString m_activeHal;
- QSharedPointer<QAfbWsMsg> m_alsacoreHallist;
- QSharedPointer<QAfbWsMsg> m_getMasterVolume;
- QSharedPointer<QAfbWsMsg> m_getPcmVolume;
- QSharedPointer<QAfbWsMsg> m_getMicrophoneVolume;
- QSharedPointer<QAfbWsMsg> m_setMasterVolume;
- QSharedPointer<QAfbWsMsg> m_setPcmVolume;
- QSharedPointer<QAfbWsMsg> m_setMicrophoneVolume;
+ QStringList m_roles;
+ QAfbWebsocketClient m_client;
};
-
-#endif // MIXER_H