diff --git a/bin/dbus/cx.ring.Ring.ConfigurationManager.xml b/bin/dbus/cx.ring.Ring.ConfigurationManager.xml
index 348f7ab24..517157d08 100644
--- a/bin/dbus/cx.ring.Ring.ConfigurationManager.xml
+++ b/bin/dbus/cx.ring.Ring.ConfigurationManager.xml
@@ -779,6 +779,24 @@
+
+
+
+
+ If hardware decoding is enabled
+
+
+ Signal triggered when hardware decoding changes.
+
+
+
+
+ If hardware encoding is enabled
+
+
+ Signal triggered when hardware encoding changes.
+
+
diff --git a/bin/dbus/dbusclient.cpp b/bin/dbus/dbusclient.cpp
index 465156ab7..d412fe375 100644
--- a/bin/dbus/dbusclient.cpp
+++ b/bin/dbus/dbusclient.cpp
@@ -186,6 +186,8 @@ DBusClient::initLibrary(int flags)
exportable_callback(bind(&DBusConfigurationManager::certificateStateChanged, confM, _1, _2, _3 )),
exportable_callback(bind(&DBusConfigurationManager::mediaParametersChanged, confM, _1 )),
exportable_callback(bind(&DBusConfigurationManager::migrationEnded, confM, _1, _2 )),
+ exportable_callback(bind(&DBusConfigurationManager::hardwareDecodingChanged, confM, _1 )),
+ exportable_callback(bind(&DBusConfigurationManager::hardwareEncodingChanged, confM, _1 )),
};
// Presence event handlers
diff --git a/bin/jni/configurationmanager.i b/bin/jni/configurationmanager.i
index 62430da0c..71bb314e4 100644
--- a/bin/jni/configurationmanager.i
+++ b/bin/jni/configurationmanager.i
@@ -56,6 +56,9 @@ public:
virtual void migrationEnded(const std::string& /*accountId*/, const std::string& /*state*/){}
virtual void deviceRevocationEnded(const std::string& /*accountId*/, const std::string& /*device*/, int /*status*/){}
+
+ virtual void hardwareDecodingChanged(bool /*state*/){}
+ virtual void hardwareEncodingChanged(bool /*state*/){}
};
%}
@@ -247,4 +250,7 @@ public:
virtual void migrationEnded(const std::string& /*accountId*/, const std::string& /*state*/){}
virtual void deviceRevocationEnded(const std::string& /*accountId*/, const std::string& /*device*/, int /*status*/){}
+
+ virtual void hardwareDecodingChanged(bool /*state*/){}
+ virtual void hardwareEncodingChanged(bool /*state*/){}
};
diff --git a/bin/nodejs/configurationmanager.i b/bin/nodejs/configurationmanager.i
index a86d6aae5..c696d1743 100644
--- a/bin/nodejs/configurationmanager.i
+++ b/bin/nodejs/configurationmanager.i
@@ -235,4 +235,8 @@ public:
virtual void migrationEnded(const std::string& /*accountId*/, const std::string& /*state*/){}
virtual void deviceRevocationEnded(const std::string& /*accountId*/, const std::string& /*device*/, int /*status*/){}
+
+ virtual void hardwareDecodingChanged(bool /*state*/){}
+ virtual void hardwareEncodingChanged(bool /*state*/){}
+
};
diff --git a/configure.ac b/configure.ac
index 23ba85988..6781decec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ dnl Jami - configure.ac for automake 1.9 and autoconf 2.59
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.65])
-AC_INIT([Ring Daemon],[7.2.0],[ring@gnu.org],[ring])
+AC_INIT([Ring Daemon],[7.3.0],[ring@gnu.org],[ring])
AC_COPYRIGHT([[Copyright (c) Savoir-faire Linux 2004-2018]])
AC_REVISION([$Revision$])
diff --git a/src/client/ring_signal.cpp b/src/client/ring_signal.cpp
index d10916642..39f2c0793 100644
--- a/src/client/ring_signal.cpp
+++ b/src/client/ring_signal.cpp
@@ -81,6 +81,8 @@ getSignalHandlers()
exported_callback(),
exported_callback(),
#endif
+ exported_callback(),
+ exported_callback(),
/* Debug */
exported_callback(),
@@ -135,4 +137,4 @@ registerSignalHandlers(const std::map* /* path_ret */);
};
#endif
+ struct DRING_PUBLIC HardwareDecodingChanged {
+ constexpr static const char* name = "HardwareDecodingChanged";
+ using cb_type = void(bool /* state */);
+ };
+ struct DRING_PUBLIC HardwareEncodingChanged {
+ constexpr static const char* name = "HardwareEncodingChanged";
+ using cb_type = void(bool /* state */);
+ };
};
// Can be used when a client's stdout is not available
diff --git a/src/media/media_decoder.cpp b/src/media/media_decoder.cpp
index f150b2bb3..06d4e789a 100644
--- a/src/media/media_decoder.cpp
+++ b/src/media/media_decoder.cpp
@@ -35,6 +35,7 @@
#include "string_utils.h"
#include "logger.h"
+#include "client/ring_signal.h"
#include
#include
@@ -381,6 +382,7 @@ void
MediaDecoder::enableAccel(bool enableAccel)
{
enableAccel_ = enableAccel;
+ emitSignal(enableAccel_);
if (!enableAccel) {
accel_ = {};
if (decoderCtx_->hw_device_ctx)
diff --git a/src/preferences.h b/src/preferences.h
index 31bf3f033..cf68a3bc9 100644
--- a/src/preferences.h
+++ b/src/preferences.h
@@ -22,6 +22,7 @@
#define __PREFERENCE_H__
#include "config/serializable.h"
+#include "client/ring_signal.h"
#include
#include