void DBusClient::_zoom_keys_handler(quint32 code, quint32 /*ignored*/) {
emit zoomKeyPressed(code);
}
+
+void DBusClient::setVolume(quint32 volume) {
+ QDBusMessage msg = QDBusMessage::createMethodCall("com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer",
+ "/com/nokia/mafw/renderer/gstrenderer",
+ "com.nokia.mafw.extension",
+ "set_extension_property");
+ QList<QVariant> args;
+ args << "volume" << QVariant::fromValue(QDBusVariant(volume));
+ msg.setArguments(args);
+ QDBusConnection::sessionBus().send(msg);
+}
+
+quint32 DBusClient::getVolume() {
+ QDBusInterface iface("com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer",
+ "/com/nokia/mafw/renderer/gstrenderer",
+ "com.nokia.mafw.extension",
+ QDBusConnection::sessionBus());
+ QDBusMessage reply = iface.call("get_extension_property", "volume");
+ QList<QVariant> values = reply.arguments();
+ QVariant volume = values.takeAt(1);
+ QDBusVariant var = qvariant_cast<QDBusVariant>(volume);
+ volume = var.variant();
+ return volume.toUInt();
+}
public slots:
void enableKeys();
void disableKeys();
+ void setVolume(quint32 volume);
+ quint32 getVolume();
private slots:
void _unpause_keys();
void _display_handler(QString);
private:
QTimer _timer;
QDBusMessage _unpause_keys_message;
+ QDBusMessage _set_volume_message;
+ QDBusMessage _get_volume_message;
};
#endif // DBUSCLIENT_H
void MainWindow::_set_display_state(bool state) {
_display_unlocked = state;
+ if (!_display_unlocked) { // remember volume level when blocking screen
+ _system_volume = _dbus_client.getVolume();
+ }
}
void MainWindow::_zoom_key_pressed(quint32 code) {
if (code == MM_KEY_DOWN) {
if (behavior == "track") {
_player_form->prev();
+ _dbus_client.setVolume(_system_volume);
}
} else if (code == MM_KEY_UP) {
if (behavior == "track") {
_player_form->next();
+ _dbus_client.setVolume(_system_volume);
}
}
}