[Xfce4-commits] <parole:master> Added sm-client-id option

Ali Abdallah aliov at xfce.org
Wed Aug 19 12:16:02 CEST 2009


Updating branch refs/heads/master
         to 02959be2244f084dad854f42d68c33f72536b2ab (commit)
       from 825b9093f5019583bca4c7df109ea3479dd01798 (commit)

commit 02959be2244f084dad854f42d68c33f72536b2ab
Author: Ali Abdallah <aliov at xfce.org>
Date:   Tue Aug 18 14:34:22 2009 +0200

    Added sm-client-id option

 parole/main.c           |   11 +++++++++++
 parole/parole-session.c |   10 +++++++++-
 parole/parole-session.h |    2 ++
 3 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/parole/main.c b/parole/main.c
index da8cc7f..9dfbb2d 100644
--- a/parole/main.c
+++ b/parole/main.c
@@ -43,6 +43,7 @@
 #include "parole-player.h"
 #include "parole-plugins-manager.h"
 #include "parole-utils.h"
+#include "parole-session.h"
 #include "parole-dbus.h"
 #include "parole-builder.h"
 
@@ -142,6 +143,7 @@ parole_send (gchar **filenames)
 int main (int argc, char **argv)
 {
     ParolePlayer *player;
+    ParoleSession *session;
     ParolePluginsManager *plugins;
     GtkBuilder *builder;
     GOptionContext *ctx;
@@ -150,11 +152,13 @@ int main (int argc, char **argv)
     gchar **filenames = NULL;
     gboolean new_instance = FALSE;
     gboolean version = FALSE;
+    gchar    *client_id = NULL;
     
     GOptionEntry option_entries[] = 
     {
 	{"new-instance", 'i', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &new_instance, N_("Open a new instance"), NULL },
 	{ "version", 'V', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &version, N_("Version information"), NULL },
+	{ "sm-client-id", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_STRING, &client_id, NULL, NULL },
 	{G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_FILENAME_ARRAY, &filenames, N_("Media to play"), NULL},
         { NULL, },
     };
@@ -198,6 +202,12 @@ int main (int argc, char **argv)
     {
 	builder = parole_builder_get_main_interface ();
 	parole_dbus_register_name (PAROLE_DBUS_NAME);
+	session = parole_session_get ();
+	
+	if ( client_id )
+	    parole_session_set_client_id (session, client_id);
+	    
+	parole_session_real_init (session);
 	player = parole_player_new ();
 
 	if ( filenames && filenames[0] != NULL )
@@ -243,6 +253,7 @@ int main (int argc, char **argv)
 	
 	parole_dbus_release_name (PAROLE_DBUS_NAME);
 	g_object_unref (plugins);
+	g_object_unref (session);
     }
 
     gst_deinit ();
diff --git a/parole/parole-session.c b/parole/parole-session.c
index 0b835bf..3c973ee 100644
--- a/parole/parole-session.c
+++ b/parole/parole-session.c
@@ -118,7 +118,6 @@ parole_session_init (ParoleSession *session)
 	return;
     }
     
-    session->priv->managed 	   = session_init (session->priv->client);
     session->priv->client->die     = parole_session_die;
 }
 
@@ -155,9 +154,18 @@ parole_session_get (void)
     return PAROLE_SESSION (parole_session_obj);
 }
 
+void parole_session_real_init       (ParoleSession *session)
+{
+    g_return_if_fail (PAROLE_IS_SESSION (session));
+    g_return_if_fail (session->priv->managed == FALSE);
+    
+    session->priv->managed = session_init (session->priv->client);
+}
+
 void parole_session_set_client_id (ParoleSession *session, const gchar *client_id)
 {
     g_return_if_fail (PAROLE_IS_SESSION (session));
+    g_return_if_fail (session->priv->managed == FALSE);
     
     if ( G_UNLIKELY (session->priv->client == NULL) )
 	return;
diff --git a/parole/parole-session.h b/parole/parole-session.h
index 74a96c8..b35593c 100644
--- a/parole/parole-session.h
+++ b/parole/parole-session.h
@@ -52,6 +52,8 @@ GType        			parole_session_get_type        (void) G_GNUC_CONST;
 
 ParoleSession       	       *parole_session_get             (void);
 
+void				parole_session_real_init       (ParoleSession *session);
+
 void 				parole_session_set_client_id   (ParoleSession *session, 
 								const gchar *client_id);
 G_END_DECLS



More information about the Xfce4-commits mailing list