]> git.sesse.net Git - vlc/commitdiff
dbus_screensaver: add o.fd.ScreenSaver support (fixes #7824)
authorRémi Denis-Courmont <remi@remlab.net>
Fri, 7 Dec 2012 20:23:27 +0000 (22:23 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Fri, 7 Dec 2012 20:23:27 +0000 (22:23 +0200)
modules/misc/inhibit/dbus.c

index 6618d54f88d24124e9cafd53d7b0569cb635e5a5..ffb0e57a5726ee5459193fea2e306ea36f45a130 100644 (file)
@@ -38,7 +38,8 @@
 
 enum vlc_inhibit_api
 {
-    FREEDESKTOP, /* KDE and GNOME <= 2.26 */
+    FDO_SS, /**< KDE >= 4 and GNOME >= 3.6 */
+    FDO_PM, /**< KDE and GNOME <= 2.26 */
     GNOME, /**< GNOME 2.26..3.4 */
 };
 
@@ -46,26 +47,30 @@ enum vlc_inhibit_api
 
 static const char dbus_service[][32] =
 {
-    [FREEDESKTOP] = "org.freedesktop.PowerManagement",
-    [GNOME]       = "org.gnome.SessionManager",
+    [FDO_SS] = "org.freedesktop.ScreenSaver",
+    [FDO_PM] = "org.freedesktop.PowerManagement",
+    [GNOME]  = "org.gnome.SessionManager",
 };
 
 static const char dbus_path[][33] =
 {
-    [FREEDESKTOP] = "/org/freedesktop/PowerManagement",
-    [GNOME]       = "/org/gnome/SessionManager",
+    [FDO_SS] = "/ScreenSaver",
+    [FDO_PM] = "/org/freedesktop/PowerManagement",
+    [GNOME]  = "/org/gnome/SessionManager",
 };
 
 static const char dbus_interface[][40] =
 {
-    [FREEDESKTOP] = "org.freedesktop.PowerManagement.Inhibit",
-    [GNOME]       = "org.gnome.SessionManager",
+    [FDO_SS] = "org.freedesktop.ScreenSaver",
+    [FDO_PM] = "org.freedesktop.PowerManagement.Inhibit",
+    [GNOME]  = "org.gnome.SessionManager",
 };
 
 static const char dbus_method_uninhibit[][10] =
 {
-    [FREEDESKTOP] = "UnInhibit",
-    [GNOME]       = "Uninhibit",
+    [FDO_SS] = "UnInhibit",
+    [FDO_PM] = "UnInhibit",
+    [GNOME]  = "Uninhibit",
 };
 
 struct vlc_inhibit_sys
@@ -129,11 +134,6 @@ static void Inhibit(vlc_inhibit_t *ih, unsigned flags)
 
         switch (type)
         {
-            case FREEDESKTOP:
-                ret = dbus_message_append_args(msg, DBUS_TYPE_STRING, &app,
-                                                    DBUS_TYPE_STRING, &reason,
-                                                    DBUS_TYPE_INVALID);
-                break;
             case GNOME:
             {
                 dbus_uint32_t xid = 0; // FIXME ?
@@ -147,7 +147,10 @@ static void Inhibit(vlc_inhibit_t *ih, unsigned flags)
                 break;
             }
             default:
-                assert(0);
+                ret = dbus_message_append_args(msg, DBUS_TYPE_STRING, &app,
+                                                    DBUS_TYPE_STRING, &reason,
+                                                    DBUS_TYPE_INVALID);
+                break;
         }
 
         if (!ret