[Xfce4-commits] [apps/parole] 01/01: Fix source removal errors
noreply at xfce.org
noreply at xfce.org
Mon Jun 9 04:45:02 CEST 2014
This is an automated email from the git hooks/post-receive script.
bluesabre pushed a commit to branch master
in repository apps/parole.
commit f1a2a812c0eae0a7363a1623f33ddfc17e586292
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sun Jun 8 22:44:55 2014 -0400
Fix source removal errors
---
data/appdata/Makefile.am | 5 +-
src/gst/parole-gst.c | 743 +++++++++++++++++++-------------------
src/parole-medialist.c | 14 +-
src/parole-player.c | 26 +-
src/plugins/tray/tray-provider.c | 1 +
5 files changed, 397 insertions(+), 392 deletions(-)
diff --git a/data/appdata/Makefile.am b/data/appdata/Makefile.am
index 02c1f23..8aa9ebb 100644
--- a/data/appdata/Makefile.am
+++ b/data/appdata/Makefile.am
@@ -1,14 +1,13 @@
#
# .appdata
#
-appdata_in_files = parole.appdata.xml.in
+ at INTLTOOL_XML_RULE@
appdatadir = $(datadir)/appdata
appdata_DATA = $(appdata_in_files:.xml.in=.xml)
- at INTLTOOL_XML_RULE@
+appdata_in_files = parole.appdata.xml.in
EXTRA_DIST = \
parole.appdata.xml.in
CLEANFILES = \
- $(appdata_in_files) \
$(appdata_DATA)
\ No newline at end of file
diff --git a/src/gst/parole-gst.c b/src/gst/parole-gst.c
index 66a862a..de6beef 100644
--- a/src/gst/parole-gst.c
+++ b/src/gst/parole-gst.c
@@ -67,20 +67,20 @@
static void parole_gst_play_file_internal (ParoleGst *gst);
-static void parole_gst_change_state (ParoleGst *gst,
+static void parole_gst_change_state (ParoleGst *gst,
GstState new);
static void parole_gst_terminate_internal (ParoleGst *gst);
-
+
static GdkPixbuf *parole_gst_tag_list_get_cover_external (ParoleGst *gst);
-static GdkPixbuf *parole_gst_tag_list_get_cover_embedded (ParoleGst *gst,
+static GdkPixbuf *parole_gst_tag_list_get_cover_embedded (ParoleGst *gst,
GstTagList *tag_list);
-
-static GdkPixbuf *parole_gst_tag_list_get_cover (ParoleGst *gst,
+
+static GdkPixbuf *parole_gst_tag_list_get_cover (ParoleGst *gst,
GstTagList *tag_list);
-typedef enum
+typedef enum
{
GST_PLAY_FLAG_VIDEO = (1 << 0),
GST_PLAY_FLAG_AUDIO = (1 << 1),
@@ -102,43 +102,43 @@ struct ParoleGstPrivate
GstElement *audio_sink;
GstBus *bus;
-
+
GMutex lock;
GstState state;
GstState target;
ParoleState media_state;
-
+
ParoleStream *stream;
gulong tick_id;
GdkPixbuf *logo;
gchar *device;
GTimer *hidecursor_timer;
-
+
gpointer conf; /* Specific for ParoleMediaPlayer*/
-
+
gboolean terminating;
gboolean enable_tags;
-
+
gboolean update_vis;
gboolean with_vis;
gboolean vis_loaded;
gboolean buffering;
gboolean seeking;
gboolean update_color_balance;
-
+
gdouble volume;
-
+
gboolean use_custom_subtitles;
gchar* custom_subtitles;
-
+
ParoleAspectRatio aspect_ratio;
gulong state_change_id;
-
+
/*
* xvimage sink has brightness+hue+saturation+contrast.
*/
gboolean xvimage_sink;
-
+
gulong sig1;
gulong sig2;
};
@@ -176,23 +176,26 @@ parole_gst_finalize (GObject *object)
ParoleGst *gst;
gst = PAROLE_GST (object);
-
+
TRACE ("start");
-
+
if ( gst->priv->tick_id != 0)
+ {
g_source_remove (gst->priv->tick_id);
-
+ gst->priv->tick_id = 0;
+ }
+
parole_stream_init_properties (gst->priv->stream);
-
+
if ( gst->priv->stream )
g_object_unref (gst->priv->stream);
if ( gst->priv->logo )
g_object_unref (gst->priv->logo);
-
+
if ( gst->priv->device )
g_free (gst->priv->device);
-
+
g_mutex_clear (&gst->priv->lock);
G_OBJECT_CLASS (parole_gst_parent_class)->finalize (object);
@@ -217,20 +220,20 @@ parole_gst_parent_expose_event (GtkWidget *w, GdkEventExpose *ev, ParoleGst *gst
{
GtkAllocation *allocation = g_new0 (GtkAllocation, 1);
cairo_t *cr;
-
+
gtk_widget_get_allocation(w, allocation);
-
+
cr = gdk_cairo_create ( gtk_widget_get_window(w) );
-
+
cairo_set_source_rgb (cr, 0.0f, 0.0f, 0.0f);
-
+
cairo_rectangle (cr, allocation->x, allocation->y, allocation->width, allocation->height);
-
+
cairo_fill (cr);
cairo_destroy (cr);
-
+
g_free(allocation);
-
+
return FALSE;
}
@@ -242,12 +245,12 @@ parole_gst_realize (GtkWidget *widget)
GdkWindowAttr attr;
GdkRGBA color;
gint mask;
-
+
gtk_widget_set_realized (widget, TRUE);
gst = PAROLE_GST (widget);
-
+
gtk_widget_get_allocation(widget, allocation);
-
+
attr.x = allocation->x;
attr.y = allocation->y;
attr.width = allocation->width;
@@ -255,29 +258,29 @@ parole_gst_realize (GtkWidget *widget)
attr.visual = gtk_widget_get_visual (widget);
attr.wclass = GDK_INPUT_OUTPUT;
attr.window_type = GDK_WINDOW_CHILD;
- attr.event_mask = gtk_widget_get_events (widget) |
+ attr.event_mask = gtk_widget_get_events (widget) |
GDK_EXPOSURE_MASK |
- GDK_BUTTON_PRESS_MASK |
- GDK_BUTTON_RELEASE_MASK |
+ GDK_BUTTON_PRESS_MASK |
+ GDK_BUTTON_RELEASE_MASK |
GDK_POINTER_MOTION_MASK |
GDK_KEY_PRESS_MASK;
-
+
mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
-
+
gtk_widget_set_window(widget, gdk_window_new (gtk_widget_get_parent_window (widget),
&attr, mask) );
-
+
gdk_window_set_user_data (gtk_widget_get_window(widget), widget);
gdk_rgba_parse (&color, "black");
gdk_window_set_background_rgba (gtk_widget_get_window(widget), &color);
-
+
g_signal_connect (gtk_widget_get_toplevel (widget), "configure_event",
G_CALLBACK (parole_gst_configure_event_cb), gst);
-
+
g_signal_connect (gtk_widget_get_parent(gtk_widget_get_parent (widget)), "draw",
G_CALLBACK (parole_gst_parent_expose_event), gst);
-
+
g_free(allocation);
}
@@ -286,7 +289,7 @@ parole_gst_show (GtkWidget *widget)
{
if ( gtk_widget_get_window(widget) )
gdk_window_show (gtk_widget_get_window(widget));
-
+
if ( GTK_WIDGET_CLASS (parole_gst_parent_class)->show )
GTK_WIDGET_CLASS (parole_gst_parent_class)->show (widget);
}
@@ -305,7 +308,7 @@ parole_gst_get_video_output_size (ParoleGst *gst, gint *ret_w, gint *ret_h)
*ret_w = allocation->width;
*ret_h = allocation->height;
g_free(allocation);
-
+
if ( gst->priv->state >= GST_STATE_PAUSED )
{
gboolean has_video;
@@ -313,7 +316,7 @@ parole_gst_get_video_output_size (ParoleGst *gst, gint *ret_w, gint *ret_h)
guint video_par_n, video_par_d;
guint dar_n, dar_d;
guint disp_par_n, disp_par_d;
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"has-video", &has_video,
"video-width", &video_w,
@@ -321,7 +324,7 @@ parole_gst_get_video_output_size (ParoleGst *gst, gint *ret_w, gint *ret_h)
"disp-par-n", &disp_par_n,
"disp-par-d", &disp_par_d,
NULL);
-
+
if ( has_video )
{
if ( video_w != 0 && video_h != 0 )
@@ -353,18 +356,18 @@ parole_gst_get_video_output_size (ParoleGst *gst, gint *ret_w, gint *ret_h)
default:
return;
}
-
+
if ( gst_video_calculate_display_ratio (&dar_n, &dar_d,
video_w, video_h,
video_par_n, video_par_d,
disp_par_n, disp_par_d) )
{
- if (video_w % dar_n == 0)
+ if (video_w % dar_n == 0)
{
*ret_w = video_w;
*ret_h = (guint) gst_util_uint64_scale (video_w, dar_d, dar_n);
- }
- else
+ }
+ else
{
*ret_w = (guint) gst_util_uint64_scale (video_h, dar_n, dar_d);
*ret_h = video_h;
@@ -380,17 +383,17 @@ static void
parole_gst_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
{
g_return_if_fail (allocation != NULL);
-
+
gtk_widget_set_allocation(widget, allocation);
if ( gtk_widget_get_realized (widget) )
{
gint w, h;
gdouble ratio, width, height;
-
+
w = allocation->width;
h = allocation->height;
-
+
parole_gst_get_video_output_size (PAROLE_GST (widget), &w, &h);
width = w;
@@ -405,11 +408,11 @@ parole_gst_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
height *= ratio;
gdk_window_move_resize (gtk_widget_get_window(widget),
- allocation->x + (allocation->width - width)/2,
+ allocation->x + (allocation->width - width)/2,
allocation->y + (allocation->height - height)/2,
- width,
+ width,
height);
-
+
gtk_widget_queue_draw (widget);
}
}
@@ -418,31 +421,31 @@ static void
parole_gst_set_video_color_balance (ParoleGst *gst)
{
GstElement *video_sink;
-
+
gint brightness_value;
gint contrast_value;
gint hue_value;
gint saturation_value;
-
+
if ( !gst->priv->xvimage_sink)
return;
-
+
g_object_get (G_OBJECT (gst->priv->playbin),
"video-sink", &video_sink,
NULL);
-
+
if ( !video_sink )
return;
-
+
g_object_get (G_OBJECT (gst->priv->conf),
"brightness", &brightness_value,
"contrast", &contrast_value,
"hue", &hue_value,
"saturation", &saturation_value,
NULL);
-
+
TRACE ("Setting video color balance");
-
+
g_object_set (G_OBJECT (video_sink),
"brightness", brightness_value,
"contrast", contrast_value,
@@ -451,7 +454,7 @@ parole_gst_set_video_color_balance (ParoleGst *gst)
NULL);
g_object_unref (G_OBJECT (video_sink));
-
+
gst->priv->update_color_balance = FALSE;
}
@@ -463,13 +466,13 @@ parole_gst_set_video_overlay (ParoleGst *gst)
#else
gboolean enable_xv;
#endif
-
+
g_object_get (G_OBJECT (gst->priv->playbin),
"video-sink", &video_sink,
NULL);
-
+
g_assert (video_sink != NULL);
-
+
if ( GDK_IS_WINDOW (gtk_widget_get_window(GTK_WIDGET (gst))) )
#if GST_CHECK_VERSION(1, 0, 0)
gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (video_sink),
@@ -490,7 +493,7 @@ parole_gst_set_video_overlay (ParoleGst *gst)
"colorkey", 0x080810, NULL);
}
#endif
-
+
gst_object_unref (video_sink);
}
@@ -499,22 +502,22 @@ parole_gst_query_capabilities (ParoleGst *gst)
{
GstQuery *query;
gboolean seekable;
-
+
query = gst_query_new_seeking (GST_FORMAT_TIME);
-
+
if ( gst_element_query (gst->priv->playbin, query) )
{
-
+
gst_query_parse_seeking (query,
NULL,
&seekable,
NULL,
NULL);
-
+
g_object_set (G_OBJECT (gst->priv->stream),
"seekable", seekable,
NULL);
-
+
}
gst_query_unref (query);
}
@@ -524,37 +527,37 @@ parole_gst_tick_timeout (gpointer data)
{
ParoleGst *gst;
GstFormat format = GST_FORMAT_TIME;
-
+
gint64 pos;
gint64 value;
gboolean video;
gboolean seekable;
gint64 duration;
-
+
gst = PAROLE_GST (data);
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"has-video", &video,
"seekable", &seekable,
"duration", &duration,
NULL);
-
+
#if GST_CHECK_VERSION(1, 0, 0)
gst_element_query_position (gst->priv->playbin, format, &pos);
#else
gst_element_query_position (gst->priv->playbin, &format, &pos);
-
+
if ( G_UNLIKELY (format != GST_FORMAT_TIME ) )
goto out;
#endif
-
+
if ( gst->priv->state == GST_STATE_PLAYING )
{
if (duration != 0 && seekable == FALSE)
{
parole_gst_query_capabilities (gst);
}
-
+
value = pos / GST_SECOND;
if ( G_LIKELY (value > 0) )
@@ -569,7 +572,7 @@ out:
if ( g_timer_elapsed (gst->priv->hidecursor_timer, NULL ) > HIDE_WINDOW_CURSOR_TIMEOUT && video)
parole_gst_set_cursor_visible (gst, FALSE);
#endif
-
+
return TRUE;
}
@@ -577,11 +580,11 @@ static void
parole_gst_tick (ParoleGst *gst)
{
gboolean live;
-
+
g_object_get (gst->priv->stream,
"live", &live,
NULL);
-
+
if ( gst->priv->state >= GST_STATE_PAUSED && !live)
{
if ( gst->priv->tick_id != 0 )
@@ -594,7 +597,7 @@ parole_gst_tick (ParoleGst *gst)
{
g_source_remove (gst->priv->tick_id);
gst->priv->tick_id = 0;
- }
+ }
}
static void
@@ -604,7 +607,7 @@ parole_gst_query_duration (ParoleGst *gst)
gint64 duration = 0;
gboolean live;
GstFormat gst_time = GST_FORMAT_TIME;
-
+
gst_element_query_duration (gst->priv->playbin,
#if GST_CHECK_VERSION(1, 0, 0)
gst_time,
@@ -612,7 +615,7 @@ parole_gst_query_duration (ParoleGst *gst)
&gst_time,
#endif
&absolute_duration);
-
+
if (gst_time == GST_FORMAT_TIME)
{
duration = absolute_duration / GST_SECOND;
@@ -632,13 +635,13 @@ static void
parole_gst_set_subtitle_font (ParoleGst *gst)
{
gchar *font;
-
+
g_object_get (G_OBJECT (gst->priv->conf),
"subtitle-font", &font,
NULL);
-
+
TRACE ("Setting subtitle font %s\n", font);
-
+
g_object_set (G_OBJECT (gst->priv->playbin),
"subtitle-font-desc", font,
NULL);
@@ -649,15 +652,15 @@ static void
parole_gst_set_subtitle_encoding (ParoleGst *gst)
{
gchar *encoding;
-
+
g_object_get (G_OBJECT (gst->priv->conf),
"subtitle-encoding", &encoding,
NULL);
-
- g_object_set (G_OBJECT (gst->priv->playbin),
+
+ g_object_set (G_OBJECT (gst->priv->playbin),
"subtitle-encoding", encoding,
NULL);
-
+
g_free (encoding);
}
@@ -669,26 +672,26 @@ parole_gst_load_subtitle (ParoleGst *gst)
gchar *sub;
gchar *sub_uri;
gboolean sub_enabled;
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"media-type", &type,
NULL);
-
+
if ( type != PAROLE_MEDIA_TYPE_LOCAL_FILE)
return;
-
+
g_object_get (G_OBJECT (gst->priv->conf),
"enable-subtitle", &sub_enabled,
NULL);
-
+
if ( !sub_enabled )
return;
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"uri", &uri,
"subtitles", &sub,
NULL);
-
+
if ( sub )
{
TRACE ("Found subtitle with path %s", sub);
@@ -716,30 +719,30 @@ parole_gst_get_pad_capabilities (GObject *object, GParamSpec *pspec, ParoleGst *
#if GST_CHECK_VERSION(1, 0, 0)
GstCaps *caps;
#endif
-
+
pad = GST_PAD (object);
if ( !GST_IS_PAD (pad) )
return;
-
+
#if GST_CHECK_VERSION(1, 0, 0)
caps = gst_pad_get_current_caps (pad);
if ( !caps )
return;
-
+
st = gst_caps_get_structure (caps, 0);
#else
if ( !GST_IS_PAD (pad) || !GST_PAD_CAPS (pad) )
return;
-
+
st = gst_caps_get_structure (GST_PAD_CAPS (pad), 0);
#endif
-
+
if ( st )
{
gst_structure_get_int (st, "width", &width);
gst_structure_get_int (st, "height", &height);
TRACE ("Caps width=%d height=%d\n", width, height);
-
+
g_object_set (G_OBJECT (gst->priv->stream),
"video-width", width,
"video-height", height,
@@ -768,9 +771,9 @@ static void
parole_gst_query_info (ParoleGst *gst)
{
GstPad *videopad = NULL;
-
+
gint n_audio, n_video, i;
-
+
g_object_get (G_OBJECT (gst->priv->playbin),
"n-audio", &n_audio,
"n-video", &n_video,
@@ -780,16 +783,16 @@ parole_gst_query_info (ParoleGst *gst)
"has-video", (n_video > 0),
"has-audio", (n_audio > 0),
NULL);
-
+
if (n_video > 0)
{
for (i = 0; i < n_video && videopad == NULL; i++)
g_signal_emit_by_name (gst->priv->playbin, "get-video-pad", i, &videopad);
-
+
if (videopad)
{
GstCaps *caps;
-
+
#if GST_CHECK_VERSION(1, 0, 0)
if ((caps = gst_pad_get_current_caps (videopad)))
#else
@@ -799,7 +802,7 @@ parole_gst_query_info (ParoleGst *gst)
parole_gst_get_pad_capabilities (G_OBJECT (videopad), NULL, gst);
gst_caps_unref (caps);
}
-
+
g_signal_connect (videopad, "notify::caps",
G_CALLBACK (parole_gst_get_pad_capabilities),
gst);
@@ -825,7 +828,7 @@ parole_gst_update_vis (ParoleGst *gst)
gint flags;
TRACE ("start");
-
+
g_object_get (G_OBJECT (gst->priv->conf),
"vis-enabled", &gst->priv->with_vis,
"vis-name", &vis_name,
@@ -841,15 +844,15 @@ parole_gst_update_vis (ParoleGst *gst)
{
GstElement *vis_sink;
flags |= GST_PLAY_FLAG_VIS;
-
+
vis_sink = gst_element_factory_make (vis_name, "vis");
-
+
if (vis_sink)
{
g_object_set (G_OBJECT (gst->priv->playbin),
"vis-plugin", vis_sink,
NULL);
-
+
gst->priv->vis_loaded = TRUE;
}
}
@@ -878,7 +881,7 @@ parole_gst_evaluate_state (ParoleGst *gst, GstState old, GstState new, GstState
{
GtkAllocation *allocation = g_new0 (GtkAllocation, 1);
TRACE ("State change new %i old %i pending %i", new, old, pending);
-
+
gst->priv->state = new;
parole_gst_tick (gst);
@@ -890,6 +893,7 @@ parole_gst_evaluate_state (ParoleGst *gst, GstState old, GstState new, GstState
if ( gst->priv->state_change_id != 0 )
{
g_source_remove (gst->priv->state_change_id);
+ gst->priv->state_change_id = 0;
}
}
@@ -902,7 +906,7 @@ parole_gst_evaluate_state (ParoleGst *gst, GstState old, GstState new, GstState
parole_gst_query_capabilities (gst);
parole_gst_query_info (gst);
parole_gst_query_duration (gst);
- g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
+ g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
gst->priv->stream, PAROLE_STATE_PLAYING);
break;
}
@@ -915,9 +919,9 @@ parole_gst_evaluate_state (ParoleGst *gst, GstState old, GstState new, GstState
parole_gst_set_video_color_balance (gst);
}
}
-
+
gst->priv->media_state = PAROLE_STATE_PAUSED;
- g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
+ g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
gst->priv->stream, PAROLE_STATE_PAUSED);
break;
}
@@ -926,7 +930,7 @@ parole_gst_evaluate_state (ParoleGst *gst, GstState old, GstState new, GstState
gst->priv->buffering = FALSE;
gst->priv->seeking = FALSE;
gst->priv->media_state = PAROLE_STATE_STOPPED;
- g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
+ g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
gst->priv->stream, PAROLE_STATE_STOPPED);
if ( gst->priv->target == GST_STATE_PLAYING && pending < GST_STATE_PAUSED)
@@ -950,7 +954,7 @@ parole_gst_evaluate_state (ParoleGst *gst, GstState old, GstState new, GstState
gst->priv->buffering = FALSE;
gst->priv->seeking = FALSE;
gst->priv->media_state = PAROLE_STATE_STOPPED;
- g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
+ g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
gst->priv->stream, PAROLE_STATE_STOPPED);
break;
}
@@ -967,11 +971,11 @@ parole_gst_element_message_sync (GstBus *bus, GstMessage *message, ParoleGst *gs
#else
if ( !message->structure )
goto out;
-
+
if ( gst_structure_has_name (message->structure, "prepare-xwindow-id") )
#endif
parole_gst_set_video_overlay (gst);
-
+
#if GST_CHECK_VERSION (1, 0, 0)
#else
out:
@@ -993,21 +997,21 @@ parole_gst_buffer_to_pixbuf (GstBuffer *buffer)
#endif
loader = gdk_pixbuf_loader_new ();
-
+
#if GST_CHECK_VERSION (1, 0, 0)
if (gdk_pixbuf_loader_write (loader, map.data, map.size, &err) &&
#else
if (gdk_pixbuf_loader_write (loader, buffer->data, buffer->size, &err) &&
#endif
- gdk_pixbuf_loader_close (loader, &err))
+ gdk_pixbuf_loader_close (loader, &err))
{
pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
if (pixbuf)
{
g_object_ref (pixbuf);
}
- }
- else
+ }
+ else
{
GST_WARNING("could not convert tag image to pixbuf: %s", err->message);
g_error_free (err);
@@ -1034,22 +1038,22 @@ parole_gst_tag_list_get_cover_external (ParoleGst *gst)
gchar *lower = NULL;
gchar *cover = NULL;
gchar *cover_filename = NULL;
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"uri", &uri,
NULL);
-
+
filename = g_filename_from_uri(uri, NULL, NULL);
-
+
directory = g_path_get_dirname(filename);
-
+
file_dir = g_dir_open(directory, 0, &error);
if (error)
{
g_error_free (error);
return NULL;
}
-
+
while ( (listing = g_dir_read_name(file_dir)) )
{
lower = g_utf8_strdown(listing, -1);
@@ -1063,7 +1067,7 @@ parole_gst_tag_list_get_cover_external (ParoleGst *gst)
cover = g_strdup(listing);
else if ( g_strcmp0(lower, "albumartsmall.jpg") == 0 )
cover = g_strdup(listing);
-
+
if (cover)
{
cover_filename = g_build_filename(directory, cover, NULL);
@@ -1075,7 +1079,7 @@ parole_gst_tag_list_get_cover_external (ParoleGst *gst)
g_free(directory);
g_free(lower);
g_dir_close(file_dir);
-
+
if (!cover_filename)
return NULL;
@@ -1162,9 +1166,9 @@ parole_gst_tag_list_get_cover (ParoleGst *gst, GstTagList *tag_list)
GdkPixbuf *scaled;
gint height, width;
gfloat multiplier;
-
+
g_return_val_if_fail (tag_list != NULL, FALSE);
-
+
pixbuf = parole_gst_tag_list_get_cover_external(gst);
if (!pixbuf)
{
@@ -1190,7 +1194,7 @@ parole_gst_tag_list_get_cover (ParoleGst *gst, GstTagList *tag_list)
height = gdk_pixbuf_get_height(pixbuf)/multiplier;
width = 256;
}
-
+
scaled = gdk_pixbuf_scale_simple (pixbuf,
width,
height,
@@ -1209,11 +1213,11 @@ parole_gst_get_meta_data_dvd (ParoleGst *gst)
guint current_num_chapters;
guint current_chapter;
gint64 val = -1;
-
+
GstFormat format = gst_format_get_by_nick ("chapter");
-
+
TRACE("START");
-
+
g_object_get ( G_OBJECT (gst->priv->stream),
"num-tracks", ¤t_num_chapters,
"track", ¤t_chapter,
@@ -1235,12 +1239,12 @@ parole_gst_get_meta_data_dvd (ParoleGst *gst)
"num-tracks", num_chapters,
NULL);
TRACE("Updated DVD chapter count: %i", n_chapters);
-
- g_signal_emit (G_OBJECT (gst), signals [DVD_CHAPTER_COUNT_CHANGE], 0,
+
+ g_signal_emit (G_OBJECT (gst), signals [DVD_CHAPTER_COUNT_CHANGE], 0,
n_chapters);
}
}
-
+
/* Get the current chapter. */
val = -1;
#if GST_CHECK_VERSION(1, 0, 0)
@@ -1257,13 +1261,13 @@ parole_gst_get_meta_data_dvd (ParoleGst *gst)
"track", chapter,
NULL);
TRACE("Updated current DVD chapter: %i", chapter);
-
+
if (current_chapter != 1)
- g_signal_emit (G_OBJECT (gst), signals [DVD_CHAPTER_CHANGE], 0,
+ g_signal_emit (G_OBJECT (gst), signals [DVD_CHAPTER_CHANGE], 0,
chapter);
}
}
-
+
}
@@ -1272,7 +1276,7 @@ parole_gst_get_meta_data_cdda (ParoleGst *gst, GstTagList *tag)
{
guint num_tracks;
guint track;
-
+
if (gst_tag_list_get_uint (tag, GST_TAG_TRACK_NUMBER, &track) &&
gst_tag_list_get_uint (tag, GST_TAG_TRACK_COUNT, &num_tracks))
{
@@ -1286,12 +1290,12 @@ parole_gst_get_meta_data_cdda (ParoleGst *gst, GstTagList *tag)
"comment", NULL,
"genre", NULL,
NULL);
-
+
parole_stream_set_image (G_OBJECT (gst->priv->stream), NULL);
g_object_set (G_OBJECT (gst->priv->stream),
"tag-available", FALSE,
NULL);
-
+
TRACE ("num_tracks=%i track=%i", num_tracks, track);
g_signal_emit (G_OBJECT (gst), signals [MEDIA_TAG], 0, gst->priv->stream);
}
@@ -1303,9 +1307,9 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
gchar *str;
GDate *date;
guint integer;
-
+
GdkPixbuf *pixbuf;
-
+
if ( gst_tag_list_get_string_index (tag, GST_TAG_TITLE, 0, &str) )
{
TRACE ("title:%s", str);
@@ -1314,7 +1318,7 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
NULL);
g_free (str);
}
-
+
if ( gst_tag_list_get_string_index (tag, GST_TAG_ARTIST, 0, &str) )
{
TRACE ("artist:%s", str);
@@ -1323,19 +1327,19 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
NULL);
g_free (str);
}
-
+
if ( gst_tag_list_get_date (tag, GST_TAG_DATE, &date) )
{
str = g_strdup_printf ("%d", g_date_get_year (date));
TRACE ("year:%s", str);
-
+
g_object_set (G_OBJECT (gst->priv->stream),
"year", str,
NULL);
g_date_free (date);
g_free (str);
}
-
+
if ( gst_tag_list_get_string_index (tag, GST_TAG_ALBUM, 0, &str) )
{
TRACE ("album:%s", str);
@@ -1344,7 +1348,7 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
NULL);
g_free (str);
}
-
+
if ( gst_tag_list_get_string_index (tag, GST_TAG_COMMENT, 0, &str) )
{
TRACE ("comment:%s", str);
@@ -1353,7 +1357,7 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
NULL);
g_free (str);
}
-
+
if ( gst_tag_list_get_string_index (tag, GST_TAG_GENRE, 0, &str) )
{
TRACE ("genre:%s", str);
@@ -1362,7 +1366,7 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
NULL);
g_free (str);
}
-
+
if ( gst_tag_list_get_uint (tag, GST_TAG_TRACK_NUMBER, &integer) )
{
TRACE ("track:%i", integer);
@@ -1370,7 +1374,7 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
"track", integer,
NULL);
}
-
+
if ( gst_tag_list_get_uint (tag, GST_TAG_BITRATE, &integer) )
{
TRACE ("bitrate:%i", integer);
@@ -1378,7 +1382,7 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
"bitrate", integer,
NULL);
}
-
+
pixbuf = parole_gst_tag_list_get_cover (gst, tag);
if (pixbuf)
{
@@ -1389,7 +1393,7 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
g_object_set (G_OBJECT (gst->priv->stream),
"tag-available", TRUE,
NULL);
-
+
g_signal_emit (G_OBJECT (gst), signals [MEDIA_TAG], 0, gst->priv->stream);
}
@@ -1404,13 +1408,13 @@ parole_gst_get_meta_data_unknown (ParoleGst *gst)
"comment", NULL,
"genre", NULL,
NULL);
-
+
parole_stream_set_image (G_OBJECT (gst->priv->stream), NULL);
g_object_set (G_OBJECT (gst->priv->stream),
"tag-available", FALSE,
NULL);
-
+
g_signal_emit (G_OBJECT (gst), signals [MEDIA_TAG], 0, gst->priv->stream);
}
@@ -1418,11 +1422,11 @@ static void
parole_gst_get_meta_data (ParoleGst *gst, GstTagList *tag)
{
ParoleMediaType media_type;
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"media-type", &media_type,
NULL);
-
+
switch ( media_type )
{
case PAROLE_MEDIA_TYPE_LOCAL_FILE:
@@ -1452,16 +1456,16 @@ parole_gst_application_message (ParoleGst *gst, GstMessage *msg)
#else
const gchar *name;
name = gst_structure_get_name (msg->structure);
-
+
if ( !name )
return;
-
+
if ( !g_strcmp0 (name, "notify-streaminfo") )
#endif
{
parole_gst_update_stream_info (gst);
}
-
+
#if GST_CHECK_VERSION(1, 0, 0)
else if ( gst_message_has_name (msg, "video-size") )
#else
@@ -1509,9 +1513,9 @@ parole_gst_missing_codec_dialog(ParoleGst *gst, GstMessage *msg)
{
GtkMessageDialog *dialog;
gchar* desc;
-
+
desc = gst_missing_plugin_message_get_description(msg);
-
+
dialog = GTK_MESSAGE_DIALOG(gtk_message_dialog_new_with_markup(
NULL,
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -1521,22 +1525,22 @@ parole_gst_missing_codec_dialog(ParoleGst *gst, GstMessage *msg)
GTK_MESSAGE_WARNING,
#endif
GTK_BUTTONS_NONE,
- "<b><big>%s</big></b>",
+ "<b><big>%s</big></b>",
_("Additional software is required.")
));
-
- gtk_dialog_add_buttons( GTK_DIALOG(dialog),
+
+ gtk_dialog_add_buttons( GTK_DIALOG(dialog),
#if defined(__linux__)
_("Don't Install"),
GTK_RESPONSE_REJECT,
- _("Install"),
+ _("Install"),
GTK_RESPONSE_ACCEPT,
#else
_("OK"),
GTK_RESPONSE_ACCEPT,
#endif
NULL );
-
+
gtk_message_dialog_format_secondary_markup(dialog,
#if defined(__linux__)
_("Parole needs <b>%s</b> to play this file.\n"
@@ -1545,7 +1549,7 @@ parole_gst_missing_codec_dialog(ParoleGst *gst, GstMessage *msg)
_("Parole needs <b>%s</b> to play this file."),
#endif
desc);
-
+
return GTK_DIALOG(dialog);
}
@@ -1557,7 +1561,7 @@ parole_gst_bus_event (GstBus *bus, GstMessage *msg, gpointer data)
gchar* details[2];
GstInstallPluginsContext *ctx;
gint response;
-
+
gst = PAROLE_GST (data);
switch (GST_MESSAGE_TYPE (msg))
@@ -1565,15 +1569,15 @@ parole_gst_bus_event (GstBus *bus, GstMessage *msg, gpointer data)
case GST_MESSAGE_EOS:
{
ParoleMediaType media_type;
-
+
TRACE ("End of stream");
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"media-type", &media_type,
NULL);
-
+
gst->priv->media_state = PAROLE_STATE_PLAYBACK_FINISHED;
- g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
+ g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
gst->priv->stream, PAROLE_STATE_PLAYBACK_FINISHED);
break;
}
@@ -1598,9 +1602,9 @@ parole_gst_bus_event (GstBus *bus, GstMessage *msg, gpointer data)
gint per = 0;
gst_message_parse_buffering (msg, &per);
TRACE ("Buffering %d %%", per);
- g_signal_emit (G_OBJECT (gst), signals [BUFFERING], 0,
+ g_signal_emit (G_OBJECT (gst), signals [BUFFERING], 0,
gst->priv->stream, per);
-
+
gst->priv->buffering = per != 100;
break;
}
@@ -1614,7 +1618,7 @@ parole_gst_bus_event (GstBus *bus, GstMessage *msg, gpointer data)
}
break;
}
-
+
case GST_MESSAGE_TAG:
{
if ( gst->priv->enable_tags )
@@ -1650,7 +1654,7 @@ parole_gst_bus_event (GstBus *bus, GstMessage *msg, gpointer data)
details[0] = gst_missing_plugin_message_get_installer_detail(msg);
details[1] = NULL;
ctx = gst_install_plugins_context_new();
-
+
#ifdef GDK_WINDOWING_X11
if (gtk_widget_get_window (GTK_WIDGET (gst)) != NULL &&
gtk_widget_get_realized (GTK_WIDGET (gst)))
@@ -1708,13 +1712,13 @@ parole_gst_change_state (ParoleGst *gst, GstState new)
GstStateChangeReturn ret;
TRACE ("Changing state to %d", new);
-
+
ret = gst_element_set_state (GST_ELEMENT (gst->priv->playbin), new);
-
+
switch (ret)
{
case GST_STATE_CHANGE_SUCCESS:
- parole_gst_evaluate_state (gst,
+ parole_gst_evaluate_state (gst,
GST_STATE_RETURN (gst->priv->playbin),
GST_STATE (gst->priv->playbin),
GST_STATE_PENDING (gst->priv->playbin));
@@ -1737,8 +1741,8 @@ static void
parole_gst_source_notify_cb (GObject *obj, GParamSpec *pspec, ParoleGst *gst)
{
GObject *source;
-
- g_object_get (obj,
+
+ g_object_get (obj,
"source", &source,
NULL);
@@ -1746,7 +1750,7 @@ parole_gst_source_notify_cb (GObject *obj, GParamSpec *pspec, ParoleGst *gst)
{
if ( G_LIKELY (gst->priv->device) )
{
- g_object_set (source,
+ g_object_set (source,
"device", gst->priv->device,
NULL);
}
@@ -1758,25 +1762,25 @@ static void
parole_gst_play_file_internal (ParoleGst *gst)
{
gchar *uri;
-
+
TRACE ("Start");
-
+
if ( G_UNLIKELY (GST_STATE (gst->priv->playbin) == GST_STATE_PLAYING ) )
{
TRACE ("*** Error *** This is a bug, playbin element is already playing");
}
-
+
if ( gst->priv->update_vis)
parole_gst_update_vis (gst);
-
+
parole_stream_set_image (G_OBJECT (gst->priv->stream), NULL);
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"uri", &uri,
NULL);
-
+
TRACE ("Processing uri : %s", uri);
-
+
g_object_set (G_OBJECT (gst->priv->playbin),
"uri", uri,
"suburi", NULL,
@@ -1792,7 +1796,7 @@ parole_gst_send_navigation_command(ParoleGst *gst, gint command)
{
GstNavigation *nav;
nav = GST_NAVIGATION (gst->priv->video_sink);
-
+
switch (command)
{
case GST_DVD_ROOT_MENU:
@@ -1826,12 +1830,12 @@ parole_gst_motion_notify_event (GtkWidget *widget, GdkEventMotion *ev)
{
ParoleGst *gst;
gboolean ret = FALSE;
-
+
gst = PAROLE_GST (widget);
-
+
g_timer_reset (gst->priv->hidecursor_timer);
parole_gst_set_cursor_visible (gst, TRUE);
-
+
if (GTK_WIDGET_CLASS (parole_gst_parent_class)->motion_notify_event)
ret |= GTK_WIDGET_CLASS (parole_gst_parent_class)->motion_notify_event (widget, ev);
@@ -1845,19 +1849,19 @@ parole_gst_button_press_event (GtkWidget *widget, GdkEventButton *ev)
GstNavigation *nav;
gboolean playing_video;
gboolean ret = FALSE;
-
+
gst = PAROLE_GST (widget);
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"has-video", &playing_video,
NULL);
-
+
if ( gst->priv->state == GST_STATE_PLAYING && playing_video)
{
nav = GST_NAVIGATION (gst->priv->video_sink);
gst_navigation_send_mouse_event (nav, "mouse-button-press", ev->button, ev->x, ev->y);
}
-
+
if (GTK_WIDGET_CLASS (parole_gst_parent_class)->button_press_event)
ret |= GTK_WIDGET_CLASS (parole_gst_parent_class)->button_press_event (widget, ev);
@@ -1871,19 +1875,19 @@ parole_gst_button_release_event (GtkWidget *widget, GdkEventButton *ev)
GstNavigation *nav;
gboolean playing_video;
gboolean ret = FALSE;
-
+
gst = PAROLE_GST (widget);
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"has-video", &playing_video,
NULL);
-
+
if ( gst->priv->state == GST_STATE_PLAYING && playing_video)
{
nav = GST_NAVIGATION (gst->priv->video_sink);
gst_navigation_send_mouse_event (nav, "mouse-button-release", ev->button, ev->x, ev->y);
}
-
+
if (GTK_WIDGET_CLASS (parole_gst_parent_class)->button_release_event)
ret |= GTK_WIDGET_CLASS (parole_gst_parent_class)->button_release_event (widget, ev);
@@ -1894,7 +1898,7 @@ static void
parole_gst_seek_by_format (ParoleGst *gst, GstFormat format, gint step)
{
gint64 val = 1;
-
+
#if GST_CHECK_VERSION(1, 0, 0)
if ( gst_element_query_position (gst->priv->playbin, format, &val) )
#else
@@ -1902,8 +1906,8 @@ parole_gst_seek_by_format (ParoleGst *gst, GstFormat format, gint step)
#endif
{
val += step;
- if ( !gst_element_seek (gst->priv->playbin, 1.0, format,
- GST_SEEK_FLAG_FLUSH, GST_SEEK_TYPE_SET,
+ if ( !gst_element_seek (gst->priv->playbin, 1.0, format,
+ GST_SEEK_FLAG_FLUSH, GST_SEEK_TYPE_SET,
val,
GST_SEEK_TYPE_NONE,
0) )
@@ -1921,7 +1925,7 @@ static void
parole_gst_change_dvd_chapter (ParoleGst *gst, gint level)
{
GstFormat format = gst_format_get_by_nick ("chapter");
-
+
parole_gst_seek_by_format (gst, format, level);
}
@@ -1929,7 +1933,7 @@ static void
parole_gst_change_cdda_track (ParoleGst *gst, gint level)
{
GstFormat format = gst_format_get_by_nick ("track");
-
+
parole_gst_seek_by_format (gst, format, level);
}
@@ -1947,11 +1951,12 @@ parole_gst_check_state_change_timeout (gpointer data)
{
ParoleGst *gst;
GtkWidget *dialog;
-
+
gst = PAROLE_GST (data);
TRACE ("target =%d current state=%d", gst->priv->target, gst->priv->state);
-
+ g_print("check state\n");
+
if ( gst->priv->state != gst->priv->target )
{
dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gst))),
@@ -1976,18 +1981,18 @@ static void
parole_gst_terminate_internal (ParoleGst *gst)
{
gboolean playing_video;
-
- g_object_get (G_OBJECT (gst->priv->stream),
+
+ g_object_get (G_OBJECT (gst->priv->stream),
"has-video", &playing_video,
NULL);
-
+
g_mutex_lock (&gst->priv->lock);
gst->priv->target = GST_STATE_NULL;
parole_stream_init_properties (gst->priv->stream);
g_mutex_unlock (&gst->priv->lock);
parole_window_busy_cursor (gtk_widget_get_window(GTK_WIDGET (gst)));
-
+
parole_gst_change_state (gst, GST_STATE_NULL);
}
@@ -1995,10 +2000,10 @@ static void
parole_gst_about_to_finish_cb (GstElement *elm, gpointer data)
{
ParoleGst *gst;
-
+
gst = PAROLE_GST (data);
- g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
+ g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0,
gst->priv->stream, PAROLE_STATE_ABOUT_TO_FINISH);
}
@@ -2022,7 +2027,7 @@ parole_gst_conf_notify_cb (GObject *object, GParamSpec *spec, ParoleGst *gst)
!g_strcmp0 ("contrast", spec->name) || !g_strcmp0 ("saturation", spec->name) )
{
gst->priv->update_color_balance = TRUE;
-
+
if ( gst->priv->state >= GST_STATE_PAUSED )
parole_gst_set_video_color_balance (gst);
}
@@ -2031,7 +2036,7 @@ parole_gst_conf_notify_cb (GObject *object, GParamSpec *spec, ParoleGst *gst)
g_object_get (G_OBJECT (gst->priv->conf),
"aspect-ratio", &gst->priv->aspect_ratio,
NULL);
-
+
gtk_widget_get_allocation( GTK_WIDGET (gst), allocation );
parole_gst_size_allocate (GTK_WIDGET (gst), allocation);
g_free(allocation);
@@ -2046,7 +2051,7 @@ parole_gst_conf_notify_volume_cb (GObject *conf, GParamSpec *pspec, ParoleGst *g
g_object_get (G_OBJECT (gst->priv->conf),
"volume", &volume,
NULL);
-
+
parole_gst_set_volume (gst, (double)(volume / 100.0));
}
@@ -2057,7 +2062,7 @@ static void parole_gst_get_property (GObject *object,
{
ParoleGst *gst;
gst = PAROLE_GST (object);
-
+
switch (prop_id)
{
case PROP_VOLUME:
@@ -2083,7 +2088,7 @@ static void parole_gst_set_property (GObject *object,
{
ParoleGst *gst;
gst = PAROLE_GST (object);
-
+
switch (prop_id)
{
case PROP_ENABLE_TAGS:
@@ -2155,39 +2160,39 @@ static void
parole_gst_constructed (GObject *object)
{
ParoleGst *gst;
-
+
gboolean enable_xv;
-
+
gst = PAROLE_GST (object);
-
+
g_object_get (G_OBJECT (gst->priv->conf),
"enable-xv", &enable_xv,
NULL);
-
+
#if GST_CHECK_VERSION(1, 0, 0)
gst->priv->playbin = gst_element_factory_make ("playbin", "player");
#else
gst->priv->playbin = gst_element_factory_make ("playbin2", "player");
#endif
-
+
if ( G_UNLIKELY (gst->priv->playbin == NULL) )
{
GError *error;
error = g_error_new (1, 0, _("Unable to load \"%s\" plugin"
- ", check your GStreamer installation."),
+ ", check your GStreamer installation."),
#if GST_CHECK_VERSION(1, 0, 0)
"playbin");
#else
"playbin2");
#endif
-
+
parole_gst_show_error (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gst))),
error);
g_error_free (error);
g_error ("playbin load failed");
}
-
+
gst->priv->audio_sink = gst_element_factory_make ("autoaudiosink", "audio");
if ( G_UNLIKELY (gst->priv->audio_sink == NULL) )
{
@@ -2199,24 +2204,24 @@ parole_gst_constructed (GObject *object)
g_error_free (error);
g_error ("autoaudiosink load failed");
}
-
+
if (enable_xv)
{
gst->priv->video_sink = gst_element_factory_make ("xvimagesink", "video");
gst->priv->xvimage_sink = TRUE;
}
-
+
if ( G_UNLIKELY (gst->priv->video_sink == NULL) )
{
gst->priv->xvimage_sink = FALSE;
- g_debug ("%s trying to load ximagesink", enable_xv ? "xvimagesink not found " : "xv disabled ");
+ g_debug ("%s trying to load ximagesink", enable_xv ? "xvimagesink not found " : "xv disabled ");
gst->priv->video_sink = gst_element_factory_make ("ximagesink", "video");
-
+
if ( G_UNLIKELY (gst->priv->video_sink == NULL) )
{
GError *error;
error = g_error_new (1, 0, _("Unable to load \"%s\" plugin"
- ", check your GStreamer installation."),
+ ", check your GStreamer installation."),
enable_xv ? "xvimagesink" : "ximagesink");
parole_gst_show_error (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gst))),
error);
@@ -2224,24 +2229,24 @@ parole_gst_constructed (GObject *object)
g_error ("ximagesink load failed");
}
}
-
+
g_object_set (G_OBJECT (gst->priv->playbin),
"video-sink", gst->priv->video_sink,
"audio-sink", gst->priv->audio_sink,
NULL);
-
+
/*
* Listen to the bus events.
*/
gst->priv->bus = gst_element_get_bus (gst->priv->playbin);
gst_bus_add_signal_watch (gst->priv->bus);
-
+
gst->priv->sig1 =
g_signal_connect (gst->priv->bus, "message",
G_CALLBACK (parole_gst_bus_event), gst);
-
- /*
- * Handling 'prepare-xwindow-id' message async causes XSync
+
+ /*
+ * Handling 'prepare-xwindow-id' message async causes XSync
* error in some occasions So we handle this message synchronously
*/
#if GST_CHECK_VERSION(1, 0, 0)
@@ -2255,18 +2260,18 @@ parole_gst_constructed (GObject *object)
g_signal_connect (gst->priv->playbin, "notify::source",
G_CALLBACK (parole_gst_source_notify_cb), gst);
-
+
g_signal_connect (gst->priv->playbin, "notify::volume",
G_CALLBACK (parole_notify_volume_cb), gst);
g_signal_connect (gst->priv->playbin, "about-to-finish",
G_CALLBACK (parole_gst_about_to_finish_cb), gst);
-
+
parole_gst_update_vis (gst);
parole_gst_set_subtitle_encoding (gst);
parole_gst_set_subtitle_font (gst);
-
+
TRACE ("End");
}
@@ -2274,12 +2279,12 @@ static void
parole_gst_style_set (GtkWidget *widget, GtkStyle *prev_style)
{
ParoleGst *gst;
-
+
gst = PAROLE_GST (widget);
-
+
if ( gst->priv->logo )
g_object_unref (gst->priv->logo);
-
+
gtk_widget_queue_draw (widget);
}
@@ -2303,27 +2308,27 @@ parole_gst_class_init (ParoleGstClass *klass)
widget_class->button_release_event = parole_gst_button_release_event;
widget_class->style_set = parole_gst_style_set;
- signals[MEDIA_STATE] =
+ signals[MEDIA_STATE] =
g_signal_new ("media-state",
PAROLE_TYPE_GST,
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ParoleGstClass, media_state),
NULL, NULL,
_gmarshal_VOID__OBJECT_ENUM,
- G_TYPE_NONE, 2,
+ G_TYPE_NONE, 2,
PAROLE_TYPE_STREAM, PAROLE_ENUM_TYPE_STATE);
- signals[MEDIA_PROGRESSED] =
+ signals[MEDIA_PROGRESSED] =
g_signal_new ("media-progressed",
PAROLE_TYPE_GST,
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ParoleGstClass, media_progressed),
NULL, NULL,
_gmarshal_VOID__OBJECT_INT64,
- G_TYPE_NONE, 2,
+ G_TYPE_NONE, 2,
G_TYPE_OBJECT, G_TYPE_INT64);
-
- signals[MEDIA_SEEKED] =
+
+ signals[MEDIA_SEEKED] =
g_signal_new ("media-seeked",
PAROLE_TYPE_GST,
G_SIGNAL_RUN_LAST,
@@ -2331,38 +2336,38 @@ parole_gst_class_init (ParoleGstClass *klass)
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
-
- signals [MEDIA_TAG] =
+
+ signals [MEDIA_TAG] =
g_signal_new ("media-tag",
PAROLE_TYPE_GST,
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ParoleGstClass, media_tag),
NULL, NULL,
g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
+ G_TYPE_NONE, 1,
G_TYPE_OBJECT);
-
- signals[BUFFERING] =
+
+ signals[BUFFERING] =
g_signal_new ("buffering",
PAROLE_TYPE_GST,
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ParoleGstClass, buffering),
NULL, NULL,
_gmarshal_VOID__OBJECT_INT,
- G_TYPE_NONE, 2,
+ G_TYPE_NONE, 2,
G_TYPE_OBJECT, G_TYPE_INT);
-
- signals[ERROR] =
+
+ signals[ERROR] =
g_signal_new ("error",
PAROLE_TYPE_GST,
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ParoleGstClass, error),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1,
+ G_TYPE_NONE, 1,
G_TYPE_STRING);
-
- signals[DVD_CHAPTER_CHANGE] =
+
+ signals[DVD_CHAPTER_CHANGE] =
g_signal_new ("dvd-chapter-change",
PAROLE_TYPE_GST,
G_SIGNAL_RUN_LAST,
@@ -2370,8 +2375,8 @@ parole_gst_class_init (ParoleGstClass *klass)
NULL, NULL,
g_cclosure_marshal_VOID__INT,
G_TYPE_NONE, 1, G_TYPE_INT);
-
- signals[DVD_CHAPTER_COUNT_CHANGE] =
+
+ signals[DVD_CHAPTER_COUNT_CHANGE] =
g_signal_new ("dvd-chapter-count-change",
PAROLE_TYPE_GST,
G_SIGNAL_RUN_LAST,
@@ -2386,21 +2391,21 @@ parole_gst_class_init (ParoleGstClass *klass)
NULL, NULL,
G_PARAM_CONSTRUCT_ONLY|
G_PARAM_READWRITE));
-
+
g_object_class_install_property (object_class,
PROP_VOLUME,
g_param_spec_double ("volume", NULL, NULL,
0.0, 1.0, 0.0,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
-
+
g_object_class_install_property (object_class,
PROP_ENABLE_TAGS,
g_param_spec_boolean ("tags",
NULL, NULL,
TRUE,
G_PARAM_READWRITE));
-
+
g_type_class_add_private (klass, sizeof (ParoleGstPrivate));
}
@@ -2431,9 +2436,9 @@ parole_gst_init (ParoleGst *gst)
gst->priv->custom_subtitles = NULL;
gst->priv->volume = -1.0;
gst->priv->conf = NULL;
-
+
gtk_widget_set_can_focus (GTK_WIDGET (gst), TRUE);
-
+
/*
* Disable double buffering on the video output to avoid
* flickering when resizing the window.
@@ -2444,12 +2449,12 @@ parole_gst_init (ParoleGst *gst)
GtkWidget *
parole_gst_new (gpointer conf_obj)
{
- parole_gst_object = g_object_new (PAROLE_TYPE_GST,
+ parole_gst_object = g_object_new (PAROLE_TYPE_GST,
"conf-object", conf_obj,
NULL);
-
+
g_object_add_weak_pointer (parole_gst_object, &parole_gst_object);
-
+
return GTK_WIDGET (parole_gst_object);
}
@@ -2457,9 +2462,9 @@ GtkWidget *parole_gst_get (void)
{
if ( G_LIKELY (parole_gst_object != NULL ) )
{
- /*
- * Don't increase the reference count of this object as
- * we need it to be destroyed immediately when the main
+ /*
+ * Don't increase the reference count of this object as
+ * we need it to be destroyed immediately when the main
* window is destroyed.
*/
//g_object_ref (parole_gst_object);
@@ -2469,23 +2474,23 @@ GtkWidget *parole_gst_get (void)
parole_gst_object = g_object_new (PAROLE_TYPE_GST, NULL);
g_object_add_weak_pointer (parole_gst_object, &parole_gst_object);
}
-
+
return GTK_WIDGET (parole_gst_object);
-
+
}
static gboolean
parole_gst_play_idle (gpointer data)
{
ParoleGst *gst;
-
+
gst = PAROLE_GST (data);
-
+
if ( gst->priv->state < GST_STATE_PAUSED )
parole_gst_play_file_internal (gst);
- else
+ else
parole_gst_change_state (gst, GST_STATE_READY);
-
+
return FALSE;
}
@@ -2510,50 +2515,50 @@ gchar * parole_gst_get_file_uri (ParoleGst *gst)
g_object_get (G_OBJECT (gst->priv->stream),
"uri", &uri,
NULL);
-
+
return uri;
}
void parole_gst_play_uri (ParoleGst *gst, const gchar *uri, const gchar *subtitles)
{
g_mutex_lock (&gst->priv->lock);
-
+
gst->priv->target = GST_STATE_PLAYING;
parole_stream_init_properties (gst->priv->stream);
-
+
g_object_set (G_OBJECT (gst->priv->stream),
"uri", uri,
"subtitles", subtitles,
NULL);
-
+
g_mutex_unlock (&gst->priv->lock);
-
+
if ( gst->priv->state_change_id == 0 )
- gst->priv->state_change_id = g_timeout_add_seconds (20,
- (GSourceFunc) parole_gst_check_state_change_timeout,
+ gst->priv->state_change_id = g_timeout_add_seconds (20,
+ (GSourceFunc) parole_gst_check_state_change_timeout,
gst);
-
+
parole_window_busy_cursor (gtk_widget_get_window(GTK_WIDGET (gst)));
-
+
g_idle_add ((GSourceFunc) parole_gst_play_idle, gst);
-
+
gst->priv->device = NULL;
}
void parole_gst_play_device_uri (ParoleGst *gst, const gchar *uri, const gchar *device)
{
const gchar *local_uri = NULL;
-
+
TRACE ("device : %s", device);
-
+
if ( gst->priv->device )
{
g_free (gst->priv->device);
gst->priv->device = NULL;
}
-
+
gst->priv->device = g_strdup (device);
-
+
/*
* Don't play cdda:/ as gstreamer gives an error
* but cdda:// works.
@@ -2571,16 +2576,16 @@ void parole_gst_play_device_uri (ParoleGst *gst, const gchar *uri, const gchar *
local_uri = uri;
}
}
-
+
parole_gst_play_uri (gst, local_uri, NULL);
}
void parole_gst_pause (ParoleGst *gst)
{
g_mutex_lock (&gst->priv->lock);
-
+
gst->priv->target = GST_STATE_PAUSED;
-
+
g_mutex_unlock (&gst->priv->lock);
parole_window_busy_cursor (gtk_widget_get_window(GTK_WIDGET (gst)));
@@ -2590,9 +2595,9 @@ void parole_gst_pause (ParoleGst *gst)
void parole_gst_resume (ParoleGst *gst)
{
g_mutex_lock (&gst->priv->lock);
-
+
gst->priv->target = GST_STATE_PLAYING;
-
+
g_mutex_unlock (&gst->priv->lock);
parole_window_busy_cursor (gtk_widget_get_window(GTK_WIDGET (gst)));
@@ -2603,25 +2608,25 @@ static gboolean
parole_gst_stop_idle (gpointer data)
{
ParoleGst *gst;
-
+
gst = PAROLE_GST (data);
-
+
parole_gst_change_state (gst, GST_STATE_NULL);
-
+
return FALSE;
}
void parole_gst_stop (ParoleGst *gst)
{
g_mutex_lock (&gst->priv->lock);
-
+
parole_stream_init_properties (gst->priv->stream);
gst->priv->target = GST_STATE_NULL;
-
+
g_mutex_unlock (&gst->priv->lock);
parole_window_busy_cursor (gtk_widget_get_window(GTK_WIDGET (gst)));
-
+
g_idle_add ((GSourceFunc) parole_gst_stop_idle, gst);
}
@@ -2635,13 +2640,13 @@ void parole_gst_shutdown (ParoleGst *gst)
{
if ( g_signal_handler_is_connected (gst->priv->playbin, gst->priv->sig1) )
g_signal_handler_disconnect (gst->priv->playbin, gst->priv->sig1);
-
+
if ( g_signal_handler_is_connected (gst->priv->playbin, gst->priv->sig2) )
g_signal_handler_disconnect (gst->priv->playbin, gst->priv->sig2);
if ( gst->priv->bus )
g_object_unref (gst->priv->bus);
-
+
gst_element_set_state (gst->priv->playbin, GST_STATE_VOID_PENDING);
if ( gst->priv->playbin )
@@ -2669,13 +2674,13 @@ void parole_gst_set_volume (ParoleGst *gst, gdouble volume)
gst_stream_volume_set_volume (GST_STREAM_VOLUME (gst->priv->playbin),
GST_STREAM_VOLUME_FORMAT_CUBIC,
volume);
-
+
gst->priv->volume = volume;
-
+
g_object_notify (G_OBJECT (gst), "volume");
}
}
-
+
gdouble parole_gst_get_volume (ParoleGst *gst)
{
return gst->priv->volume;
@@ -2710,9 +2715,9 @@ void parole_gst_set_dvd_chapter (ParoleGst *gst, gint chapter)
{
GstFormat format = gst_format_get_by_nick ("chapter");
guint64 val = (guint64) chapter;
-
- gst_element_seek (gst->priv->playbin, 1.0, format,
- GST_SEEK_FLAG_FLUSH, GST_SEEK_TYPE_SET,
+
+ gst_element_seek (gst->priv->playbin, 1.0, format,
+ GST_SEEK_FLAG_FLUSH, GST_SEEK_TYPE_SET,
val,
GST_SEEK_TYPE_NONE,
0);
@@ -2721,20 +2726,20 @@ void parole_gst_set_dvd_chapter (ParoleGst *gst, gint chapter)
gint parole_gst_get_num_tracks (ParoleGst *gst)
{
gint num_tracks;
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"num-tracks", &num_tracks,
NULL);
-
+
return num_tracks;
}
void parole_gst_seek_cdda (ParoleGst *gst, guint track_num)
{
gint current_track;
-
+
current_track = parole_gst_get_current_cdda_track (gst);
-
+
parole_gst_change_cdda_track (gst, (gint) track_num - current_track -1);
}
@@ -2743,7 +2748,7 @@ gint parole_gst_get_current_cdda_track (ParoleGst *gst)
GstFormat format = gst_format_get_by_nick ("track");
gint64 pos;
gint ret_val = 1;
-
+
#if GST_CHECK_VERSION(1, 0, 0)
if ( gst_element_query_position (gst->priv->playbin, format, &pos) )
#else
@@ -2753,14 +2758,14 @@ gint parole_gst_get_current_cdda_track (ParoleGst *gst)
TRACE ("Pos %" G_GINT64_FORMAT, pos);
ret_val = (gint) pos;
}
-
+
return ret_val;
}
gint64 parole_gst_get_stream_duration (ParoleGst *gst)
{
gint64 dur;
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"duration", &dur,
NULL);
@@ -2771,13 +2776,13 @@ gint64 parole_gst_get_stream_position (ParoleGst *gst)
{
GstFormat format = GST_FORMAT_TIME;
gint64 pos;
-
+
#if GST_CHECK_VERSION(1, 0, 0)
gst_element_query_position (gst->priv->playbin, format, &pos);
#else
gst_element_query_position (gst->priv->playbin, &format, &pos);
#endif
-
+
return pos / GST_SECOND;
}
@@ -2786,7 +2791,7 @@ gboolean parole_gst_get_is_xvimage_sink (ParoleGst *gst)
return gst->priv->xvimage_sink;
}
-void
+void
parole_gst_set_cursor_visible (ParoleGst *gst, gboolean visible)
{
if ( visible )
@@ -2806,7 +2811,7 @@ gst_get_lang_list_for_type (ParoleGst * gst, const gchar * type_name)
GList *ret = NULL;
gint num = 1;
- if (g_str_equal (type_name, "AUDIO"))
+ if (g_str_equal (type_name, "AUDIO"))
{
gint i, n;
@@ -2820,14 +2825,14 @@ gst_get_lang_list_for_type (ParoleGst * gst, const gchar * type_name)
g_signal_emit_by_name (G_OBJECT (gst->priv->playbin), "get-audio-tags",
i, &tags);
- if (tags)
+ if (tags)
{
gchar *lc = NULL, *cd = NULL, *language_name = NULL;
-
+
gst_tag_list_get_string (tags, GST_TAG_LANGUAGE_CODE, &lc);
gst_tag_list_get_string (tags, GST_TAG_CODEC, &cd);
- if (lc)
+ if (lc)
{
language_name = g_strdup(gst_tag_get_language_name(lc));
if (language_name)
@@ -2837,45 +2842,45 @@ gst_get_lang_list_for_type (ParoleGst * gst, const gchar * type_name)
else
ret = g_list_prepend (ret, lc);
g_free (cd);
- }
- else if (cd)
+ }
+ else if (cd)
{
ret = g_list_prepend (ret, cd);
- }
- else
+ }
+ else
{
ret = g_list_prepend (ret, g_strdup_printf (_("Audio Track #%d"), num++));
}
gst_tag_list_free (tags);
- }
- else
+ }
+ else
{
ret = g_list_prepend (ret, g_strdup_printf (_("Audio Track #%d"), num++));
}
}
- }
- else if (g_str_equal (type_name, "TEXT"))
+ }
+ else if (g_str_equal (type_name, "TEXT"))
{
gint i, n = 0;
g_object_get (G_OBJECT (gst->priv->playbin), "n-text", &n, NULL);
-
+
if (n == 0 && gst->priv->use_custom_subtitles == FALSE)
return NULL;
-
+
if ( gst->priv->use_custom_subtitles == TRUE )
n--;
if (n != 0)
{
- for (i = 0; i < n; i++)
+ for (i = 0; i < n; i++)
{
GstTagList *tags = NULL;
g_signal_emit_by_name (G_OBJECT (gst->priv->playbin), "get-text-tags",
i, &tags);
- if (tags)
+ if (tags)
{
gchar *lc = NULL, *cd = NULL, *language_name = NULL;
@@ -2891,28 +2896,28 @@ gst_get_lang_list_for_type (ParoleGst * gst, const gchar * type_name)
else
ret = g_list_prepend (ret, lc);
g_free (cd);
- }
- else
+ }
+ else
{
ret = g_list_prepend (ret, g_strdup_printf (_("Subtitle #%d"), num++));
}
gst_tag_list_free (tags);
- }
- else
+ }
+ else
{
ret = g_list_prepend (ret, g_strdup_printf (_("Subtitle #%d"), num++));
}
}
}
-
+
ret = g_list_reverse (ret);
-
+
if ( gst->priv->use_custom_subtitles == TRUE )
{
ret = g_list_prepend (ret, g_strdup_printf("%s",gst->priv->custom_subtitles));
}
- }
- else
+ }
+ else
{
g_critical ("Invalid stream type '%s'", type_name);
return NULL;
@@ -2925,11 +2930,11 @@ gboolean
gst_get_has_vis( ParoleGst *gst )
{
gboolean has_vis;
-
+
g_object_get (G_OBJECT (gst->priv->conf),
"vis-enabled", &has_vis,
NULL);
-
+
return has_vis;
}
@@ -2938,10 +2943,10 @@ gst_get_has_video( ParoleGst *gst )
{
gboolean playing_video;
- g_object_get (G_OBJECT (gst->priv->stream),
+ g_object_get (G_OBJECT (gst->priv->stream),
"has-video", &playing_video,
NULL);
-
+
return playing_video;
}
@@ -2954,33 +2959,33 @@ gst_set_current_audio_track( ParoleGst *gst, gint track_no )
void
gst_set_current_subtitle_track( ParoleGst *gst, gint track_no )
{
-
+
gchar *uri, *sub;
gint flags;
-
+
g_object_get (G_OBJECT (gst->priv->stream),
"uri", &uri,
NULL);
-
+
if ( gst->priv->use_custom_subtitles == TRUE )
sub = gst->priv->custom_subtitles;
else
sub = (gchar*) parole_get_subtitle_path(uri);
g_object_get (gst->priv->playbin, "flags", &flags, NULL);
-
+
track_no = track_no -1;
- if (track_no <= -1)
+ if (track_no <= -1)
{
flags &= ~GST_PLAY_FLAG_TEXT;
track_no = -1;
- }
- else
+ }
+ else
{
flags |= GST_PLAY_FLAG_TEXT;
}
-
+
if (track_no == -1)
sub = NULL;
@@ -2989,13 +2994,13 @@ gst_set_current_subtitle_track( ParoleGst *gst, gint track_no )
if (flags & GST_PLAY_FLAG_TEXT) {
g_object_get (gst->priv->playbin, "current-text", &track_no, NULL);
}
-
+
parole_gst_load_subtitle( gst );
}
const ParoleStream *parole_gst_get_stream (ParoleGst *gst)
{
g_return_val_if_fail (PAROLE_IS_GST (gst), NULL);
-
+
return gst->priv->stream;
}
diff --git a/src/parole-medialist.c b/src/parole-medialist.c
index 2c1e147..0d84355 100644
--- a/src/parole-medialist.c
+++ b/src/parole-medialist.c
@@ -1220,7 +1220,7 @@ parole_media_list_add_open_containing_folder (ParoleMediaList *list, GtkWidget *
if (g_str_has_prefix (uri, "file:///"))
{
- GtkWidget *mi, *img;
+ GtkWidget *mi;
gchar *dirname;
dirname = g_path_get_dirname (filename);
@@ -2186,7 +2186,8 @@ void parole_media_list_grab_focus (ParoleMediaList *list)
gtk_widget_grab_focus (list->priv->view);
}
-void repeat_action_state_changed (GSimpleAction *simple, GVariant *value, gpointer user_data)
+static void
+repeat_action_state_changed (GSimpleAction *simple, GVariant *value, gpointer user_data)
{
gboolean active = g_simple_toggle_action_get_active(simple);
@@ -2196,7 +2197,8 @@ void repeat_action_state_changed (GSimpleAction *simple, GVariant *value, gpoint
}
}
-void repeat_toggled(GtkWidget *widget, GSimpleAction *simple)
+static void
+repeat_toggled(GtkWidget *widget, GSimpleAction *simple)
{
gboolean active = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(media_list->priv->repeat_button));
g_simple_toggle_action_set_active(simple, active);
@@ -2210,7 +2212,8 @@ void parole_media_list_connect_repeat_action (ParoleMediaList *list, GSimpleActi
g_signal_connect(G_OBJECT(list->priv->repeat_button), "clicked", G_CALLBACK(repeat_toggled), simple);
}
-void shuffle_action_state_changed (GSimpleAction *simple, GVariant *value, gpointer user_data)
+static void
+shuffle_action_state_changed (GSimpleAction *simple, GVariant *value, gpointer user_data)
{
gboolean active = g_simple_toggle_action_get_active(simple);
@@ -2220,7 +2223,8 @@ void shuffle_action_state_changed (GSimpleAction *simple, GVariant *value, gpoin
}
}
-void shuffle_toggled(GtkWidget *widget, GSimpleAction *simple)
+static void
+shuffle_toggled(GtkWidget *widget, GSimpleAction *simple)
{
gboolean active = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(media_list->priv->shuffle_button));
g_simple_toggle_action_set_active(simple, active);
diff --git a/src/parole-player.c b/src/parole-player.c
index 18e1621..5e0ce21 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -504,7 +504,7 @@ void parole_player_widget_activate_action (GtkWidget *widget,
g_action_activate (G_ACTION(action), NULL);
}
-void toggle_action_cb (GtkWidget *widget, GSimpleAction *action)
+static void toggle_action_cb (GtkWidget *widget, GSimpleAction *action)
{
if (!block_playlist_updates)
g_simple_toggle_action_set_active (action,
@@ -1303,15 +1303,13 @@ parole_player_seekable_notify (ParoleStream *stream, GParamSpec *spec, ParolePla
static void
parole_player_set_playpause_button_from_stock (ParolePlayer *player, const gchar *stock_id)
{
- gchar *icon_name = NULL, *label = NULL, *tooltip = NULL;
+ gchar *icon_name = NULL, *tooltip = NULL;
if (g_strcmp0(stock_id, "gtk-media-play") == 0) {
icon_name = g_strdup("media-playback-start-symbolic");
- label = _("_Play");
tooltip = _("Play");
} else if (g_strcmp0(stock_id, "gtk-media-pause") == 0) {
icon_name = g_strdup("media-playback-pause-symbolic");
- label = _("_Pause");
tooltip = _("Pause");
}
@@ -1662,7 +1660,8 @@ on_infobar_close_clicked (GtkButton *button, ParolePlayer *player)
gtk_widget_hide(player->priv->infobar);
}
-void parole_player_repeat_state_changed (GSimpleAction *simple, GVariant *value, ParolePlayer *player)
+static void
+parole_player_repeat_state_changed (GSimpleAction *simple, GVariant *value, ParolePlayer *player)
{
gboolean active = g_simple_toggle_action_get_active(simple);
block_playlist_updates = TRUE;
@@ -1675,7 +1674,8 @@ void parole_player_repeat_state_changed (GSimpleAction *simple, GVariant *value,
block_playlist_updates = FALSE;
}
-void parole_player_shuffle_state_changed (GSimpleAction *simple, GVariant *value, ParolePlayer *player)
+static void
+parole_player_shuffle_state_changed (GSimpleAction *simple, GVariant *value, ParolePlayer *player)
{
gboolean active = g_simple_toggle_action_get_active(simple);
block_playlist_updates = TRUE;
@@ -2193,13 +2193,13 @@ gboolean parole_player_hide_controls (gpointer data)
gboolean
parole_player_gst_widget_motion_notify_event (GtkWidget *widget, GdkEventMotion *ev, ParolePlayer *player)
{
- static gulong hide_timeout = 0;
+ static gulong hide_timeout;
int hide_controls_timeout;
GdkWindow *gdkwindow;
if ( hide_timeout != 0)
{
- g_source_remove (hide_timeout);
+ g_source_remove_by_user_data (player);
hide_timeout = 0;
}
@@ -2243,7 +2243,7 @@ parole_player_media_menu_select_cb (GtkMenuItem *widget, ParolePlayer *player)
!parole_media_list_is_empty (player->priv->list));
}
-void
+static void
parole_player_playback_menu_select_cb (GtkMenuItem *widget, ParolePlayer *player)
{
gtk_widget_set_sensitive (player->priv->goto_position,
@@ -2731,7 +2731,7 @@ on_contents_clicked (GtkWidget *w, ParolePlayer *player)
}
}
-gboolean
+static gboolean
on_goto_position_clicked (GtkWidget *w, ParolePlayer *player)
{
GtkWidget *dialog;
@@ -2785,7 +2785,7 @@ on_goto_position_clicked (GtkWidget *w, ParolePlayer *player)
gtk_widget_set_sensitive (GTK_WIDGET (spin_hrs), FALSE);
if ( duration < 60 )
gtk_widget_set_sensitive (GTK_WIDGET (spin_mins), FALSE);
- if ( duration = 0 )
+ if ( duration == 0 )
gtk_widget_set_sensitive (GTK_WIDGET (spin_secs), FALSE);
if ( current_position != 0 )
@@ -3032,7 +3032,6 @@ parole_player_setup_multimedia_keys (ParolePlayer *player)
static void
parole_player_init (ParolePlayer *player)
{
- GtkWidget *icon;
GtkBuilder *builder;
gint w, h;
gboolean maximized;
@@ -3049,9 +3048,6 @@ parole_player_init (ParolePlayer *player)
GtkWidget *clear_recent;
GtkWidget *recent_separator;
- GtkWidget *goto_position;
-
-
GtkWidget *bug_report, *contents;
GtkCellRenderer *cell, *sub_cell;
diff --git a/src/plugins/tray/tray-provider.c b/src/plugins/tray/tray-provider.c
index 8676710..36fd502 100644
--- a/src/plugins/tray/tray-provider.c
+++ b/src/plugins/tray/tray-provider.c
@@ -85,6 +85,7 @@ exit_activated_cb (TrayProvider *tray)
gtk_main_do_event ((GdkEvent *) &ev);
}
+static void
play_pause_activated_cb (TrayProvider *tray)
{
menu_selection_done_cb (tray);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list