From 2cdc662a3d67ff679a3d1ddcb5ebaa207624cffd Mon Sep 17 00:00:00 2001
From: philippegorley <philippe.gorley@savoirfairelinux.com>
Date: Wed, 14 Jun 2017 11:51:58 -0400
Subject: [PATCH] dbus: correctly expose hardware acceleration

Hardware acceleration was not correctly exposed through the dbus
interfaces

Change-Id: I93dcf14f2a19a6ce768b8ac9799e5f96a8eaa44d
---
 bin/dbus/cx.ring.Ring.VideoManager.xml | 15 ++++++++++++++-
 bin/dbus/dbusvideomanager.cpp          |  6 +++---
 bin/dbus/dbusvideomanager.h            |  2 +-
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/bin/dbus/cx.ring.Ring.VideoManager.xml b/bin/dbus/cx.ring.Ring.VideoManager.xml
index bb24dab4dc..fef89486d0 100644
--- a/bin/dbus/cx.ring.Ring.VideoManager.xml
+++ b/bin/dbus/cx.ring.Ring.VideoManager.xml
@@ -78,6 +78,20 @@
             </arg>
         </method>
 
+        <method name="getDecodingAccelerated" tp:name-for-bindings="getDecodingAccelerated">
+            <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="Bool"/>
+            <arg type="b" name="state" direction="out">
+            <tp:docstring>Returns true if hardware decoding is enabled, false otherwise</tp:docstring>
+            </arg>
+        </method>
+
+        <method name="setDecodingAccelerated" tp:name-for-bindings="setDecodingAccelerated">
+            <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="Bool"/>
+            <arg type="b" name="state" direction="in">
+            <tp:docstring>Toggle hardware decoding</tp:docstring>
+            </arg>
+        </method>
+
         <signal name="deviceEvent" tp:name-for-bindings="deviceEvent">
            <tp:docstring>Signal triggered by changes in the detected v4l2 devices, e.g. a camera being unplugged.</tp:docstring>
         </signal>
@@ -113,6 +127,5 @@
               <tp:docstring>Whether or not this texture belongs to a video mixer or is a single texture</tp:docstring>
             </arg>
         </signal>
-
     </interface>
 </node>
diff --git a/bin/dbus/dbusvideomanager.cpp b/bin/dbus/dbusvideomanager.cpp
index 5c968eb2f8..aea37d92d4 100644
--- a/bin/dbus/dbusvideomanager.cpp
+++ b/bin/dbus/dbusvideomanager.cpp
@@ -85,14 +85,14 @@ DBusVideoManager::hasCameraStarted() -> decltype(DRing::hasCameraStarted())
     return DRing::hasCameraStarted();
 }
 
-bool
-DBusVideoManager::getDecodingAccelerated()
+auto
+DBusVideoManager::getDecodingAccelerated() -> decltype(DRing::getDecodingAccelerated())
 {
     return DRing::getDecodingAccelerated();
 }
 
 void
-DBusVideoManager::setDecodingAccelerated(bool state)
+DBusVideoManager::setDecodingAccelerated(const bool& state)
 {
     DRing::setDecodingAccelerated(state);
 }
diff --git a/bin/dbus/dbusvideomanager.h b/bin/dbus/dbusvideomanager.h
index 119c172dc3..a20452b246 100644
--- a/bin/dbus/dbusvideomanager.h
+++ b/bin/dbus/dbusvideomanager.h
@@ -61,7 +61,7 @@ class DBusVideoManager :
         bool switchInput(const std::string& resource);
         bool hasCameraStarted();
         bool getDecodingAccelerated();
-        void setDecodingAccelerated(bool state);
+        void setDecodingAccelerated(const bool& state);
 };
 
 #endif // __RING_DBUSVIDEOMANAGER_H__
-- 
GitLab