~mateo-salta/uvolman/uvolman

« back to all changes in this revision

Viewing changes to backend/UVolMan/DBus/PulseRestoreEntry.cpp

  • Committer: Devid Antonio Filoni
  • Date: 2016-12-18 12:03:36 UTC
  • Revision ID: git-v1:c0a01e25fe39157e52ff5d52b4f5d4b956594e4b
Intercept RestoreEntry.VolumeUpdated signal in PulseRestoreEntry and hide invalid role entries

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
#include <QDBusMetaType>
27
27
#include <QDebug>
28
28
 
29
 
#define PA_VOLUME_NORM 65536
 
29
#define PA_VOLUME_NORM (double) 65536
30
30
Q_DECLARE_METATYPE(DBusRestoreEntryVolume)
31
31
 
32
32
PulseRestoreEntry::PulseRestoreEntry(QObject *parent, const QString &peerConnName, const QString &entryPath)
53
53
    isMute = getProperty("Mute").toBool();
54
54
 
55
55
    bool connected;
56
 
    connected = conn.connect("org.PulseAudio1",
 
56
    connected = conn.connect("org.PulseAudio1.Ext.StreamRestore1",
57
57
                            path,
58
58
                            "org.PulseAudio.Ext.StreamRestore1.RestoreEntry",
59
59
                            "VolumeUpdated",
152
152
 
153
153
void PulseRestoreEntry::VolumeUpdated(const QDBusMessage &message)
154
154
{
155
 
    qWarning() << "[PulseRestoreEntry#TODO] IMPLEMENT PARSING OF MESSAGE: " << message;
156
 
    /* volume = ...
157
 
    Q_EMIT volumeChanged(QVariant::fromValue(volume)); */
 
155
    QList<QVariant> outArgs = message.arguments();
 
156
    QVariant tmpQVariant = outArgs.at(0);
 
157
    const QDBusArgument &arg = tmpQVariant.value<QDBusArgument>();
 
158
    double tmpVolume;
 
159
    while (!arg.atEnd()) {
 
160
        DBusRestoreEntryVolume tmpDBusVolume;
 
161
        arg.beginMapEntry();
 
162
        arg >> tmpDBusVolume;
 
163
        arg.endMapEntry();
 
164
        tmpVolume = tmpDBusVolume.getSecond()/PA_VOLUME_NORM;
 
165
    }
 
166
    arg.endMap();
 
167
 
 
168
    if ((int) (tmpVolume*100) != (int) (volume*100))
 
169
    {
 
170
        volume = tmpVolume;
 
171
        Q_EMIT volumeChanged(QVariant::fromValue(volume));
 
172
    }
158
173
}