ClapperGtkVideo is the main widget exposed by ClapperGtkAPI. All other widgets
exposed by this library are meant to be overlaid on top of this widget.
For example a button type of widget once placed anywhere on video (can also be
-nested within another widget like GtkBox) automatically works and controls
+nested within another widget like GtkBox) automatically controls
ClapperGtkVideo widget it was overlaid on top of. This allows freely creating custom
playback control panels best suited for specific application. Additionally, pre-made
widgets such as ClapperGtkSimpleControls are also available.
@@ -221,11 +221,25 @@ For more information please refer to the Clapper playback library documenta
content when interacting with the video. To do this, simply add your widgets with
clapper_gtk_video_add_fading_overlay(). If you want to display some static content
on top of video (or take care of visibility within overlaid widget itself) you can add
-it to the video as a normal (static) overlay with clapper_gtk_video_add_overlay().
+it to the video as a normal overlay with clapper_gtk_video_add_overlay().
ClapperGtkVideo as GtkBuildable
ClapperGtkVideo implementation of the GtkBuildable interface supports
placing children as either normal overlay by specifying overlay or a fading
-one by specifying fading-overlay as the type attribute of a <child> element.
+one by specifying fading-overlay as the type attribute of a <child> element.
+Position of overlaid content is determined by valign/halign properties.
+
diff --git a/doc/clapper-gtk/index.json b/doc/clapper-gtk/index.json
index 77e79821..c7d7f574 100644
--- a/doc/clapper-gtk/index.json
+++ b/doc/clapper-gtk/index.json
@@ -1 +1 @@
-{"meta":{"ns":"ClapperGtk","version":"0.0","generator":"gi-docgen","generator-version":"2023.3"},"symbols":[{"type":"bitfield","name":"VideoActionMask","ctype":"ClapperGtkVideoActionMask","summary":"No description available.","deprecated":null},{"type":"class","name":"Billboard","ctype":"ClapperGtkBillboard","summary":"A layer where various messages can be displayed. #ClapperGtkBillboard widget is meant to be overlaid on top of ...","deprecated":null},{"type":"class","name":"Container","ctype":"ClapperGtkContainer","summary":"A simple container widget that holds just one child. It is designed to work well with OSD overlay, ...","deprecated":null},{"type":"class","name":"EngageLayer","ctype":"ClapperGtkEngageLayer","summary":"A layer with big `play` button, engaging user to start the playback. #ClapperGtkEngageLayer widget is meant to be ...","deprecated":null},{"type":"class","name":"LeadContainer","ctype":"ClapperGtkLeadContainer","summary":"A #ClapperGtkContainer that can take priority in user interactions with the #ClapperGtkVideo. #ClapperGtkLeadContainer is a special type of ...","deprecated":null},{"type":"class","name":"NextItemButton","ctype":"ClapperGtkNextItemButton","summary":"A #GtkButton for selecting next queue item.","deprecated":null},{"type":"class","name":"PreviousItemButton","ctype":"ClapperGtkPreviousItemButton","summary":"A #GtkButton for selecting previous queue item.","deprecated":null},{"type":"class","name":"QueueSelection","ctype":"ClapperGtkQueueSelection","summary":"A #GtkSelectionModel that considers current item of #ClapperQueue as selected one.","deprecated":null},{"type":"class","name":"SeekBar","ctype":"ClapperGtkSeekBar","summary":"A bar for seeking and displaying playback position.","deprecated":null},{"type":"class","name":"SimpleControls","ctype":"ClapperGtkSimpleControls","summary":"A minimalistic playback controls panel widget. #ClapperGtkSimpleControls is a simple, ready to be used playback controls widget. It ...","deprecated":null},{"type":"class","name":"SkipItemButton","ctype":"ClapperGtkSkipItemButton","summary":"A base class for creating buttons that skip to previous/next queue item. Unless you are in need to ...","deprecated":null},{"type":"class","name":"TitleHeader","ctype":"ClapperGtkTitleHeader","summary":"A header panel widget that displays current media title. #ClapperGtkTitleHeader is a simple, ready to be used header ...","deprecated":null},{"type":"class","name":"ToggleFullscreenButton","ctype":"ClapperGtkToggleFullscreenButton","summary":"A #GtkButton for toggling fullscreen state.","deprecated":null},{"type":"class","name":"TogglePlayButton","ctype":"ClapperGtkTogglePlayButton","summary":"A #GtkButton for toggling play/pause of playback.","deprecated":null},{"type":"class","name":"Video","ctype":"ClapperGtkVideo","summary":"A ready to be used GTK video widget implementing Clapper API. #ClapperGtkVideo is the main widget exposed by ...","deprecated":null},{"type":"constant","name":"MAJOR_VERSION","ident":"CLAPPER_GTK_MAJOR_VERSION","summary":"ClapperGtk major version component","deprecated":null},{"type":"constant","name":"MICRO_VERSION","ident":"CLAPPER_GTK_MICRO_VERSION","summary":"ClapperGtk micro version component","deprecated":null},{"type":"constant","name":"MINOR_VERSION","ident":"CLAPPER_GTK_MINOR_VERSION","summary":"ClapperGtk minor version component","deprecated":null},{"type":"constant","name":"VERSION_S","ident":"CLAPPER_GTK_VERSION_S","summary":"ClapperGtk version, encoded as a string","deprecated":null},{"type":"ctor","name":"new","type_name":"Billboard","ident":"clapper_gtk_billboard_new","summary":"Creates a new #ClapperGtkBillboard instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Container","ident":"clapper_gtk_container_new","summary":"Creates a new #ClapperGtkContainer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"EngageLayer","ident":"clapper_gtk_engage_layer_new","summary":"Creates a new #ClapperGtkEngageLayer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_new","summary":"Creates a new #ClapperGtkLeadContainer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"NextItemButton","ident":"clapper_gtk_next_item_button_new","summary":"Creates a new #GtkWidget with button to play next #ClapperMediaItem.","deprecated":null},{"type":"ctor","name":"new","type_name":"PreviousItemButton","ident":"clapper_gtk_previous_item_button_new","summary":"Creates a new #GtkWidget with button to play previous #ClapperMediaItem.","deprecated":null},{"type":"ctor","name":"new","type_name":"QueueSelection","ident":"clapper_gtk_queue_selection_new","summary":"Creates a new #ClapperGtkQueueSelection instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_new","summary":"Creates a new #GtkWidget with a seek bar.","deprecated":null},{"type":"ctor","name":"new","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_new","summary":"Creates a new #GtkWidget with simple playback controls.","deprecated":null},{"type":"ctor","name":"new","type_name":"TitleHeader","ident":"clapper_gtk_title_header_new","summary":"Creates a new #GtkWidget with title header.","deprecated":null},{"type":"ctor","name":"new","type_name":"ToggleFullscreenButton","ident":"clapper_gtk_toggle_fullscreen_button_new","summary":"Creates a new #GtkWidget with button to toggle fullscreen state.","deprecated":null},{"type":"ctor","name":"new","type_name":"TogglePlayButton","ident":"clapper_gtk_toggle_play_button_new","summary":"Creates a new #GtkWidget with button to toggle playback.","deprecated":null},{"type":"ctor","name":"new","type_name":"Video","ident":"clapper_gtk_video_new","summary":"Creates a new #ClapperGtkVideo instance.","deprecated":null},{"type":"function","name":"get_player_from_ancestor","ident":"clapper_gtk_get_player_from_ancestor","summary":"Get #ClapperPlayer used by #ClapperGtkVideoPlayer ancestor of @widget. This utility is a convenience wrapper for calling [method@Gtk.Widget.get_ancestor] of ...","deprecated":null},{"type":"function","name":"get_resource","ident":"clapper_gtk_get_resource","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"BILLBOARD_CAST","ident":"CLAPPER_GTK_BILLBOARD_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"CHECK_VERSION","ident":"CLAPPER_GTK_CHECK_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"CONTAINER_CAST","ident":"CLAPPER_GTK_CONTAINER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENCODE_VERSION","ident":"CLAPPER_GTK_ENCODE_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENGAGE_LAYER_CAST","ident":"CLAPPER_GTK_ENGAGE_LAYER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"LEAD_CONTAINER_CAST","ident":"CLAPPER_GTK_LEAD_CONTAINER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"NEXT_ITEM_BUTTON_CAST","ident":"CLAPPER_GTK_NEXT_ITEM_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"PREVIOUS_ITEM_BUTTON_CAST","ident":"CLAPPER_GTK_PREVIOUS_ITEM_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"QUEUE_SELECTION_CAST","ident":"CLAPPER_GTK_QUEUE_SELECTION_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SEEK_BAR_CAST","ident":"CLAPPER_GTK_SEEK_BAR_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SIMPLE_CONTROLS_CAST","ident":"CLAPPER_GTK_SIMPLE_CONTROLS_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SKIP_ITEM_BUTTON_CAST","ident":"CLAPPER_GTK_SKIP_ITEM_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TITLE_HEADER_CAST","ident":"CLAPPER_GTK_TITLE_HEADER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TOGGLE_FULLSCREEN_BUTTON_CAST","ident":"CLAPPER_GTK_TOGGLE_FULLSCREEN_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TOGGLE_PLAY_BUTTON_CAST","ident":"CLAPPER_GTK_TOGGLE_PLAY_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"VIDEO_CAST","ident":"CLAPPER_GTK_VIDEO_CAST","summary":"No description available.","deprecated":null},{"type":"method","name":"add_fading_overlay","type_name":"Video","ident":"clapper_gtk_video_add_fading_overlay","summary":"Similiar as clapper_gtk_video_add_overlay() but will also automatically add fading functionality to overlaid #GtkWidget for convenience. This will make widget ...","deprecated":null},{"type":"method","name":"add_overlay","type_name":"Video","ident":"clapper_gtk_video_add_overlay","summary":"Add another #GtkWidget to be overlaid on top of video. The position at which @widget is placed is ...","deprecated":null},{"type":"method","name":"announce_speed","type_name":"Billboard","ident":"clapper_gtk_billboard_announce_speed","summary":"No description available.","deprecated":null},{"type":"method","name":"announce_volume","type_name":"Billboard","ident":"clapper_gtk_billboard_announce_volume","summary":"No description available.","deprecated":null},{"type":"method","name":"get_adaptive_height","type_name":"Container","ident":"clapper_gtk_container_get_adaptive_height","summary":"Get a @container adaptive height threshold.","deprecated":null},{"type":"method","name":"get_adaptive_width","type_name":"Container","ident":"clapper_gtk_container_get_adaptive_width","summary":"Get a @container adaptive width threshold.","deprecated":null},{"type":"method","name":"get_auto_inhibit","type_name":"Video","ident":"clapper_gtk_video_get_auto_inhibit","summary":"Get whether automatic session inhibit is enabled.","deprecated":null},{"type":"method","name":"get_blocked_actions","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_get_blocked_actions","summary":"Get @actions that were set for this @lead_container to block.","deprecated":null},{"type":"method","name":"get_child","type_name":"Container","ident":"clapper_gtk_container_get_child","summary":"Get a child #GtkWidget of @container.","deprecated":null},{"type":"method","name":"get_fade_delay","type_name":"Video","ident":"clapper_gtk_video_get_fade_delay","summary":"Get time in milliseconds after which fading overlays should fade.","deprecated":null},{"type":"method","name":"get_fullscreenable","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_get_fullscreenable","summary":"Get whether [class@ClapperGtk.ToggleFullscreenButton] button in the @controls is set to be visible.","deprecated":null},{"type":"method","name":"get_height_target","type_name":"Container","ident":"clapper_gtk_container_get_height_target","summary":"Get a @container height target.","deprecated":null},{"type":"method","name":"get_inhibited","type_name":"Video","ident":"clapper_gtk_video_get_inhibited","summary":"Get whether session is currently inhibited by [property@ClapperGtk.Video:auto-inhibit].","deprecated":null},{"type":"method","name":"get_leading","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_get_leading","summary":"Get a whenever @lead_container has leadership set.","deprecated":null},{"type":"method","name":"get_player","type_name":"Video","ident":"clapper_gtk_video_get_player","summary":"Get #ClapperPlayer used by this #ClapperGtkVideo instance.","deprecated":null},{"type":"method","name":"get_queue","type_name":"QueueSelection","ident":"clapper_gtk_queue_selection_get_queue","summary":"Get #ClapperQueue managed by this selection model.","deprecated":null},{"type":"method","name":"get_reveal_labels","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_get_reveal_labels","summary":"Get whether the position and duration labels are going to be revealed.","deprecated":null},{"type":"method","name":"get_seek_method","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_get_seek_method","summary":"Get [enum@Clapper.PlayerSeekMethod] used when seeking with seek bar.","deprecated":null},{"type":"method","name":"get_seek_method","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_get_seek_method","summary":"Get [enum@Clapper.PlayerSeekMethod] used when seeking with progress bar.","deprecated":null},{"type":"method","name":"get_touch_fade_delay","type_name":"Video","ident":"clapper_gtk_video_get_touch_fade_delay","summary":"Get time in milliseconds after which fading overlays should fade when revealed using touch device.","deprecated":null},{"type":"method","name":"get_width_target","type_name":"Container","ident":"clapper_gtk_container_get_width_target","summary":"Get a @container width target.","deprecated":null},{"type":"method","name":"pin_message","type_name":"Billboard","ident":"clapper_gtk_billboard_pin_message","summary":"No description available.","deprecated":null},{"type":"method","name":"post_message","type_name":"Billboard","ident":"clapper_gtk_billboard_post_message","summary":"No description available.","deprecated":null},{"type":"method","name":"set_adaptive_height","type_name":"Container","ident":"clapper_gtk_container_set_adaptive_height","summary":"Set an adaptive height threshold. When widget is resized to value or lower, an [signal@ClapperGtk.Container::adapt] signal will be emitted ...","deprecated":null},{"type":"method","name":"set_adaptive_width","type_name":"Container","ident":"clapper_gtk_container_set_adaptive_width","summary":"Set an adaptive width threshold. When widget is resized to value or lower, an [signal@ClapperGtk.Container::adapt] signal will be emitted ...","deprecated":null},{"type":"method","name":"set_auto_inhibit","type_name":"Video","ident":"clapper_gtk_video_set_auto_inhibit","summary":"Set whether video should try to automatically inhibit session from idling (and possibly screen going black) when video is playing.","deprecated":null},{"type":"method","name":"set_blocked_actions","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_set_blocked_actions","summary":"Set @actions that #ClapperGtkVideo should skip when #GdkEvent which would normally trigger them happens inside @lead_container.","deprecated":null},{"type":"method","name":"set_child","type_name":"Container","ident":"clapper_gtk_container_set_child","summary":"Set a child #GtkWidget of @container.","deprecated":null},{"type":"method","name":"set_fade_delay","type_name":"Video","ident":"clapper_gtk_video_set_fade_delay","summary":"Set time in milliseconds after which fading overlays should fade.","deprecated":null},{"type":"method","name":"set_fullscreenable","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_set_fullscreenable","summary":"Set whether [class@ClapperGtk.ToggleFullscreenButton] button in the @controls should be visible. You might want to consider setting this to ...","deprecated":null},{"type":"method","name":"set_height_target","type_name":"Container","ident":"clapper_gtk_container_set_height_target","summary":"Same as clapper_gtk_container_set_width_target() but for widget height.","deprecated":null},{"type":"method","name":"set_leading","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_set_leading","summary":"Set if @lead_container leadership should be enabled. When enabled, interactions with @lead_container will not trigger their default behavior, ...","deprecated":null},{"type":"method","name":"set_queue","type_name":"QueueSelection","ident":"clapper_gtk_queue_selection_set_queue","summary":"Set #ClapperQueue to be managed by this selection model.","deprecated":null},{"type":"method","name":"set_reveal_labels","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_set_reveal_labels","summary":"Set whether the position and duration labels should be revealed.","deprecated":null},{"type":"method","name":"set_seek_method","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_set_seek_method","summary":"Set [enum@Clapper.PlayerSeekMethod] to use when seeking with seek bar.","deprecated":null},{"type":"method","name":"set_seek_method","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_set_seek_method","summary":"Set [enum@Clapper.PlayerSeekMethod] to use when seeking with progress bar.","deprecated":null},{"type":"method","name":"set_touch_fade_delay","type_name":"Video","ident":"clapper_gtk_video_set_touch_fade_delay","summary":"Set time in milliseconds after which fading overlays should fade when using touchscreen. It is often useful to ...","deprecated":null},{"type":"method","name":"set_width_target","type_name":"Container","ident":"clapper_gtk_container_set_width_target","summary":"Set a width that @container should target. When set container will not stretch beyond set @width while still expanding ...","deprecated":null},{"type":"method","name":"unpin_pinned_message","type_name":"Billboard","ident":"clapper_gtk_billboard_unpin_pinned_message","summary":"No description available.","deprecated":null},{"type":"property","name":"adaptive-height","type_name":"Container","summary":"Adaptive height threshold that triggers [signal@ClapperGtk.Container::adapt] signal.","deprecated":null},{"type":"property","name":"adaptive-width","type_name":"Container","summary":"Adaptive width threshold that triggers [signal@ClapperGtk.Container::adapt] signal.","deprecated":null},{"type":"property","name":"auto-inhibit","type_name":"Video","summary":"Try to automatically inhibit session when video is playing.","deprecated":null},{"type":"property","name":"blocked-actions","type_name":"LeadContainer","summary":"Mask of actions that container blocks from being triggered on video.","deprecated":null},{"type":"property","name":"fade-delay","type_name":"Video","summary":"A delay in milliseconds before trying to fade all fading overlays.","deprecated":null},{"type":"property","name":"fullscreenable","type_name":"SimpleControls","summary":"Whether toggle fullscreen button should be visible.","deprecated":null},{"type":"property","name":"height-target","type_name":"Container","summary":"Height that container should target.","deprecated":null},{"type":"property","name":"inhibited","type_name":"Video","summary":"Get whether session is currently inhibited by the video.","deprecated":null},{"type":"property","name":"leading","type_name":"LeadContainer","summary":"Width that container should target.","deprecated":null},{"type":"property","name":"player","type_name":"Video","summary":"A #ClapperPlayer used by video.","deprecated":null},{"type":"property","name":"queue","type_name":"QueueSelection","summary":"The queue being managed.","deprecated":null},{"type":"property","name":"reveal-labels","type_name":"SeekBar","summary":"Reveal state of the position and duration labels.","deprecated":null},{"type":"property","name":"seek-method","type_name":"SeekBar","summary":"Method used for seeking.","deprecated":null},{"type":"property","name":"seek-method","type_name":"SimpleControls","summary":"Method used for seeking.","deprecated":null},{"type":"property","name":"touch-fade-delay","type_name":"Video","summary":"A delay in milliseconds before trying to fade all fading overlays after revealed using touchscreen.","deprecated":null},{"type":"property","name":"width-target","type_name":"Container","summary":"Width that container should target.","deprecated":null},{"type":"signal","name":"adapt","type_name":"Container","summary":"A helper signal for implementing mobile/narrow adaptive behavior on descendants.","deprecated":null},{"type":"signal","name":"item-query","type_name":"QueueSelection","summary":"Signals when the #GtkSelectionModel is doing item query. Can be used to know that a widget is created ...","deprecated":null},{"type":"signal","name":"item-selected","type_name":"QueueSelection","summary":"Signals when user selected item within the #GtkSelectionModel. Note that this signal is emitted only when item gets selected ...","deprecated":null},{"type":"signal","name":"toggle-fullscreen","type_name":"Video","summary":"A signal that user requested a change in fullscreen state of the video. Note that when going fullscreen ...","deprecated":null},{"type":"vfunc","name":"can_skip","type_name":"SkipItemButton","summary":"No description available.","deprecated":null},{"type":"vfunc","name":"skip_item","type_name":"SkipItemButton","summary":"No description available.","deprecated":null}],"terms":{}}
\ No newline at end of file
+{"meta":{"ns":"ClapperGtk","version":"0.0","generator":"gi-docgen","generator-version":"2023.3"},"symbols":[{"type":"bitfield","name":"VideoActionMask","ctype":"ClapperGtkVideoActionMask","summary":"No description available.","deprecated":null},{"type":"class","name":"Billboard","ctype":"ClapperGtkBillboard","summary":"A layer where various messages can be displayed. #ClapperGtkBillboard widget is meant to be overlaid on top of ...","deprecated":null},{"type":"class","name":"Container","ctype":"ClapperGtkContainer","summary":"A simple container widget that holds just one child. It is designed to work well with OSD overlay, ...","deprecated":null},{"type":"class","name":"EngageLayer","ctype":"ClapperGtkEngageLayer","summary":"A layer with big `play` button, engaging user to start the playback. #ClapperGtkEngageLayer widget is meant to be ...","deprecated":null},{"type":"class","name":"ExtraMenuButton","ctype":"ClapperGtkExtraMenuButton","summary":"A menu button with extra options.","deprecated":null},{"type":"class","name":"LeadContainer","ctype":"ClapperGtkLeadContainer","summary":"A #ClapperGtkContainer that can take priority in user interactions with the #ClapperGtkVideo. #ClapperGtkLeadContainer is a special type of ...","deprecated":null},{"type":"class","name":"NextItemButton","ctype":"ClapperGtkNextItemButton","summary":"A #GtkButton for selecting next queue item.","deprecated":null},{"type":"class","name":"PreviousItemButton","ctype":"ClapperGtkPreviousItemButton","summary":"A #GtkButton for selecting previous queue item.","deprecated":null},{"type":"class","name":"QueueSelection","ctype":"ClapperGtkQueueSelection","summary":"A #GtkSelectionModel that considers current item of #ClapperQueue as selected one.","deprecated":null},{"type":"class","name":"SeekBar","ctype":"ClapperGtkSeekBar","summary":"A bar for seeking and displaying playback position.","deprecated":null},{"type":"class","name":"SimpleControls","ctype":"ClapperGtkSimpleControls","summary":"A minimalistic playback controls panel widget. #ClapperGtkSimpleControls is a simple, ready to be used playback controls widget. It ...","deprecated":null},{"type":"class","name":"SkipItemButton","ctype":"ClapperGtkSkipItemButton","summary":"A base class for creating buttons that skip to previous/next queue item. Unless you are in need to ...","deprecated":null},{"type":"class","name":"TitleHeader","ctype":"ClapperGtkTitleHeader","summary":"A header panel widget that displays current media title. #ClapperGtkTitleHeader is a simple, ready to be used header ...","deprecated":null},{"type":"class","name":"ToggleFullscreenButton","ctype":"ClapperGtkToggleFullscreenButton","summary":"A #GtkButton for toggling fullscreen state.","deprecated":null},{"type":"class","name":"TogglePlayButton","ctype":"ClapperGtkTogglePlayButton","summary":"A #GtkButton for toggling play/pause of playback.","deprecated":null},{"type":"class","name":"Video","ctype":"ClapperGtkVideo","summary":"A ready to be used GTK video widget implementing Clapper API. #ClapperGtkVideo is the main widget exposed by ...","deprecated":null},{"type":"constant","name":"MAJOR_VERSION","ident":"CLAPPER_GTK_MAJOR_VERSION","summary":"ClapperGtk major version component","deprecated":null},{"type":"constant","name":"MICRO_VERSION","ident":"CLAPPER_GTK_MICRO_VERSION","summary":"ClapperGtk micro version component","deprecated":null},{"type":"constant","name":"MINOR_VERSION","ident":"CLAPPER_GTK_MINOR_VERSION","summary":"ClapperGtk minor version component","deprecated":null},{"type":"constant","name":"VERSION_S","ident":"CLAPPER_GTK_VERSION_S","summary":"ClapperGtk version, encoded as a string","deprecated":null},{"type":"ctor","name":"new","type_name":"Billboard","ident":"clapper_gtk_billboard_new","summary":"Creates a new #ClapperGtkBillboard instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Container","ident":"clapper_gtk_container_new","summary":"Creates a new #ClapperGtkContainer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"EngageLayer","ident":"clapper_gtk_engage_layer_new","summary":"Creates a new #ClapperGtkEngageLayer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"ExtraMenuButton","ident":"clapper_gtk_extra_menu_button_new","summary":"Creates a new extra menu button #GtkWidget.","deprecated":null},{"type":"ctor","name":"new","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_new","summary":"Creates a new #ClapperGtkLeadContainer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"NextItemButton","ident":"clapper_gtk_next_item_button_new","summary":"Creates a new #GtkWidget with button to play next #ClapperMediaItem.","deprecated":null},{"type":"ctor","name":"new","type_name":"PreviousItemButton","ident":"clapper_gtk_previous_item_button_new","summary":"Creates a new #GtkWidget with button to play previous #ClapperMediaItem.","deprecated":null},{"type":"ctor","name":"new","type_name":"QueueSelection","ident":"clapper_gtk_queue_selection_new","summary":"Creates a new #ClapperGtkQueueSelection instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_new","summary":"Creates a new #GtkWidget with a seek bar.","deprecated":null},{"type":"ctor","name":"new","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_new","summary":"Creates a new #GtkWidget with simple playback controls.","deprecated":null},{"type":"ctor","name":"new","type_name":"TitleHeader","ident":"clapper_gtk_title_header_new","summary":"Creates a new #GtkWidget with title header.","deprecated":null},{"type":"ctor","name":"new","type_name":"ToggleFullscreenButton","ident":"clapper_gtk_toggle_fullscreen_button_new","summary":"Creates a new #GtkWidget with button to toggle fullscreen state.","deprecated":null},{"type":"ctor","name":"new","type_name":"TogglePlayButton","ident":"clapper_gtk_toggle_play_button_new","summary":"Creates a new #GtkWidget with button to toggle playback.","deprecated":null},{"type":"ctor","name":"new","type_name":"Video","ident":"clapper_gtk_video_new","summary":"Creates a new #ClapperGtkVideo instance.","deprecated":null},{"type":"function","name":"get_player_from_ancestor","ident":"clapper_gtk_get_player_from_ancestor","summary":"Get [class@Clapper.Player] used by [class@ClapperGtk.Video] ancestor of @widget. This utility is a convenience wrapper for calling [method@Gtk.Widget.get_ancestor] of ...","deprecated":null},{"type":"function","name":"get_resource","ident":"clapper_gtk_get_resource","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"BILLBOARD_CAST","ident":"CLAPPER_GTK_BILLBOARD_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"CHECK_VERSION","ident":"CLAPPER_GTK_CHECK_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"CONTAINER_CAST","ident":"CLAPPER_GTK_CONTAINER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENCODE_VERSION","ident":"CLAPPER_GTK_ENCODE_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENGAGE_LAYER_CAST","ident":"CLAPPER_GTK_ENGAGE_LAYER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"EXTRA_MENU_BUTTON_CAST","ident":"CLAPPER_GTK_EXTRA_MENU_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"LEAD_CONTAINER_CAST","ident":"CLAPPER_GTK_LEAD_CONTAINER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"NEXT_ITEM_BUTTON_CAST","ident":"CLAPPER_GTK_NEXT_ITEM_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"PREVIOUS_ITEM_BUTTON_CAST","ident":"CLAPPER_GTK_PREVIOUS_ITEM_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"QUEUE_SELECTION_CAST","ident":"CLAPPER_GTK_QUEUE_SELECTION_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SEEK_BAR_CAST","ident":"CLAPPER_GTK_SEEK_BAR_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SIMPLE_CONTROLS_CAST","ident":"CLAPPER_GTK_SIMPLE_CONTROLS_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SKIP_ITEM_BUTTON_CAST","ident":"CLAPPER_GTK_SKIP_ITEM_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TITLE_HEADER_CAST","ident":"CLAPPER_GTK_TITLE_HEADER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TOGGLE_FULLSCREEN_BUTTON_CAST","ident":"CLAPPER_GTK_TOGGLE_FULLSCREEN_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TOGGLE_PLAY_BUTTON_CAST","ident":"CLAPPER_GTK_TOGGLE_PLAY_BUTTON_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"VIDEO_CAST","ident":"CLAPPER_GTK_VIDEO_CAST","summary":"No description available.","deprecated":null},{"type":"method","name":"add_fading_overlay","type_name":"Video","ident":"clapper_gtk_video_add_fading_overlay","summary":"Similiar as clapper_gtk_video_add_overlay() but will also automatically add fading functionality to overlaid #GtkWidget for convenience. This will make widget ...","deprecated":null},{"type":"method","name":"add_overlay","type_name":"Video","ident":"clapper_gtk_video_add_overlay","summary":"Add another #GtkWidget to be overlaid on top of video. The position at which @widget is placed is ...","deprecated":null},{"type":"method","name":"announce_speed","type_name":"Billboard","ident":"clapper_gtk_billboard_announce_speed","summary":"No description available.","deprecated":null},{"type":"method","name":"announce_volume","type_name":"Billboard","ident":"clapper_gtk_billboard_announce_volume","summary":"No description available.","deprecated":null},{"type":"method","name":"get_adaptive_height","type_name":"Container","ident":"clapper_gtk_container_get_adaptive_height","summary":"Get a @container adaptive height threshold.","deprecated":null},{"type":"method","name":"get_adaptive_width","type_name":"Container","ident":"clapper_gtk_container_get_adaptive_width","summary":"Get a @container adaptive width threshold.","deprecated":null},{"type":"method","name":"get_auto_inhibit","type_name":"Video","ident":"clapper_gtk_video_get_auto_inhibit","summary":"Get whether automatic session inhibit is enabled.","deprecated":null},{"type":"method","name":"get_blocked_actions","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_get_blocked_actions","summary":"Get @actions that were set for this @lead_container to block.","deprecated":null},{"type":"method","name":"get_can_open_subtitles","type_name":"ExtraMenuButton","ident":"clapper_gtk_extra_menu_button_get_can_open_subtitles","summary":"Get whether an option to open external subtitle stream inside popover is visible.","deprecated":null},{"type":"method","name":"get_child","type_name":"Container","ident":"clapper_gtk_container_get_child","summary":"Get a child #GtkWidget of @container.","deprecated":null},{"type":"method","name":"get_extra_menu_button","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_get_extra_menu_button","summary":"Get [class@ClapperGtk.ExtraMenuButton] that resides within @controls.","deprecated":null},{"type":"method","name":"get_fade_delay","type_name":"Video","ident":"clapper_gtk_video_get_fade_delay","summary":"Get time in milliseconds after which fading overlays should fade.","deprecated":null},{"type":"method","name":"get_fullscreenable","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_get_fullscreenable","summary":"Get whether [class@ClapperGtk.ToggleFullscreenButton] button in the @controls is set to be visible.","deprecated":null},{"type":"method","name":"get_height_target","type_name":"Container","ident":"clapper_gtk_container_get_height_target","summary":"Get a @container height target.","deprecated":null},{"type":"method","name":"get_inhibited","type_name":"Video","ident":"clapper_gtk_video_get_inhibited","summary":"Get whether session is currently inhibited by [property@ClapperGtk.Video:auto-inhibit].","deprecated":null},{"type":"method","name":"get_leading","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_get_leading","summary":"Get a whenever @lead_container has leadership set.","deprecated":null},{"type":"method","name":"get_player","type_name":"Video","ident":"clapper_gtk_video_get_player","summary":"Get #ClapperPlayer used by this #ClapperGtkVideo instance.","deprecated":null},{"type":"method","name":"get_queue","type_name":"QueueSelection","ident":"clapper_gtk_queue_selection_get_queue","summary":"Get #ClapperQueue managed by this selection model.","deprecated":null},{"type":"method","name":"get_reveal_labels","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_get_reveal_labels","summary":"Get whether the position and duration labels are going to be revealed.","deprecated":null},{"type":"method","name":"get_seek_method","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_get_seek_method","summary":"Get [enum@Clapper.PlayerSeekMethod] used when seeking with seek bar.","deprecated":null},{"type":"method","name":"get_seek_method","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_get_seek_method","summary":"Get [enum@Clapper.PlayerSeekMethod] used when seeking with progress bar.","deprecated":null},{"type":"method","name":"get_speed_visible","type_name":"ExtraMenuButton","ident":"clapper_gtk_extra_menu_button_get_speed_visible","summary":"Get whether speed control inside popover is visible.","deprecated":null},{"type":"method","name":"get_touch_fade_delay","type_name":"Video","ident":"clapper_gtk_video_get_touch_fade_delay","summary":"Get time in milliseconds after which fading overlays should fade when revealed using touch device.","deprecated":null},{"type":"method","name":"get_volume_visible","type_name":"ExtraMenuButton","ident":"clapper_gtk_extra_menu_button_get_volume_visible","summary":"Get whether volume control inside popover is visible.","deprecated":null},{"type":"method","name":"get_width_target","type_name":"Container","ident":"clapper_gtk_container_get_width_target","summary":"Get a @container width target.","deprecated":null},{"type":"method","name":"pin_message","type_name":"Billboard","ident":"clapper_gtk_billboard_pin_message","summary":"No description available.","deprecated":null},{"type":"method","name":"post_message","type_name":"Billboard","ident":"clapper_gtk_billboard_post_message","summary":"No description available.","deprecated":null},{"type":"method","name":"set_adaptive_height","type_name":"Container","ident":"clapper_gtk_container_set_adaptive_height","summary":"Set an adaptive height threshold. When widget is resized to value or lower, an [signal@ClapperGtk.Container::adapt] signal will be emitted ...","deprecated":null},{"type":"method","name":"set_adaptive_width","type_name":"Container","ident":"clapper_gtk_container_set_adaptive_width","summary":"Set an adaptive width threshold. When widget is resized to value or lower, an [signal@ClapperGtk.Container::adapt] signal will be emitted ...","deprecated":null},{"type":"method","name":"set_auto_inhibit","type_name":"Video","ident":"clapper_gtk_video_set_auto_inhibit","summary":"Set whether video should try to automatically inhibit session from idling (and possibly screen going black) when video is playing.","deprecated":null},{"type":"method","name":"set_blocked_actions","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_set_blocked_actions","summary":"Set @actions that #ClapperGtkVideo should skip when #GdkEvent which would normally trigger them happens inside @lead_container.","deprecated":null},{"type":"method","name":"set_can_open_subtitles","type_name":"ExtraMenuButton","ident":"clapper_gtk_extra_menu_button_set_can_open_subtitles","summary":"Set whether an option to open external subtitle stream should be allowed. Note that this [class@Gtk.Widget] can only ...","deprecated":null},{"type":"method","name":"set_child","type_name":"Container","ident":"clapper_gtk_container_set_child","summary":"Set a child #GtkWidget of @container.","deprecated":null},{"type":"method","name":"set_fade_delay","type_name":"Video","ident":"clapper_gtk_video_set_fade_delay","summary":"Set time in milliseconds after which fading overlays should fade.","deprecated":null},{"type":"method","name":"set_fullscreenable","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_set_fullscreenable","summary":"Set whether [class@ClapperGtk.ToggleFullscreenButton] button in the @controls should be visible. You might want to consider setting this to ...","deprecated":null},{"type":"method","name":"set_height_target","type_name":"Container","ident":"clapper_gtk_container_set_height_target","summary":"Same as clapper_gtk_container_set_width_target() but for widget height.","deprecated":null},{"type":"method","name":"set_leading","type_name":"LeadContainer","ident":"clapper_gtk_lead_container_set_leading","summary":"Set if @lead_container leadership should be enabled. When enabled, interactions with @lead_container will not trigger their default behavior, ...","deprecated":null},{"type":"method","name":"set_queue","type_name":"QueueSelection","ident":"clapper_gtk_queue_selection_set_queue","summary":"Set #ClapperQueue to be managed by this selection model.","deprecated":null},{"type":"method","name":"set_reveal_labels","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_set_reveal_labels","summary":"Set whether the position and duration labels should be revealed.","deprecated":null},{"type":"method","name":"set_seek_method","type_name":"SeekBar","ident":"clapper_gtk_seek_bar_set_seek_method","summary":"Set [enum@Clapper.PlayerSeekMethod] to use when seeking with seek bar.","deprecated":null},{"type":"method","name":"set_seek_method","type_name":"SimpleControls","ident":"clapper_gtk_simple_controls_set_seek_method","summary":"Set [enum@Clapper.PlayerSeekMethod] to use when seeking with progress bar.","deprecated":null},{"type":"method","name":"set_speed_visible","type_name":"ExtraMenuButton","ident":"clapper_gtk_extra_menu_button_set_speed_visible","summary":"Set whether speed control inside popover should be visible.","deprecated":null},{"type":"method","name":"set_touch_fade_delay","type_name":"Video","ident":"clapper_gtk_video_set_touch_fade_delay","summary":"Set time in milliseconds after which fading overlays should fade when using touchscreen. It is often useful to ...","deprecated":null},{"type":"method","name":"set_volume_visible","type_name":"ExtraMenuButton","ident":"clapper_gtk_extra_menu_button_set_volume_visible","summary":"Set whether volume control inside popover should be visible.","deprecated":null},{"type":"method","name":"set_width_target","type_name":"Container","ident":"clapper_gtk_container_set_width_target","summary":"Set a width that @container should target. When set container will not stretch beyond set @width while still expanding ...","deprecated":null},{"type":"method","name":"unpin_pinned_message","type_name":"Billboard","ident":"clapper_gtk_billboard_unpin_pinned_message","summary":"No description available.","deprecated":null},{"type":"property","name":"adaptive-height","type_name":"Container","summary":"Adaptive height threshold that triggers [signal@ClapperGtk.Container::adapt] signal.","deprecated":null},{"type":"property","name":"adaptive-width","type_name":"Container","summary":"Adaptive width threshold that triggers [signal@ClapperGtk.Container::adapt] signal.","deprecated":null},{"type":"property","name":"auto-inhibit","type_name":"Video","summary":"Try to automatically inhibit session when video is playing.","deprecated":null},{"type":"property","name":"blocked-actions","type_name":"LeadContainer","summary":"Mask of actions that container blocks from being triggered on video.","deprecated":null},{"type":"property","name":"can-open-subtitles","type_name":"ExtraMenuButton","summary":"Visibility of open subtitles option inside popover.","deprecated":null},{"type":"property","name":"extra-menu-button","type_name":"SimpleControls","summary":"Access to extra menu button within controls.","deprecated":null},{"type":"property","name":"fade-delay","type_name":"Video","summary":"A delay in milliseconds before trying to fade all fading overlays.","deprecated":null},{"type":"property","name":"fullscreenable","type_name":"SimpleControls","summary":"Whether toggle fullscreen button should be visible.","deprecated":null},{"type":"property","name":"height-target","type_name":"Container","summary":"Height that container should target.","deprecated":null},{"type":"property","name":"inhibited","type_name":"Video","summary":"Get whether session is currently inhibited by the video.","deprecated":null},{"type":"property","name":"leading","type_name":"LeadContainer","summary":"Width that container should target.","deprecated":null},{"type":"property","name":"player","type_name":"Video","summary":"A #ClapperPlayer used by video.","deprecated":null},{"type":"property","name":"queue","type_name":"QueueSelection","summary":"The queue being managed.","deprecated":null},{"type":"property","name":"reveal-labels","type_name":"SeekBar","summary":"Reveal state of the position and duration labels.","deprecated":null},{"type":"property","name":"seek-method","type_name":"SeekBar","summary":"Method used for seeking.","deprecated":null},{"type":"property","name":"seek-method","type_name":"SimpleControls","summary":"Method used for seeking.","deprecated":null},{"type":"property","name":"speed-visible","type_name":"ExtraMenuButton","summary":"Visibility of speed control inside popover.","deprecated":null},{"type":"property","name":"touch-fade-delay","type_name":"Video","summary":"A delay in milliseconds before trying to fade all fading overlays after revealed using touchscreen.","deprecated":null},{"type":"property","name":"volume-visible","type_name":"ExtraMenuButton","summary":"Visibility of volume control inside popover.","deprecated":null},{"type":"property","name":"width-target","type_name":"Container","summary":"Width that container should target.","deprecated":null},{"type":"signal","name":"adapt","type_name":"Container","summary":"A helper signal for implementing mobile/narrow adaptive behavior on descendants.","deprecated":null},{"type":"signal","name":"item-query","type_name":"QueueSelection","summary":"Signals when the #GtkSelectionModel is doing item query. Can be used to know that a widget is created ...","deprecated":null},{"type":"signal","name":"item-selected","type_name":"QueueSelection","summary":"Signals when user selected item within the #GtkSelectionModel. Note that this signal is emitted only when item gets selected ...","deprecated":null},{"type":"signal","name":"open-subtitles","type_name":"ExtraMenuButton","summary":"A signal that user wants to open subtitles file. Implementation should add a way for user to select ...","deprecated":null},{"type":"signal","name":"toggle-fullscreen","type_name":"Video","summary":"A signal that user requested a change in fullscreen state of the video. Note that when going fullscreen ...","deprecated":null},{"type":"vfunc","name":"can_skip","type_name":"SkipItemButton","summary":"No description available.","deprecated":null},{"type":"vfunc","name":"skip_item","type_name":"SkipItemButton","summary":"No description available.","deprecated":null}],"terms":{}}
\ No newline at end of file
diff --git a/doc/clapper-gtk/method.ExtraMenuButton.get_can_open_subtitles.html b/doc/clapper-gtk/method.ExtraMenuButton.get_can_open_subtitles.html
new file mode 100644
index 00000000..0330e24c
--- /dev/null
+++ b/doc/clapper-gtk/method.ExtraMenuButton.get_can_open_subtitles.html
@@ -0,0 +1,219 @@
+
+
+
+
+
+ ClapperGtk.ExtraMenuButton.get_can_open_subtitles
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Set whether an option to open external subtitle stream should be allowed.
+
Note that this GtkWidget can only add subtitles to currently playing
+ClapperMediaItem. When no media is selected, option to open subtitles
+will not be shown regardless how this option is set.
Implementation should add a way for user to select subtitles to open
+such as by e.g. using GtkFileDialog and then add them to the
+item using clapper_media_item_set_suburi() method.
+
This signal will pass the ClapperMediaItem that was current when
+user clicked the open button and subtitles should be added to this item.
+This avoids situations where another item starts playing before user selects
+subtitles file to be opened. When using asynchronous operations to open file,
+implementation should g_object_ref() the item to ensure that it
+stays valid until finish.
The parent of the object. Please note, that when changing the ‘parent’
+property, we don’t emit GObject::notify and GstObject::deep-notify
+signals due to locking issues. In some cases one can use
+GstBin::element-added or GstBin::element-removed signals on the parent to
+achieve a similar effect.
The deep notify signal is used to be notified of property changes. It is
+typically attached to the toplevel bin to receive notifications from all
+the elements contained in that bin.
+
+
\ No newline at end of file
diff --git a/doc/clapper/class.Discoverer.html b/doc/clapper/class.Discoverer.html
index 5e98682e..3ba23979 100644
--- a/doc/clapper/class.Discoverer.html
+++ b/doc/clapper/class.Discoverer.html
@@ -180,7 +180,7 @@ this includes title, duration, chapters, etc.
by the player itself. ClapperDiscoverer is useful in situations where
one wants to present to the user an updated media item before its
playback, such as an UI that displays playback queue.
-
Depending on your applicatation, you can select an optimal
+
@@ -261,9 +297,7 @@ player operates.
serializing all events/commands between player and the thread it was created upon
(usually main app thread). This makes it very easy to integrate with UI toolkits
that operate on a single thread like (but not limited to) GTK.
-
To listen for property changes, you can connect to property “notify” signal.
-As previously mentioned, all signals will be dispatched from the thread player
-was created on.
+
To listen for property changes, you can connect to property “notify” signal.
This function is called when internal GstStream gets updated.
+Meant for internal usage only. Used for subclasses to update
+their properties accordingly.
+
+
+
+
+
+
+
+
+
@@ -519,6 +600,8 @@ its value set through g_object_set_property(), g_object_set(), et al.
+
The parent of the object. Please note, that when changing the ‘parent’
+property, we don’t emit GObject::notify and GstObject::deep-notify
+signals due to locking issues. In some cases one can use
+GstBin::element-added or GstBin::element-removed signals on the parent to
+achieve a similar effect.
The deep notify signal is used to be notified of property changes. It is
+typically attached to the toplevel bin to receive notifications from all
+the elements contained in that bin.
The parent of the object. Please note, that when changing the ‘parent’
+property, we don’t emit GObject::notify and GstObject::deep-notify
+signals due to locking issues. In some cases one can use
+GstBin::element-added or GstBin::element-removed signals on the parent to
+achieve a similar effect.
The deep notify signal is used to be notified of property changes. It is
+typically attached to the toplevel bin to receive notifications from all
+the elements contained in that bin.
Use one of the URI protocols supported by plugins in GStreamer
installation. For local files you can use either “file” protocol
-or clapper_media_item_new_from_file() method.
-
This method can only fail when no URI is provided. It is considered
-a programmer error trying to create new media item from invalid URI.
-If URI is valid, but unsupported by user installed plugins, ClapperPlayer
-will emit a ClapperPlayer::missing-plugin signal upon playback.
It is considered a programmer error trying to create new media item from
+invalid URI. If URI is valid, but unsupported by installed plugins on user
+system, ClapperPlayer will emit a ClapperPlayer::missing-plugin
+signal upon playback.
@@ -208,8 +206,7 @@ will emit a ClapperPlayer::missing-plugin signal upon playback
diff --git a/doc/clapper/index.json b/doc/clapper/index.json
index 63a2d56b..f8c0ec16 100644
--- a/doc/clapper/index.json
+++ b/doc/clapper/index.json
@@ -1 +1 @@
-{"meta":{"ns":"Clapper","version":"0.0","generator":"gi-docgen","generator-version":"2023.3"},"symbols":[{"type":"class","name":"Discoverer","ctype":"ClapperDiscoverer","summary":"An optional Discoverer feature to be added to the player. #ClapperDiscoverer is a feature that wraps around #GstDiscoverer ...","deprecated":null},{"type":"class","name":"Feature","ctype":"ClapperFeature","summary":"A base class for creating new features for the player. Feature objects are meant for adding additional functionalities ...","deprecated":null},{"type":"class","name":"MediaItem","ctype":"ClapperMediaItem","summary":"Represents a media item. A newly created media item must be added to player [class@Clapper.Queue] first in order ...","deprecated":null},{"type":"class","name":"Mpris","ctype":"ClapperMpris","summary":"An optional `MPRIS` feature to add to the player. Not every OS supports `MPRIS`. Use [const@Clapper.HAVE_MPRIS] macro to ...","deprecated":null},{"type":"class","name":"Player","ctype":"ClapperPlayer","summary":"The media player object used for playback. #ClapperPlayer was written in an easy to use way, so no ...","deprecated":null},{"type":"class","name":"Queue","ctype":"ClapperQueue","summary":"A queue of media to be played.","deprecated":null},{"type":"class","name":"Server","ctype":"ClapperServer","summary":"An optional Server feature to add to the player. #ClapperServer is a feature that hosts a local server ...","deprecated":null},{"type":"class","name":"Stream","ctype":"ClapperStream","summary":"Represents a stream within media.","deprecated":null},{"type":"class","name":"StreamList","ctype":"ClapperStreamList","summary":"A list of media streams.","deprecated":null},{"type":"class","name":"ThreadedObject","ctype":"ClapperThreadedObject","summary":"A base class for creating objects that work within a separate thread.","deprecated":null},{"type":"constant","name":"HAVE_DISCOVERER","ident":"CLAPPER_HAVE_DISCOVERER","summary":"Check if Clapper was compiled with Discoverer feature.","deprecated":null},{"type":"constant","name":"HAVE_MPRIS","ident":"CLAPPER_HAVE_MPRIS","summary":"Check if Clapper was compiled with MPRIS feature.","deprecated":null},{"type":"constant","name":"HAVE_SERVER","ident":"CLAPPER_HAVE_SERVER","summary":"Check if Clapper was compiled with Server feature.","deprecated":null},{"type":"constant","name":"MAJOR_VERSION","ident":"CLAPPER_MAJOR_VERSION","summary":"Clapper major version component","deprecated":null},{"type":"constant","name":"MICRO_VERSION","ident":"CLAPPER_MICRO_VERSION","summary":"Clapper micro version component","deprecated":null},{"type":"constant","name":"MINOR_VERSION","ident":"CLAPPER_MINOR_VERSION","summary":"Clapper minor version component","deprecated":null},{"type":"constant","name":"QUEUE_INVALID_POSITION","ident":"CLAPPER_QUEUE_INVALID_POSITION","summary":"The value used to refer to an invalid position in a #ClapperQueue","deprecated":null},{"type":"constant","name":"STREAM_LIST_INVALID_POSITION","ident":"CLAPPER_STREAM_LIST_INVALID_POSITION","summary":"The value used to refer to an invalid position in a #ClapperStreamList","deprecated":null},{"type":"constant","name":"TIME_FORMAT","ident":"CLAPPER_TIME_FORMAT","summary":"A string that can be used in printf-like format to display e.g. position or duration in `hh:mm:ss` format. Meant ...","deprecated":null},{"type":"constant","name":"TIME_MS_FORMAT","ident":"CLAPPER_TIME_MS_FORMAT","summary":"Same as [const@Clapper.TIME_FORMAT], but also displays milliseconds. Meant to be used together with [func@Clapper.TIME_MS_ARGS]. Example: ```c gchar ...","deprecated":null},{"type":"constant","name":"VERSION_S","ident":"CLAPPER_VERSION_S","summary":"Clapper version, encoded as a string","deprecated":null},{"type":"ctor","name":"new","type_name":"Discoverer","ident":"clapper_discoverer_new","summary":"Creates a new #ClapperDiscoverer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"MediaItem","ident":"clapper_media_item_new","summary":"Creates new #ClapperMediaItem from URI. Use one of the URI protocols supported by plugins in #GStreamer installation. For ...","deprecated":null},{"type":"ctor","name":"new","type_name":"Mpris","ident":"clapper_mpris_new","summary":"Creates a new #ClapperMpris instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Player","ident":"clapper_player_new","summary":"Creates a new #ClapperPlayer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Server","ident":"clapper_server_new","summary":"Creates a new #ClapperServer instance.","deprecated":null},{"type":"ctor","name":"new_from_file","type_name":"MediaItem","ident":"clapper_media_item_new_from_file","summary":"Creates new #ClapperMediaItem from #GFile. Same as clapper_media_item_new(), but uses a #GFile for convenience in some situations instead ...","deprecated":null},{"type":"ctor","name":"new_take","type_name":"MediaItem","ident":"clapper_media_item_new_take","summary":"Creates new #ClapperMediaItem from URI. Same as clapper_media_item_new(), but takes ownership of passed URI.","deprecated":null},{"type":"enum","name":"DiscovererDiscoveryMode","ctype":"ClapperDiscovererDiscoveryMode","summary":"No description available.","deprecated":null},{"type":"enum","name":"PlayerSeekMethod","ctype":"ClapperPlayerSeekMethod","summary":"No description available.","deprecated":null},{"type":"enum","name":"PlayerState","ctype":"ClapperPlayerState","summary":"No description available.","deprecated":null},{"type":"enum","name":"QueueProgressionMode","ctype":"ClapperQueueProgressionMode","summary":"No description available.","deprecated":null},{"type":"function","name":"init","ident":"clapper_init","summary":"Initializes the Clapper library. Implementations must always call this before using Clapper API. Because Clapper uses GStreamer internally, ...","deprecated":null},{"type":"function","name":"init_check","ident":"clapper_init_check","summary":"This function does the same thing as [func@Clapper.init], but instead of terminating on failure it returns %FALSE with @error set.","deprecated":null},{"type":"function_macro","name":"CHECK_VERSION","ident":"CLAPPER_CHECK_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"DISCOVERER_CAST","ident":"CLAPPER_DISCOVERER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENCODE_VERSION","ident":"CLAPPER_ENCODE_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"FEATURE_CAST","ident":"CLAPPER_FEATURE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MEDIA_ITEM_CAST","ident":"CLAPPER_MEDIA_ITEM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MPRIS_CAST","ident":"CLAPPER_MPRIS_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"PLAYER_CAST","ident":"CLAPPER_PLAYER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"QUEUE_CAST","ident":"CLAPPER_QUEUE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SERVER_CAST","ident":"CLAPPER_SERVER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"STREAM_CAST","ident":"CLAPPER_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"STREAM_LIST_CAST","ident":"CLAPPER_STREAM_LIST_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"THREADED_OBJECT_CAST","ident":"CLAPPER_THREADED_OBJECT_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TIME_ARGS","ident":"CLAPPER_TIME_ARGS","summary":"Formats @t for the [const@Clapper.TIME_FORMAT] format string.","deprecated":null},{"type":"function_macro","name":"TIME_MS_ARGS","ident":"CLAPPER_TIME_MS_ARGS","summary":"Formats @t for the [const@Clapper.TIME_MS_FORMAT] format string.","deprecated":null},{"type":"method","name":"add_feature","type_name":"Player","ident":"clapper_player_add_feature","summary":"Add another #ClapperFeature to the player. If feature is already added, this function will do nothing, so it ...","deprecated":null},{"type":"method","name":"add_item","type_name":"Queue","ident":"clapper_queue_add_item","summary":"Add another #ClapperMediaItem to the end of queue. If item is already in queue, this function will do ...","deprecated":null},{"type":"method","name":"clear","type_name":"Queue","ident":"clapper_queue_clear","summary":"Removes all media items from the queue. If queue is empty, this function will do nothing, so it ...","deprecated":null},{"type":"method","name":"find_item","type_name":"Queue","ident":"clapper_queue_find_item","summary":"Get the index of #ClapperMediaItem within #ClapperQueue.","deprecated":null},{"type":"method","name":"get_audio_filter","type_name":"Player","ident":"clapper_player_get_audio_filter","summary":"Get #GstElement used as audio filter.","deprecated":null},{"type":"method","name":"get_audio_sink","type_name":"Player","ident":"clapper_player_get_audio_sink","summary":"Get #GstElement used as audio sink.","deprecated":null},{"type":"method","name":"get_audio_streams","type_name":"MediaItem","ident":"clapper_media_item_get_audio_streams","summary":"Get a list of audio streams within media item.","deprecated":null},{"type":"method","name":"get_caps","type_name":"Stream","ident":"clapper_stream_get_caps","summary":"Get the caps of @stream, if any.","deprecated":null},{"type":"method","name":"get_container_format","type_name":"MediaItem","ident":"clapper_media_item_get_container_format","summary":"Get media item container format.","deprecated":null},{"type":"method","name":"get_context","type_name":"ThreadedObject","ident":"clapper_threaded_object_get_context","summary":"Get the #GMainContext of the thread used by this object. Useful when you want to invoke object thread ...","deprecated":null},{"type":"method","name":"get_current_audio_decoder","type_name":"Player","ident":"clapper_player_get_current_audio_decoder","summary":"Get #GstElement currently used as audio decoder.","deprecated":null},{"type":"method","name":"get_current_index","type_name":"Queue","ident":"clapper_queue_get_current_index","summary":"Get index of the currently selected #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_current_index","type_name":"StreamList","ident":"clapper_stream_list_get_current_index","summary":"Get index of the currently selected #ClapperStream.","deprecated":null},{"type":"method","name":"get_current_item","type_name":"Queue","ident":"clapper_queue_get_current_item","summary":"Get the currently selected #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_current_port","type_name":"Server","ident":"clapper_server_get_current_port","summary":"Get port on which server is currently listening on.","deprecated":null},{"type":"method","name":"get_current_stream","type_name":"StreamList","ident":"clapper_stream_list_get_current_stream","summary":"Get the currently selected #ClapperStream.","deprecated":null},{"type":"method","name":"get_current_video_decoder","type_name":"Player","ident":"clapper_player_get_current_video_decoder","summary":"Get #GstElement currently used as video decoder.","deprecated":null},{"type":"method","name":"get_discovery_mode","type_name":"Discoverer","ident":"clapper_discoverer_get_discovery_mode","summary":"Get the [enum@Clapper.DiscovererDiscoveryMode] of @discoverer.","deprecated":null},{"type":"method","name":"get_duration","type_name":"MediaItem","ident":"clapper_media_item_get_duration","summary":"Get media item duration as decimal number in seconds.","deprecated":null},{"type":"method","name":"get_enabled","type_name":"Server","ident":"clapper_server_get_enabled","summary":"Get whether #ClapperServer is set to be running.","deprecated":null},{"type":"method","name":"get_fallback_art_url","type_name":"Mpris","ident":"clapper_mpris_get_fallback_art_url","summary":"Get fallback art URL earlier set by user.","deprecated":null},{"type":"method","name":"get_gapless","type_name":"Queue","ident":"clapper_queue_get_gapless","summary":"Get if #ClapperQueue is set to use gapless progression.","deprecated":null},{"type":"method","name":"get_id","type_name":"MediaItem","ident":"clapper_media_item_get_id","summary":"Get the unique ID of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_instant","type_name":"Queue","ident":"clapper_queue_get_instant","summary":"Get if #ClapperQueue is set to use instant media item changes.","deprecated":null},{"type":"method","name":"get_item","type_name":"Queue","ident":"clapper_queue_get_item","summary":"Get the #ClapperMediaItem at index. This behaves the same as g_list_model_get_item(), and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_mute","type_name":"Player","ident":"clapper_player_get_mute","summary":"Get the mute state of the player.","deprecated":null},{"type":"method","name":"get_n_items","type_name":"Queue","ident":"clapper_queue_get_n_items","summary":"Get the number of items in #ClapperQueue. This behaves the same as g_list_model_get_n_items(), and is here for code ...","deprecated":null},{"type":"method","name":"get_n_streams","type_name":"StreamList","ident":"clapper_stream_list_get_n_streams","summary":"Get the number of streams in #ClapperStreamList. This behaves the same as g_list_model_get_n_items(), and is here for code ...","deprecated":null},{"type":"method","name":"get_port","type_name":"Server","ident":"clapper_server_get_port","summary":"Get requested server listening port.","deprecated":null},{"type":"method","name":"get_position","type_name":"Player","ident":"clapper_player_get_position","summary":"Get the current player playback position. The returned value is in seconds as a decimal number.","deprecated":null},{"type":"method","name":"get_progression_mode","type_name":"Queue","ident":"clapper_queue_get_progression_mode","summary":"Get the #ClapperQueueProgressionMode of the #ClapperQueue.","deprecated":null},{"type":"method","name":"get_queue","type_name":"Player","ident":"clapper_player_get_queue","summary":"Get the #ClapperQueue of the player. The queue belongs to the player and can be accessed for as ...","deprecated":null},{"type":"method","name":"get_queue_controllable","type_name":"Mpris","ident":"clapper_mpris_get_queue_controllable","summary":"Get whether remote `MPRIS` clients can control [class@Clapper.Queue].","deprecated":null},{"type":"method","name":"get_queue_controllable","type_name":"Server","ident":"clapper_server_get_queue_controllable","summary":"Get whether remote @server clients can control [class@Clapper.Queue].","deprecated":null},{"type":"method","name":"get_running","type_name":"Server","ident":"clapper_server_get_running","summary":"Get whether #ClapperServer is currently running.","deprecated":null},{"type":"method","name":"get_speed","type_name":"Player","ident":"clapper_player_get_speed","summary":"Get the speed of the player used for playback.","deprecated":null},{"type":"method","name":"get_state","type_name":"Player","ident":"clapper_player_get_state","summary":"Get the current #ClapperPlayerState.","deprecated":null},{"type":"method","name":"get_stream","type_name":"StreamList","ident":"clapper_stream_list_get_stream","summary":"Get the #ClapperStream at index. This behaves the same as g_list_model_get_item(), and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_subtitle_streams","type_name":"MediaItem","ident":"clapper_media_item_get_subtitle_streams","summary":"Get a list of subtitle streams within media item.","deprecated":null},{"type":"method","name":"get_title","type_name":"MediaItem","ident":"clapper_media_item_get_title","summary":"Get media item title for displaying in app UI. This function always returns a media title of some sort ...","deprecated":null},{"type":"method","name":"get_uri","type_name":"MediaItem","ident":"clapper_media_item_get_uri","summary":"Get the URI of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_video_filter","type_name":"Player","ident":"clapper_player_get_video_filter","summary":"Get #GstElement used as video filter.","deprecated":null},{"type":"method","name":"get_video_sink","type_name":"Player","ident":"clapper_player_get_video_sink","summary":"Get #GstElement used as video sink.","deprecated":null},{"type":"method","name":"get_video_streams","type_name":"MediaItem","ident":"clapper_media_item_get_video_streams","summary":"Get a list of video streams within media item.","deprecated":null},{"type":"method","name":"get_volume","type_name":"Player","ident":"clapper_player_get_volume","summary":"Get the volume of the player.","deprecated":null},{"type":"method","name":"insert_item","type_name":"Queue","ident":"clapper_queue_insert_item","summary":"Insert another #ClapperMediaItem at @index position to the queue. If item is already in queue, this function will ...","deprecated":null},{"type":"method","name":"item_is_current","type_name":"Queue","ident":"clapper_queue_item_is_current","summary":"Checks if given #ClapperMediaItem is currently selected.","deprecated":null},{"type":"method","name":"pause","type_name":"Player","ident":"clapper_player_pause","summary":"Pause the playback of current media item. This function will queue a request for the underlaying #GStreamer pipeline ...","deprecated":null},{"type":"method","name":"play","type_name":"Player","ident":"clapper_player_play","summary":"Either start or resume the playback of current media item. This function will queue a request for the ...","deprecated":null},{"type":"method","name":"remove_index","type_name":"Queue","ident":"clapper_queue_remove_index","summary":"Removes #ClapperMediaItem at @index from the queue.","deprecated":null},{"type":"method","name":"remove_item","type_name":"Queue","ident":"clapper_queue_remove_item","summary":"Removes #ClapperMediaItem from the queue. If item either was never in the queue or was removed from it ...","deprecated":null},{"type":"method","name":"reposition_item","type_name":"Queue","ident":"clapper_queue_reposition_item","summary":"Change position of one #ClapperMediaItem within the queue. Note that the @index is the new position you expect ...","deprecated":null},{"type":"method","name":"seek","type_name":"Player","ident":"clapper_player_seek","summary":"Request the player to perform a seek operation. This function will use #CLAPPER_PLAYER_SEEK_METHOD_NORMAL as a default seeking method. ...","deprecated":null},{"type":"method","name":"seek_custom","type_name":"Player","ident":"clapper_player_seek_custom","summary":"Request the player to perform a seek operation. Same as clapper_player_seek(), but also allows to specify #ClapperPlayerSeekMethod to ...","deprecated":null},{"type":"method","name":"select_index","type_name":"Queue","ident":"clapper_queue_select_index","summary":"Selects #ClapperMediaItem at @index from @queue as current one and signals #ClapperPlayer to play it.","deprecated":null},{"type":"method","name":"select_index","type_name":"StreamList","ident":"clapper_stream_list_select_index","summary":"Selects #ClapperStream at @index from @list as current one.","deprecated":null},{"type":"method","name":"select_item","type_name":"Queue","ident":"clapper_queue_select_item","summary":"Selects #ClapperMediaItem from @queue as current one and signals #ClapperPlayer to play it.","deprecated":null},{"type":"method","name":"select_next_item","type_name":"Queue","ident":"clapper_queue_select_next_item","summary":"Selects next #ClapperMediaItem from @queue for playback. Note that this will try to select next item in the ...","deprecated":null},{"type":"method","name":"select_previous_item","type_name":"Queue","ident":"clapper_queue_select_previous_item","summary":"Selects previous #ClapperMediaItem from @queue for playback. Note that this will try to select previous item in the ...","deprecated":null},{"type":"method","name":"select_stream","type_name":"StreamList","ident":"clapper_stream_list_select_stream","summary":"Selects #ClapperStream from @list to be activated.","deprecated":null},{"type":"method","name":"set_audio_filter","type_name":"Player","ident":"clapper_player_set_audio_filter","summary":"Set #GstElement to be used as audio filter.","deprecated":null},{"type":"method","name":"set_audio_sink","type_name":"Player","ident":"clapper_player_set_audio_sink","summary":"Set #GstElement to be used as audio sink.","deprecated":null},{"type":"method","name":"set_discovery_mode","type_name":"Discoverer","ident":"clapper_discoverer_set_discovery_mode","summary":"Set the [enum@Clapper.DiscovererDiscoveryMode] of @discoverer.","deprecated":null},{"type":"method","name":"set_enabled","type_name":"Server","ident":"clapper_server_set_enabled","summary":"Set whether #ClapperServer should be running. Note that server feature will run only after being added to the ...","deprecated":null},{"type":"method","name":"set_fallback_art_url","type_name":"Mpris","ident":"clapper_mpris_set_fallback_art_url","summary":"Set fallback artwork to show when media does not provide one.","deprecated":null},{"type":"method","name":"set_gapless","type_name":"Queue","ident":"clapper_queue_set_gapless","summary":"Set #ClapperQueue progression to be gapless. Gapless playback will try to re-use as much as possible of underlying ...","deprecated":null},{"type":"method","name":"set_instant","type_name":"Queue","ident":"clapper_queue_set_instant","summary":"Set #ClapperQueue media item changes to be instant. Instant will try to re-use as much as possible of ...","deprecated":null},{"type":"method","name":"set_mute","type_name":"Player","ident":"clapper_player_set_mute","summary":"Set the mute state of the player.","deprecated":null},{"type":"method","name":"set_port","type_name":"Server","ident":"clapper_server_set_port","summary":"Set server listening port.","deprecated":null},{"type":"method","name":"set_progression_mode","type_name":"Queue","ident":"clapper_queue_set_progression_mode","summary":"Set the #ClapperQueueProgressionMode of the #ClapperQueue. Changing the mode set will alter next item selection at the end ...","deprecated":null},{"type":"method","name":"set_queue_controllable","type_name":"Mpris","ident":"clapper_mpris_set_queue_controllable","summary":"Set whether remote MPRIS clients can control #ClapperQueue. This includes ability to open new URIs, adding/removing items from ...","deprecated":null},{"type":"method","name":"set_queue_controllable","type_name":"Server","ident":"clapper_server_set_queue_controllable","summary":"Set whether remote @server clients can control [class@Clapper.Queue]. This includes ability to add/remove items from the queue and ...","deprecated":null},{"type":"method","name":"set_speed","type_name":"Player","ident":"clapper_player_set_speed","summary":"Set the speed multiplier of the player.","deprecated":null},{"type":"method","name":"set_video_filter","type_name":"Player","ident":"clapper_player_set_video_filter","summary":"Set #GstElement to be used as video filter.","deprecated":null},{"type":"method","name":"set_video_sink","type_name":"Player","ident":"clapper_player_set_video_sink","summary":"Set #GstElement to be used as video sink.","deprecated":null},{"type":"method","name":"set_volume","type_name":"Player","ident":"clapper_player_set_volume","summary":"Set the volume of the player. The value should be within 0 - 2.0 range, where 1.0 is ...","deprecated":null},{"type":"method","name":"steal_index","type_name":"Queue","ident":"clapper_queue_steal_index","summary":"Removes #ClapperMediaItem at @index from the queue.","deprecated":null},{"type":"method","name":"stop","type_name":"Player","ident":"clapper_player_stop","summary":"Stop the playback of current media item. This function will queue a request for the underlaying #GStreamer pipeline ...","deprecated":null},{"type":"property","name":"audio-filter","type_name":"Player","summary":"Optional audio filter to use (none by default).","deprecated":null},{"type":"property","name":"audio-sink","type_name":"Player","summary":"Audio sink to use (autoaudiosink by default).","deprecated":null},{"type":"property","name":"audio-streams","type_name":"MediaItem","summary":"List of available audio streams.","deprecated":null},{"type":"property","name":"caps","type_name":"Stream","summary":"The #GstCaps of stream.","deprecated":null},{"type":"property","name":"container-format","type_name":"MediaItem","summary":"Media container format.","deprecated":null},{"type":"property","name":"current-audio-decoder","type_name":"Player","summary":"Currently used audio decoder.","deprecated":null},{"type":"property","name":"current-index","type_name":"Queue","summary":"Index of currently selected media item for playback.","deprecated":null},{"type":"property","name":"current-index","type_name":"StreamList","summary":"Index of currently selected stream.","deprecated":null},{"type":"property","name":"current-item","type_name":"Queue","summary":"Currently selected media item for playback.","deprecated":null},{"type":"property","name":"current-port","type_name":"Server","summary":"Port on which server is currently listening on or 0 if not listening.","deprecated":null},{"type":"property","name":"current-stream","type_name":"StreamList","summary":"Currently selected stream.","deprecated":null},{"type":"property","name":"current-video-decoder","type_name":"Player","summary":"Currently used video decoder.","deprecated":null},{"type":"property","name":"desktop-entry","type_name":"Mpris","summary":"The basename of an installed .desktop file with the \".desktop\" extension stripped.","deprecated":null},{"type":"property","name":"discovery-mode","type_name":"Discoverer","summary":"Discoverer discovery mode.","deprecated":null},{"type":"property","name":"duration","type_name":"MediaItem","summary":"Media duration as a decimal number in seconds.","deprecated":null},{"type":"property","name":"enabled","type_name":"Server","summary":"Whether server is enabled.","deprecated":null},{"type":"property","name":"fallback-art-url","type_name":"Mpris","summary":"Fallback artwork to show when media does not provide one.","deprecated":null},{"type":"property","name":"gapless","type_name":"Queue","summary":"Use gapless progression.","deprecated":null},{"type":"property","name":"id","type_name":"MediaItem","summary":"Media Item ID.","deprecated":null},{"type":"property","name":"identity","type_name":"Mpris","summary":"A friendly name to identify the media player. Example: \"My Player\"","deprecated":null},{"type":"property","name":"instant","type_name":"Queue","summary":"Use instant media item changes.","deprecated":null},{"type":"property","name":"mute","type_name":"Player","summary":"Mute audio without changing volume.","deprecated":null},{"type":"property","name":"n-items","type_name":"Queue","summary":"Number of media items in the queue.","deprecated":null},{"type":"property","name":"own-name","type_name":"Mpris","summary":"DBus name to own on connection. Must be written as a reverse DNS format starting with \"org.mpris.MediaPlayer2.\" prefix. ...","deprecated":null},{"type":"property","name":"port","type_name":"Server","summary":"Port to listen on or 0 for using random unused port.","deprecated":null},{"type":"property","name":"position","type_name":"Player","summary":"Current playback position as a decimal number in seconds.","deprecated":null},{"type":"property","name":"progression-mode","type_name":"Queue","summary":"Queue progression mode.","deprecated":null},{"type":"property","name":"queue","type_name":"Player","summary":"Clapper playback queue.","deprecated":null},{"type":"property","name":"queue-controllable","type_name":"Mpris","summary":"Whether remote MPRIS clients can control #ClapperQueue.","deprecated":null},{"type":"property","name":"queue-controllable","type_name":"Server","summary":"Whether remote server clients can control #ClapperQueue.","deprecated":null},{"type":"property","name":"running","type_name":"Server","summary":"Whether server is currently running.","deprecated":null},{"type":"property","name":"speed","type_name":"Player","summary":"Current playback speed.","deprecated":null},{"type":"property","name":"state","type_name":"Player","summary":"Current playback state.","deprecated":null},{"type":"property","name":"subtitle-streams","type_name":"MediaItem","summary":"List of available subtitle streams.","deprecated":null},{"type":"property","name":"title","type_name":"MediaItem","summary":"Media title.","deprecated":null},{"type":"property","name":"uri","type_name":"MediaItem","summary":"Media URI.","deprecated":null},{"type":"property","name":"video-filter","type_name":"Player","summary":"Optional video filter to use (none by default).","deprecated":null},{"type":"property","name":"video-sink","type_name":"Player","summary":"Video sink to use (autovideosink by default).","deprecated":null},{"type":"property","name":"video-streams","type_name":"MediaItem","summary":"List of available video streams.","deprecated":null},{"type":"property","name":"volume","type_name":"Player","summary":"Current volume as a decimal number (1.0 = 100%). Note that #ClapperPlayer uses a CUBIC volume scale, meaning ...","deprecated":null},{"type":"signal","name":"error","type_name":"Player","summary":"These are normal error messages. Upon emitting this signal, playback will stop due to the error.","deprecated":null},{"type":"signal","name":"error","type_name":"Server","summary":"Error signal when server could not start. This will be emitted from application main thread.","deprecated":null},{"type":"signal","name":"missing-plugin","type_name":"Player","summary":"A #GStreamer plugin or one of its features needed for playback is missing. The @description and @installer_detail can ...","deprecated":null},{"type":"signal","name":"warning","type_name":"Player","summary":"These are some usually more minor error messages that should be treated like warnings. Should not generally prevent/stop playback.","deprecated":null},{"type":"vfunc","name":"item_updated","type_name":"Feature","summary":"An item in queue got updated. This might be (or not) currently played item. Implementations can get parent player ...","deprecated":null},{"type":"vfunc","name":"mute_changed","type_name":"Feature","summary":"Player mute state was changed.","deprecated":null},{"type":"vfunc","name":"played_item_changed","type_name":"Feature","summary":"New media item started playing. All following events (such as position changes) will be related to this @item from ...","deprecated":null},{"type":"vfunc","name":"position_changed","type_name":"Feature","summary":"Player position was changed.","deprecated":null},{"type":"vfunc","name":"prepare","type_name":"Feature","summary":"Prepare feature for operation (optional). This is different from init() as its called from features thread once feature ...","deprecated":null},{"type":"vfunc","name":"property_changed","type_name":"Feature","summary":"A property of @feature changed its value. Useful for reconfiguring @feature, since unlike \"notify\" signal this is always ...","deprecated":null},{"type":"vfunc","name":"queue_cleared","type_name":"Feature","summary":"All items were removed from queue. Note that in such event @queue_item_removed will NOT be called for each item ...","deprecated":null},{"type":"vfunc","name":"queue_item_added","type_name":"Feature","summary":"An item was added to the queue.","deprecated":null},{"type":"vfunc","name":"queue_item_removed","type_name":"Feature","summary":"An item was removed from queue.","deprecated":null},{"type":"vfunc","name":"queue_item_repositioned","type_name":"Feature","summary":"No description available.","deprecated":null},{"type":"vfunc","name":"queue_progression_changed","type_name":"Feature","summary":"Progression mode of the queue was changed.","deprecated":null},{"type":"vfunc","name":"speed_changed","type_name":"Feature","summary":"Player speed was changed.","deprecated":null},{"type":"vfunc","name":"state_changed","type_name":"Feature","summary":"Player state was changed.","deprecated":null},{"type":"vfunc","name":"thread_start","type_name":"ThreadedObject","summary":"Called right after thread started. Useful for initializing objects that work within this new thread.","deprecated":null},{"type":"vfunc","name":"thread_stop","type_name":"ThreadedObject","summary":"Called when thread is going to stop. Useful for cleanup of things created on thread start.","deprecated":null},{"type":"vfunc","name":"unprepare","type_name":"Feature","summary":"Revert the changes done in @prepare (optional).","deprecated":null},{"type":"vfunc","name":"volume_changed","type_name":"Feature","summary":"Player volume was changed.","deprecated":null}],"terms":{}}
\ No newline at end of file
+{"meta":{"ns":"Clapper","version":"0.0","generator":"gi-docgen","generator-version":"2023.3"},"symbols":[{"type":"class","name":"AudioStream","ctype":"ClapperAudioStream","summary":"Represents a audio stream within media.","deprecated":null},{"type":"class","name":"Discoverer","ctype":"ClapperDiscoverer","summary":"An optional Discoverer feature to be added to the player. #ClapperDiscoverer is a feature that wraps around #GstDiscoverer ...","deprecated":null},{"type":"class","name":"Feature","ctype":"ClapperFeature","summary":"A base class for creating new features for the player. Feature objects are meant for adding additional functionalities ...","deprecated":null},{"type":"class","name":"MediaItem","ctype":"ClapperMediaItem","summary":"Represents a media item. A newly created media item must be added to player [class@Clapper.Queue] first in order ...","deprecated":null},{"type":"class","name":"Mpris","ctype":"ClapperMpris","summary":"An optional `MPRIS` feature to add to the player. Not every OS supports `MPRIS`. Use [const@Clapper.HAVE_MPRIS] macro to ...","deprecated":null},{"type":"class","name":"Player","ctype":"ClapperPlayer","summary":"The media player object used for playback. #ClapperPlayer was written in an easy to use way, so no ...","deprecated":null},{"type":"class","name":"Queue","ctype":"ClapperQueue","summary":"A queue of media to be played.","deprecated":null},{"type":"class","name":"Server","ctype":"ClapperServer","summary":"An optional Server feature to add to the player. #ClapperServer is a feature that hosts a local server ...","deprecated":null},{"type":"class","name":"Stream","ctype":"ClapperStream","summary":"Represents a stream within media.","deprecated":null},{"type":"class","name":"StreamList","ctype":"ClapperStreamList","summary":"A list of media streams.","deprecated":null},{"type":"class","name":"SubtitleStream","ctype":"ClapperSubtitleStream","summary":"Represents a subtitle stream within media.","deprecated":null},{"type":"class","name":"ThreadedObject","ctype":"ClapperThreadedObject","summary":"A base class for creating objects that work within a separate thread.","deprecated":null},{"type":"class","name":"VideoStream","ctype":"ClapperVideoStream","summary":"Represents a video stream within media.","deprecated":null},{"type":"constant","name":"HAVE_DISCOVERER","ident":"CLAPPER_HAVE_DISCOVERER","summary":"Check if Clapper was compiled with Discoverer feature.","deprecated":null},{"type":"constant","name":"HAVE_MPRIS","ident":"CLAPPER_HAVE_MPRIS","summary":"Check if Clapper was compiled with MPRIS feature.","deprecated":null},{"type":"constant","name":"HAVE_SERVER","ident":"CLAPPER_HAVE_SERVER","summary":"Check if Clapper was compiled with Server feature.","deprecated":null},{"type":"constant","name":"MAJOR_VERSION","ident":"CLAPPER_MAJOR_VERSION","summary":"Clapper major version component","deprecated":null},{"type":"constant","name":"MICRO_VERSION","ident":"CLAPPER_MICRO_VERSION","summary":"Clapper micro version component","deprecated":null},{"type":"constant","name":"MINOR_VERSION","ident":"CLAPPER_MINOR_VERSION","summary":"Clapper minor version component","deprecated":null},{"type":"constant","name":"QUEUE_INVALID_POSITION","ident":"CLAPPER_QUEUE_INVALID_POSITION","summary":"The value used to refer to an invalid position in a #ClapperQueue","deprecated":null},{"type":"constant","name":"STREAM_LIST_INVALID_POSITION","ident":"CLAPPER_STREAM_LIST_INVALID_POSITION","summary":"The value used to refer to an invalid position in a #ClapperStreamList","deprecated":null},{"type":"constant","name":"TIME_FORMAT","ident":"CLAPPER_TIME_FORMAT","summary":"A string that can be used in printf-like format to display e.g. position or duration in `hh:mm:ss` format. Meant ...","deprecated":null},{"type":"constant","name":"TIME_MS_FORMAT","ident":"CLAPPER_TIME_MS_FORMAT","summary":"Same as [const@Clapper.TIME_FORMAT], but also displays milliseconds. Meant to be used together with [func@Clapper.TIME_MS_ARGS]. Example: ```c gchar ...","deprecated":null},{"type":"constant","name":"VERSION_S","ident":"CLAPPER_VERSION_S","summary":"Clapper version, encoded as a string","deprecated":null},{"type":"ctor","name":"new","type_name":"Discoverer","ident":"clapper_discoverer_new","summary":"Creates a new #ClapperDiscoverer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"MediaItem","ident":"clapper_media_item_new","summary":"Creates new #ClapperMediaItem from URI. Use one of the URI protocols supported by plugins in #GStreamer installation. For ...","deprecated":null},{"type":"ctor","name":"new","type_name":"Mpris","ident":"clapper_mpris_new","summary":"Creates a new #ClapperMpris instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Player","ident":"clapper_player_new","summary":"Creates a new #ClapperPlayer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Server","ident":"clapper_server_new","summary":"Creates a new #ClapperServer instance.","deprecated":null},{"type":"ctor","name":"new_from_file","type_name":"MediaItem","ident":"clapper_media_item_new_from_file","summary":"Creates new #ClapperMediaItem from #GFile. Same as [ctor@Clapper.MediaItem.new], but uses a [iface@Gio.File] for convenience in some situations instead ...","deprecated":null},{"type":"enum","name":"DiscovererDiscoveryMode","ctype":"ClapperDiscovererDiscoveryMode","summary":"No description available.","deprecated":null},{"type":"enum","name":"PlayerSeekMethod","ctype":"ClapperPlayerSeekMethod","summary":"No description available.","deprecated":null},{"type":"enum","name":"PlayerState","ctype":"ClapperPlayerState","summary":"No description available.","deprecated":null},{"type":"enum","name":"QueueProgressionMode","ctype":"ClapperQueueProgressionMode","summary":"No description available.","deprecated":null},{"type":"enum","name":"StreamType","ctype":"ClapperStreamType","summary":"No description available.","deprecated":null},{"type":"function","name":"init","ident":"clapper_init","summary":"Initializes the Clapper library. Implementations must always call this before using Clapper API. Because Clapper uses GStreamer internally, ...","deprecated":null},{"type":"function","name":"init_check","ident":"clapper_init_check","summary":"This function does the same thing as [func@Clapper.init], but instead of terminating on failure it returns %FALSE with @error set.","deprecated":null},{"type":"function_macro","name":"AUDIO_STREAM_CAST","ident":"CLAPPER_AUDIO_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"CHECK_VERSION","ident":"CLAPPER_CHECK_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"DISCOVERER_CAST","ident":"CLAPPER_DISCOVERER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENCODE_VERSION","ident":"CLAPPER_ENCODE_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"FEATURE_CAST","ident":"CLAPPER_FEATURE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MEDIA_ITEM_CAST","ident":"CLAPPER_MEDIA_ITEM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MPRIS_CAST","ident":"CLAPPER_MPRIS_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"PLAYER_CAST","ident":"CLAPPER_PLAYER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"QUEUE_CAST","ident":"CLAPPER_QUEUE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SERVER_CAST","ident":"CLAPPER_SERVER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"STREAM_CAST","ident":"CLAPPER_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"STREAM_LIST_CAST","ident":"CLAPPER_STREAM_LIST_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SUBTITLE_STREAM_CAST","ident":"CLAPPER_SUBTITLE_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"THREADED_OBJECT_CAST","ident":"CLAPPER_THREADED_OBJECT_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TIME_ARGS","ident":"CLAPPER_TIME_ARGS","summary":"Formats @t for the [const@Clapper.TIME_FORMAT] format string.","deprecated":null},{"type":"function_macro","name":"TIME_MS_ARGS","ident":"CLAPPER_TIME_MS_ARGS","summary":"Formats @t for the [const@Clapper.TIME_MS_FORMAT] format string.","deprecated":null},{"type":"function_macro","name":"VIDEO_STREAM_CAST","ident":"CLAPPER_VIDEO_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"method","name":"add_feature","type_name":"Player","ident":"clapper_player_add_feature","summary":"Add another #ClapperFeature to the player. If feature is already added, this function will do nothing, so it ...","deprecated":null},{"type":"method","name":"add_item","type_name":"Queue","ident":"clapper_queue_add_item","summary":"Add another #ClapperMediaItem to the end of queue. If item is already in queue, this function will do ...","deprecated":null},{"type":"method","name":"clear","type_name":"Queue","ident":"clapper_queue_clear","summary":"Removes all media items from the queue. If queue is empty, this function will do nothing, so it ...","deprecated":null},{"type":"method","name":"find_item","type_name":"Queue","ident":"clapper_queue_find_item","summary":"Get the index of #ClapperMediaItem within #ClapperQueue.","deprecated":null},{"type":"method","name":"get_audio_enabled","type_name":"Player","ident":"clapper_player_get_audio_enabled","summary":"Get whether audio stream is enabled.","deprecated":null},{"type":"method","name":"get_audio_filter","type_name":"Player","ident":"clapper_player_get_audio_filter","summary":"Get #GstElement used as audio filter.","deprecated":null},{"type":"method","name":"get_audio_sink","type_name":"Player","ident":"clapper_player_get_audio_sink","summary":"Get #GstElement used as audio sink.","deprecated":null},{"type":"method","name":"get_audio_streams","type_name":"Player","ident":"clapper_player_get_audio_streams","summary":"Get a list of audio streams within media item.","deprecated":null},{"type":"method","name":"get_autoplay","type_name":"Player","ident":"clapper_player_get_autoplay","summary":"Get the autoplay value.","deprecated":null},{"type":"method","name":"get_bitrate","type_name":"AudioStream","ident":"clapper_audio_stream_get_bitrate","summary":"Get bitrate of audio @stream.","deprecated":null},{"type":"method","name":"get_bitrate","type_name":"VideoStream","ident":"clapper_video_stream_get_bitrate","summary":"Get bitrate of video @stream.","deprecated":null},{"type":"method","name":"get_channels","type_name":"AudioStream","ident":"clapper_audio_stream_get_channels","summary":"Get number of audio channels in @stream.","deprecated":null},{"type":"method","name":"get_codec","type_name":"AudioStream","ident":"clapper_audio_stream_get_codec","summary":"Get codec used to encode @stream.","deprecated":null},{"type":"method","name":"get_codec","type_name":"VideoStream","ident":"clapper_video_stream_get_codec","summary":"Get codec used to encode @stream.","deprecated":null},{"type":"method","name":"get_container_format","type_name":"MediaItem","ident":"clapper_media_item_get_container_format","summary":"Get media item container format.","deprecated":null},{"type":"method","name":"get_context","type_name":"ThreadedObject","ident":"clapper_threaded_object_get_context","summary":"Get the #GMainContext of the thread used by this object. Useful when you want to invoke object thread ...","deprecated":null},{"type":"method","name":"get_current_audio_decoder","type_name":"Player","ident":"clapper_player_get_current_audio_decoder","summary":"Get #GstElement currently used as audio decoder.","deprecated":null},{"type":"method","name":"get_current_index","type_name":"Queue","ident":"clapper_queue_get_current_index","summary":"Get index of the currently selected #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_current_index","type_name":"StreamList","ident":"clapper_stream_list_get_current_index","summary":"Get index of the currently selected #ClapperStream.","deprecated":null},{"type":"method","name":"get_current_item","type_name":"Queue","ident":"clapper_queue_get_current_item","summary":"Get the currently selected #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_current_port","type_name":"Server","ident":"clapper_server_get_current_port","summary":"Get port on which server is currently listening on.","deprecated":null},{"type":"method","name":"get_current_stream","type_name":"StreamList","ident":"clapper_stream_list_get_current_stream","summary":"Get the currently selected #ClapperStream.","deprecated":null},{"type":"method","name":"get_current_video_decoder","type_name":"Player","ident":"clapper_player_get_current_video_decoder","summary":"Get #GstElement currently used as video decoder.","deprecated":null},{"type":"method","name":"get_discovery_mode","type_name":"Discoverer","ident":"clapper_discoverer_get_discovery_mode","summary":"Get the [enum@Clapper.DiscovererDiscoveryMode] of @discoverer.","deprecated":null},{"type":"method","name":"get_duration","type_name":"MediaItem","ident":"clapper_media_item_get_duration","summary":"Get media item duration as decimal number in seconds.","deprecated":null},{"type":"method","name":"get_enabled","type_name":"Server","ident":"clapper_server_get_enabled","summary":"Get whether #ClapperServer is set to be running.","deprecated":null},{"type":"method","name":"get_fallback_art_url","type_name":"Mpris","ident":"clapper_mpris_get_fallback_art_url","summary":"Get fallback art URL earlier set by user.","deprecated":null},{"type":"method","name":"get_fps","type_name":"VideoStream","ident":"clapper_video_stream_get_fps","summary":"Get number of frames per second in video @stream.","deprecated":null},{"type":"method","name":"get_gapless","type_name":"Queue","ident":"clapper_queue_get_gapless","summary":"Get if #ClapperQueue is set to use gapless progression.","deprecated":null},{"type":"method","name":"get_height","type_name":"VideoStream","ident":"clapper_video_stream_get_height","summary":"Get height of video @stream.","deprecated":null},{"type":"method","name":"get_id","type_name":"MediaItem","ident":"clapper_media_item_get_id","summary":"Get the unique ID of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_instant","type_name":"Queue","ident":"clapper_queue_get_instant","summary":"Get if #ClapperQueue is set to use instant media item changes.","deprecated":null},{"type":"method","name":"get_item","type_name":"Queue","ident":"clapper_queue_get_item","summary":"Get the #ClapperMediaItem at index. This behaves the same as g_list_model_get_item(), and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_lang_code","type_name":"AudioStream","ident":"clapper_audio_stream_get_lang_code","summary":"Get an ISO-639 language code of the @stream.","deprecated":null},{"type":"method","name":"get_lang_code","type_name":"SubtitleStream","ident":"clapper_subtitle_stream_get_lang_code","summary":"Get an ISO-639 language code of the @stream.","deprecated":null},{"type":"method","name":"get_lang_name","type_name":"AudioStream","ident":"clapper_audio_stream_get_lang_name","summary":"Get an ISO-639 language code of the @stream.","deprecated":null},{"type":"method","name":"get_lang_name","type_name":"SubtitleStream","ident":"clapper_subtitle_stream_get_lang_name","summary":"Get an ISO-639 language code of the @stream.","deprecated":null},{"type":"method","name":"get_mute","type_name":"Player","ident":"clapper_player_get_mute","summary":"Get the mute state of the player.","deprecated":null},{"type":"method","name":"get_n_items","type_name":"Queue","ident":"clapper_queue_get_n_items","summary":"Get the number of items in #ClapperQueue. This behaves the same as g_list_model_get_n_items(), and is here for code ...","deprecated":null},{"type":"method","name":"get_n_streams","type_name":"StreamList","ident":"clapper_stream_list_get_n_streams","summary":"Get the number of streams in #ClapperStreamList. This behaves the same as g_list_model_get_n_items(), and is here for code ...","deprecated":null},{"type":"method","name":"get_pixel_format","type_name":"VideoStream","ident":"clapper_video_stream_get_pixel_format","summary":"Get pixel format of video @stream.","deprecated":null},{"type":"method","name":"get_port","type_name":"Server","ident":"clapper_server_get_port","summary":"Get requested server listening port.","deprecated":null},{"type":"method","name":"get_position","type_name":"Player","ident":"clapper_player_get_position","summary":"Get the current player playback position. The returned value is in seconds as a decimal number.","deprecated":null},{"type":"method","name":"get_progression_mode","type_name":"Queue","ident":"clapper_queue_get_progression_mode","summary":"Get the #ClapperQueueProgressionMode of the #ClapperQueue.","deprecated":null},{"type":"method","name":"get_queue","type_name":"Player","ident":"clapper_player_get_queue","summary":"Get the #ClapperQueue of the player. The queue belongs to the player and can be accessed for as ...","deprecated":null},{"type":"method","name":"get_queue_controllable","type_name":"Mpris","ident":"clapper_mpris_get_queue_controllable","summary":"Get whether remote `MPRIS` clients can control [class@Clapper.Queue].","deprecated":null},{"type":"method","name":"get_queue_controllable","type_name":"Server","ident":"clapper_server_get_queue_controllable","summary":"Get whether remote @server clients can control [class@Clapper.Queue].","deprecated":null},{"type":"method","name":"get_running","type_name":"Server","ident":"clapper_server_get_running","summary":"Get whether #ClapperServer is currently running.","deprecated":null},{"type":"method","name":"get_sample_format","type_name":"AudioStream","ident":"clapper_audio_stream_get_sample_format","summary":"Get sample format of audio @stream.","deprecated":null},{"type":"method","name":"get_sample_rate","type_name":"AudioStream","ident":"clapper_audio_stream_get_sample_rate","summary":"Get sample rate of audio @stream (in Hz).","deprecated":null},{"type":"method","name":"get_speed","type_name":"Player","ident":"clapper_player_get_speed","summary":"Get the speed of the player used for playback.","deprecated":null},{"type":"method","name":"get_state","type_name":"Player","ident":"clapper_player_get_state","summary":"Get the current #ClapperPlayerState.","deprecated":null},{"type":"method","name":"get_stream","type_name":"StreamList","ident":"clapper_stream_list_get_stream","summary":"Get the #ClapperStream at index. This behaves the same as g_list_model_get_item(), and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_stream_type","type_name":"Stream","ident":"clapper_stream_get_stream_type","summary":"Get the #ClapperStreamType of @stream.","deprecated":null},{"type":"method","name":"get_subtitle_streams","type_name":"Player","ident":"clapper_player_get_subtitle_streams","summary":"Get a list of subtitle streams within media item.","deprecated":null},{"type":"method","name":"get_subtitles_enabled","type_name":"Player","ident":"clapper_player_get_subtitles_enabled","summary":"Get whether subtitles are to be shown if any.","deprecated":null},{"type":"method","name":"get_suburi","type_name":"MediaItem","ident":"clapper_media_item_get_suburi","summary":"Get the additional URI of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_title","type_name":"MediaItem","ident":"clapper_media_item_get_title","summary":"Get media item title for displaying in app UI. This function always returns a media title of some sort ...","deprecated":null},{"type":"method","name":"get_title","type_name":"Stream","ident":"clapper_stream_get_title","summary":"Get the title of @stream, if any.","deprecated":null},{"type":"method","name":"get_uri","type_name":"MediaItem","ident":"clapper_media_item_get_uri","summary":"Get the URI of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_video_enabled","type_name":"Player","ident":"clapper_player_get_video_enabled","summary":"Get whether video stream is enabled.","deprecated":null},{"type":"method","name":"get_video_filter","type_name":"Player","ident":"clapper_player_get_video_filter","summary":"Get #GstElement used as video filter.","deprecated":null},{"type":"method","name":"get_video_sink","type_name":"Player","ident":"clapper_player_get_video_sink","summary":"Get #GstElement used as video sink.","deprecated":null},{"type":"method","name":"get_video_streams","type_name":"Player","ident":"clapper_player_get_video_streams","summary":"Get a list of video streams within media item.","deprecated":null},{"type":"method","name":"get_volume","type_name":"Player","ident":"clapper_player_get_volume","summary":"Get the volume of the player.","deprecated":null},{"type":"method","name":"get_width","type_name":"VideoStream","ident":"clapper_video_stream_get_width","summary":"Get width of video @stream.","deprecated":null},{"type":"method","name":"insert_item","type_name":"Queue","ident":"clapper_queue_insert_item","summary":"Insert another #ClapperMediaItem at @index position to the queue. If item is already in queue, this function will ...","deprecated":null},{"type":"method","name":"item_is_current","type_name":"Queue","ident":"clapper_queue_item_is_current","summary":"Checks if given #ClapperMediaItem is currently selected.","deprecated":null},{"type":"method","name":"pause","type_name":"Player","ident":"clapper_player_pause","summary":"Pause the playback of current media item. This function will queue a request for the underlaying #GStreamer pipeline ...","deprecated":null},{"type":"method","name":"play","type_name":"Player","ident":"clapper_player_play","summary":"Either start or resume the playback of current media item. This function will queue a request for the ...","deprecated":null},{"type":"method","name":"remove_index","type_name":"Queue","ident":"clapper_queue_remove_index","summary":"Removes #ClapperMediaItem at @index from the queue.","deprecated":null},{"type":"method","name":"remove_item","type_name":"Queue","ident":"clapper_queue_remove_item","summary":"Removes #ClapperMediaItem from the queue. If item either was never in the queue or was removed from it ...","deprecated":null},{"type":"method","name":"reposition_item","type_name":"Queue","ident":"clapper_queue_reposition_item","summary":"Change position of one #ClapperMediaItem within the queue. Note that the @index is the new position you expect ...","deprecated":null},{"type":"method","name":"seek","type_name":"Player","ident":"clapper_player_seek","summary":"Request the player to perform a seek operation. This function will use #CLAPPER_PLAYER_SEEK_METHOD_NORMAL as a default seeking method. ...","deprecated":null},{"type":"method","name":"seek_custom","type_name":"Player","ident":"clapper_player_seek_custom","summary":"Request the player to perform a seek operation. Same as clapper_player_seek(), but also allows to specify #ClapperPlayerSeekMethod to ...","deprecated":null},{"type":"method","name":"select_index","type_name":"Queue","ident":"clapper_queue_select_index","summary":"Selects #ClapperMediaItem at @index from @queue as current one or unselects currently selected index when @index is #CLAPPER_QUEUE_INVALID_POSITION.","deprecated":null},{"type":"method","name":"select_index","type_name":"StreamList","ident":"clapper_stream_list_select_index","summary":"Selects #ClapperStream at @index from @list as current one.","deprecated":null},{"type":"method","name":"select_item","type_name":"Queue","ident":"clapper_queue_select_item","summary":"Selects #ClapperMediaItem from @queue as current one or unselects currently selected item when @item is %NULL.","deprecated":null},{"type":"method","name":"select_next_item","type_name":"Queue","ident":"clapper_queue_select_next_item","summary":"Selects next #ClapperMediaItem from @queue for playback. Note that this will try to select next item in the ...","deprecated":null},{"type":"method","name":"select_previous_item","type_name":"Queue","ident":"clapper_queue_select_previous_item","summary":"Selects previous #ClapperMediaItem from @queue for playback. Note that this will try to select previous item in the ...","deprecated":null},{"type":"method","name":"select_stream","type_name":"StreamList","ident":"clapper_stream_list_select_stream","summary":"Selects #ClapperStream from @list to be activated.","deprecated":null},{"type":"method","name":"set_audio_enabled","type_name":"Player","ident":"clapper_player_set_audio_enabled","summary":"Set whether enable audio stream.","deprecated":null},{"type":"method","name":"set_audio_filter","type_name":"Player","ident":"clapper_player_set_audio_filter","summary":"Set #GstElement to be used as audio filter.","deprecated":null},{"type":"method","name":"set_audio_sink","type_name":"Player","ident":"clapper_player_set_audio_sink","summary":"Set #GstElement to be used as audio sink.","deprecated":null},{"type":"method","name":"set_autoplay","type_name":"Player","ident":"clapper_player_set_autoplay","summary":"Set the autoplay state of the player. When autoplay is enabled, player will always try to start playback ...","deprecated":null},{"type":"method","name":"set_discovery_mode","type_name":"Discoverer","ident":"clapper_discoverer_set_discovery_mode","summary":"Set the [enum@Clapper.DiscovererDiscoveryMode] of @discoverer.","deprecated":null},{"type":"method","name":"set_enabled","type_name":"Server","ident":"clapper_server_set_enabled","summary":"Set whether #ClapperServer should be running. Note that server feature will run only after being added to the ...","deprecated":null},{"type":"method","name":"set_fallback_art_url","type_name":"Mpris","ident":"clapper_mpris_set_fallback_art_url","summary":"Set fallback artwork to show when media does not provide one.","deprecated":null},{"type":"method","name":"set_gapless","type_name":"Queue","ident":"clapper_queue_set_gapless","summary":"Set #ClapperQueue progression to be gapless. Gapless playback will try to re-use as much as possible of underlying ...","deprecated":null},{"type":"method","name":"set_instant","type_name":"Queue","ident":"clapper_queue_set_instant","summary":"Set #ClapperQueue media item changes to be instant. Instant will try to re-use as much as possible of ...","deprecated":null},{"type":"method","name":"set_mute","type_name":"Player","ident":"clapper_player_set_mute","summary":"Set the mute state of the player.","deprecated":null},{"type":"method","name":"set_port","type_name":"Server","ident":"clapper_server_set_port","summary":"Set server listening port.","deprecated":null},{"type":"method","name":"set_progression_mode","type_name":"Queue","ident":"clapper_queue_set_progression_mode","summary":"Set the #ClapperQueueProgressionMode of the #ClapperQueue. Changing the mode set will alter next item selection at the end ...","deprecated":null},{"type":"method","name":"set_queue_controllable","type_name":"Mpris","ident":"clapper_mpris_set_queue_controllable","summary":"Set whether remote MPRIS clients can control #ClapperQueue. This includes ability to open new URIs, adding/removing items from ...","deprecated":null},{"type":"method","name":"set_queue_controllable","type_name":"Server","ident":"clapper_server_set_queue_controllable","summary":"Set whether remote @server clients can control [class@Clapper.Queue]. This includes ability to add/remove items from the queue and ...","deprecated":null},{"type":"method","name":"set_speed","type_name":"Player","ident":"clapper_player_set_speed","summary":"Set the speed multiplier of the player.","deprecated":null},{"type":"method","name":"set_subtitles_enabled","type_name":"Player","ident":"clapper_player_set_subtitles_enabled","summary":"Set whether subtitles should be shown if any.","deprecated":null},{"type":"method","name":"set_suburi","type_name":"MediaItem","ident":"clapper_media_item_set_suburi","summary":"Set the additional URI of #ClapperMediaItem. This is typically used to add an external subtitles URI to the @item.","deprecated":null},{"type":"method","name":"set_video_enabled","type_name":"Player","ident":"clapper_player_set_video_enabled","summary":"Set whether enable video stream.","deprecated":null},{"type":"method","name":"set_video_filter","type_name":"Player","ident":"clapper_player_set_video_filter","summary":"Set #GstElement to be used as video filter.","deprecated":null},{"type":"method","name":"set_video_sink","type_name":"Player","ident":"clapper_player_set_video_sink","summary":"Set #GstElement to be used as video sink.","deprecated":null},{"type":"method","name":"set_volume","type_name":"Player","ident":"clapper_player_set_volume","summary":"Set the volume of the player. The value should be within 0 - 2.0 range, where 1.0 is ...","deprecated":null},{"type":"method","name":"steal_index","type_name":"Queue","ident":"clapper_queue_steal_index","summary":"Removes #ClapperMediaItem at @index from the queue.","deprecated":null},{"type":"method","name":"stop","type_name":"Player","ident":"clapper_player_stop","summary":"Stop the playback of current media item. This function will queue a request for the underlaying #GStreamer pipeline ...","deprecated":null},{"type":"property","name":"audio-enabled","type_name":"Player","summary":"Whether audio stream is enabled.","deprecated":null},{"type":"property","name":"audio-filter","type_name":"Player","summary":"Optional audio filter to use (none by default).","deprecated":null},{"type":"property","name":"audio-sink","type_name":"Player","summary":"Audio sink to use (autoaudiosink by default).","deprecated":null},{"type":"property","name":"audio-streams","type_name":"Player","summary":"List of currently available audio streams.","deprecated":null},{"type":"property","name":"autoplay","type_name":"Player","summary":"Always try to start playback after media item changes.","deprecated":null},{"type":"property","name":"bitrate","type_name":"AudioStream","summary":"Stream bitrate.","deprecated":null},{"type":"property","name":"bitrate","type_name":"VideoStream","summary":"Stream bitrate.","deprecated":null},{"type":"property","name":"channels","type_name":"AudioStream","summary":"Stream number of audio channels.","deprecated":null},{"type":"property","name":"codec","type_name":"AudioStream","summary":"Stream codec.","deprecated":null},{"type":"property","name":"codec","type_name":"VideoStream","summary":"Stream codec.","deprecated":null},{"type":"property","name":"container-format","type_name":"MediaItem","summary":"Media container format.","deprecated":null},{"type":"property","name":"current-audio-decoder","type_name":"Player","summary":"Currently used audio decoder.","deprecated":null},{"type":"property","name":"current-index","type_name":"Queue","summary":"Index of currently selected media item for playback.","deprecated":null},{"type":"property","name":"current-index","type_name":"StreamList","summary":"Index of currently selected stream.","deprecated":null},{"type":"property","name":"current-item","type_name":"Queue","summary":"Currently selected media item for playback.","deprecated":null},{"type":"property","name":"current-port","type_name":"Server","summary":"Port on which server is currently listening on or 0 if not listening.","deprecated":null},{"type":"property","name":"current-stream","type_name":"StreamList","summary":"Currently selected stream.","deprecated":null},{"type":"property","name":"current-video-decoder","type_name":"Player","summary":"Currently used video decoder.","deprecated":null},{"type":"property","name":"desktop-entry","type_name":"Mpris","summary":"The basename of an installed .desktop file with the \".desktop\" extension stripped.","deprecated":null},{"type":"property","name":"discovery-mode","type_name":"Discoverer","summary":"Discoverer discovery mode.","deprecated":null},{"type":"property","name":"duration","type_name":"MediaItem","summary":"Media duration as a decimal number in seconds.","deprecated":null},{"type":"property","name":"enabled","type_name":"Server","summary":"Whether server is enabled.","deprecated":null},{"type":"property","name":"fallback-art-url","type_name":"Mpris","summary":"Fallback artwork to show when media does not provide one.","deprecated":null},{"type":"property","name":"fps","type_name":"VideoStream","summary":"Stream FPS.","deprecated":null},{"type":"property","name":"gapless","type_name":"Queue","summary":"Use gapless progression.","deprecated":null},{"type":"property","name":"height","type_name":"VideoStream","summary":"Stream height.","deprecated":null},{"type":"property","name":"id","type_name":"MediaItem","summary":"Media Item ID.","deprecated":null},{"type":"property","name":"identity","type_name":"Mpris","summary":"A friendly name to identify the media player. Example: \"My Player\"","deprecated":null},{"type":"property","name":"instant","type_name":"Queue","summary":"Use instant media item changes.","deprecated":null},{"type":"property","name":"lang-code","type_name":"AudioStream","summary":"Stream language code in ISO-639 format.","deprecated":null},{"type":"property","name":"lang-code","type_name":"SubtitleStream","summary":"Stream language code in ISO-639 format.","deprecated":null},{"type":"property","name":"lang-name","type_name":"AudioStream","summary":"Stream full language name determined from lang code.","deprecated":null},{"type":"property","name":"lang-name","type_name":"SubtitleStream","summary":"Stream full language name determined from lang code.","deprecated":null},{"type":"property","name":"mute","type_name":"Player","summary":"Mute audio without changing volume.","deprecated":null},{"type":"property","name":"n-items","type_name":"Queue","summary":"Number of media items in the queue.","deprecated":null},{"type":"property","name":"own-name","type_name":"Mpris","summary":"DBus name to own on connection. Must be written as a reverse DNS format starting with \"org.mpris.MediaPlayer2.\" prefix. ...","deprecated":null},{"type":"property","name":"pixel-format","type_name":"VideoStream","summary":"Stream pixel format.","deprecated":null},{"type":"property","name":"port","type_name":"Server","summary":"Port to listen on or 0 for using random unused port.","deprecated":null},{"type":"property","name":"position","type_name":"Player","summary":"Current playback position as a decimal number in seconds.","deprecated":null},{"type":"property","name":"progression-mode","type_name":"Queue","summary":"Queue progression mode.","deprecated":null},{"type":"property","name":"queue","type_name":"Player","summary":"Clapper playback queue.","deprecated":null},{"type":"property","name":"queue-controllable","type_name":"Mpris","summary":"Whether remote MPRIS clients can control #ClapperQueue.","deprecated":null},{"type":"property","name":"queue-controllable","type_name":"Server","summary":"Whether remote server clients can control #ClapperQueue.","deprecated":null},{"type":"property","name":"running","type_name":"Server","summary":"Whether server is currently running.","deprecated":null},{"type":"property","name":"sample-format","type_name":"AudioStream","summary":"Stream sample format.","deprecated":null},{"type":"property","name":"sample-rate","type_name":"AudioStream","summary":"Stream sample rate (in Hz).","deprecated":null},{"type":"property","name":"speed","type_name":"Player","summary":"Current playback speed.","deprecated":null},{"type":"property","name":"state","type_name":"Player","summary":"Current playback state.","deprecated":null},{"type":"property","name":"stream-type","type_name":"Stream","summary":"Type of stream.","deprecated":null},{"type":"property","name":"subtitle-streams","type_name":"Player","summary":"List of currently available subtitle streams.","deprecated":null},{"type":"property","name":"subtitles-enabled","type_name":"Player","summary":"Whether subtitles stream is enabled.","deprecated":null},{"type":"property","name":"suburi","type_name":"MediaItem","summary":"Media additional URI.","deprecated":null},{"type":"property","name":"title","type_name":"MediaItem","summary":"Media title.","deprecated":null},{"type":"property","name":"title","type_name":"Stream","summary":"Title of stream.","deprecated":null},{"type":"property","name":"uri","type_name":"MediaItem","summary":"Media URI.","deprecated":null},{"type":"property","name":"video-enabled","type_name":"Player","summary":"Whether video stream is enabled.","deprecated":null},{"type":"property","name":"video-filter","type_name":"Player","summary":"Optional video filter to use (none by default).","deprecated":null},{"type":"property","name":"video-sink","type_name":"Player","summary":"Video sink to use (autovideosink by default).","deprecated":null},{"type":"property","name":"video-streams","type_name":"Player","summary":"List of currently available video streams.","deprecated":null},{"type":"property","name":"volume","type_name":"Player","summary":"Current volume as a decimal number (1.0 = 100%). Note that #ClapperPlayer uses a CUBIC volume scale, meaning ...","deprecated":null},{"type":"property","name":"width","type_name":"VideoStream","summary":"Stream width.","deprecated":null},{"type":"signal","name":"error","type_name":"Player","summary":"These are normal error messages. Upon emitting this signal, playback will stop due to the error.","deprecated":null},{"type":"signal","name":"error","type_name":"Server","summary":"Error signal when server could not start. This will be emitted from application main thread.","deprecated":null},{"type":"signal","name":"missing-plugin","type_name":"Player","summary":"A #GStreamer plugin or one of its features needed for playback is missing. The @description and @installer_detail can ...","deprecated":null},{"type":"signal","name":"warning","type_name":"Player","summary":"These are some usually more minor error messages that should be treated like warnings. Should not generally prevent/stop playback.","deprecated":null},{"type":"vfunc","name":"internal_stream_updated","type_name":"Stream","summary":"This function is called when internal #GstStream gets updated. Meant for internal usage only. Used for subclasses to update ...","deprecated":null},{"type":"vfunc","name":"item_updated","type_name":"Feature","summary":"An item in queue got updated. This might be (or not) currently played item. Implementations can get parent player ...","deprecated":null},{"type":"vfunc","name":"mute_changed","type_name":"Feature","summary":"Player mute state was changed.","deprecated":null},{"type":"vfunc","name":"played_item_changed","type_name":"Feature","summary":"New media item started playing. All following events (such as position changes) will be related to this @item from ...","deprecated":null},{"type":"vfunc","name":"position_changed","type_name":"Feature","summary":"Player position was changed.","deprecated":null},{"type":"vfunc","name":"prepare","type_name":"Feature","summary":"Prepare feature for operation (optional). This is different from init() as its called from features thread once feature ...","deprecated":null},{"type":"vfunc","name":"property_changed","type_name":"Feature","summary":"A property of @feature changed its value. Useful for reconfiguring @feature, since unlike \"notify\" signal this is always ...","deprecated":null},{"type":"vfunc","name":"queue_cleared","type_name":"Feature","summary":"All items were removed from queue. Note that in such event @queue_item_removed will NOT be called for each item ...","deprecated":null},{"type":"vfunc","name":"queue_item_added","type_name":"Feature","summary":"An item was added to the queue.","deprecated":null},{"type":"vfunc","name":"queue_item_removed","type_name":"Feature","summary":"An item was removed from queue.","deprecated":null},{"type":"vfunc","name":"queue_item_repositioned","type_name":"Feature","summary":"No description available.","deprecated":null},{"type":"vfunc","name":"queue_progression_changed","type_name":"Feature","summary":"Progression mode of the queue was changed.","deprecated":null},{"type":"vfunc","name":"speed_changed","type_name":"Feature","summary":"Player speed was changed.","deprecated":null},{"type":"vfunc","name":"state_changed","type_name":"Feature","summary":"Player state was changed.","deprecated":null},{"type":"vfunc","name":"thread_start","type_name":"ThreadedObject","summary":"Called right after thread started. Useful for initializing objects that work within this new thread.","deprecated":null},{"type":"vfunc","name":"thread_stop","type_name":"ThreadedObject","summary":"Called when thread is going to stop. Useful for cleanup of things created on thread start.","deprecated":null},{"type":"vfunc","name":"unprepare","type_name":"Feature","summary":"Revert the changes done in @prepare (optional).","deprecated":null},{"type":"vfunc","name":"volume_changed","type_name":"Feature","summary":"Player volume was changed.","deprecated":null}],"terms":{}}
\ No newline at end of file
diff --git a/doc/clapper/method.AudioStream.get_bitrate.html b/doc/clapper/method.AudioStream.get_bitrate.html
new file mode 100644
index 00000000..dfa1a3df
--- /dev/null
+++ b/doc/clapper/method.AudioStream.get_bitrate.html
@@ -0,0 +1,221 @@
+
+
+
+
+
+ Clapper.AudioStream.get_bitrate
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
When autoplay is enabled, player will always try to start
+playback after current media item changes. When disabled
+current playback state is preserved when changing items.
This function is called when internal GstStream gets updated.
+Meant for internal usage only. Used for subclasses to update
+their properties accordingly.
+
Note that this vfunc is called from different threads.