[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