totem r5913 - in trunk: . src/plugins/lirc



Author: hadess
Date: Tue Jan 13 11:48:38 2009
New Revision: 5913
URL: http://svn.gnome.org/viewvc/totem?rev=5913&view=rev

Log:
2009-01-13  Bastien Nocera  <hadess hadess net>

	* src/plugins/lirc/totem-lirc.c (totem_lirc_to_setting),
	(totem_lirc_read_code):
	* src/plugins/lirc/totem_lirc_default: Patch from
	Vidar Braut Haarr <vhaarr+bgo gmail com> to support
	repeat and shuffle through LIRC (Closes: #567258)



Modified:
   trunk/ChangeLog
   trunk/src/plugins/lirc/totem-lirc.c
   trunk/src/plugins/lirc/totem_lirc_default

Modified: trunk/src/plugins/lirc/totem-lirc.c
==============================================================================
--- trunk/src/plugins/lirc/totem-lirc.c	(original)
+++ trunk/src/plugins/lirc/totem-lirc.c	Tue Jan 13 11:48:38 2009
@@ -92,6 +92,10 @@
 #define TOTEM_IR_COMMAND_MUTE "mute"
 #define TOTEM_IR_COMMAND_TOGGLE_ASPECT "toggle_aspect"
 
+#define TOTEM_IR_SETTING "setting_"
+#define TOTEM_IR_SETTING_TOGGLE_REPEAT "setting_repeat"
+#define TOTEM_IR_SETTING_TOGGLE_SHUFFLE "setting_shuffle"
+
 G_MODULE_EXPORT GType register_totem_plugin	(GTypeModule *module);
 GType	totem_lirc_plugin_get_type		(void) G_GNUC_CONST;
 
@@ -138,6 +142,17 @@
 	return g_strdup (s + 1);
 }
 
+static TotemRemoteSetting
+totem_lirc_to_setting (const gchar *str, char **url)
+{
+	if (strcmp (str, TOTEM_IR_SETTING_TOGGLE_REPEAT) == 0)
+		return TOTEM_REMOTE_SETTING_REPEAT;
+	else if (strcmp (str, TOTEM_IR_SETTING_TOGGLE_SHUFFLE) == 0)
+		return TOTEM_REMOTE_SETTING_SHUFFLE;
+	else
+		return -1;
+}
+
 static TotemRemoteCommand
 totem_lirc_to_command (const gchar *str, char **url)
 {
@@ -233,9 +248,20 @@
 			break;
 		}
 
-		cmd = totem_lirc_to_command (str, &url);
+		if (g_str_has_prefix (str, TOTEM_IR_SETTING) != FALSE) {
+			TotemRemoteSetting setting;
 
-		totem_action_remote (pi->totem, cmd, url);
+			setting = totem_lirc_to_setting (str, &url);
+			if (setting >= 0) {
+				gboolean value;
+
+				value = totem_action_remote_get_setting (pi->totem, setting);
+				totem_action_remote_set_setting (pi->totem, setting, !value);
+			}
+		} else {
+			cmd = totem_lirc_to_command (str, &url);
+			totem_action_remote (pi->totem, cmd, url);
+		}
 		g_free (url);
 	} while (TRUE);
 

Modified: trunk/src/plugins/lirc/totem_lirc_default
==============================================================================
--- trunk/src/plugins/lirc/totem_lirc_default	(original)
+++ trunk/src/plugins/lirc/totem_lirc_default	Tue Jan 13 11:48:38 2009
@@ -186,3 +186,18 @@
 	config = mute
 end
 
+begin
+	prog = Totem
+	remote = *
+	button = KEY_SHUFFLE
+	repeat = 1
+	config = setting_shuffle
+end
+
+begin
+	prog = Totem
+	remote = *
+	button = KEY_MEDIA_REPEAT
+	repeat = 1
+	config = setting_repeat
+end



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]