diff options
-rw-r--r-- | src/backend/bacon-video-widget.c | 23 | ||||
-rw-r--r-- | src/backend/bacon-video-widget.h | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/backend/bacon-video-widget.c b/src/backend/bacon-video-widget.c index 4fc4d41f0..3d9e6ad29 100644 --- a/src/backend/bacon-video-widget.c +++ b/src/backend/bacon-video-widget.c @@ -2671,6 +2671,29 @@ bacon_video_widget_set_subtitle (BaconVideoWidget * bvw, int subtitle) } } +/** + * bacon_video_toggle_subtitles: + * @bvw: a #BaconVideoWidget + * + * Toggles the visibility of subtitles. + **/ +void +bacon_video_toggle_subtitles (BaconVideoWidget *bvw) +{ + guint flags; + + g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); + g_return_if_fail (bvw->play != NULL); + + g_object_get (bvw->play, "flags", &flags, NULL); + if (flags & GST_PLAY_FLAG_TEXT) + flags &= ~GST_PLAY_FLAG_TEXT; + else + flags |= GST_PLAY_FLAG_TEXT; + g_object_set (bvw->play, "flags", flags, NULL); + g_signal_emit (bvw, bvw_signals[SIGNAL_SUBTITLES_CHANGED], 0); +} + static BvwLangInfo * find_next_info_for_id (GList *list, int current) diff --git a/src/backend/bacon-video-widget.h b/src/backend/bacon-video-widget.h index 0e6c77b22..3964c6118 100644 --- a/src/backend/bacon-video-widget.h +++ b/src/backend/bacon-video-widget.h @@ -385,6 +385,7 @@ int bacon_video_widget_get_subtitle (BaconVideoWidget *bvw); void bacon_video_widget_set_subtitle (BaconVideoWidget *bvw, int subtitle); void bacon_video_widget_set_next_subtitle (BaconVideoWidget *bvw); +void bacon_video_toggle_subtitles (BaconVideoWidget *bvw); gboolean bacon_video_widget_has_next_track (BaconVideoWidget *bvw); gboolean bacon_video_widget_has_previous_track (BaconVideoWidget *bvw); |