final class Clapper.Discoverer : Clapper.Feature
+{
/* No available fields */
}
-
Clapper media scanner used to discover media item info.
-
Once media is scanned, all extra information of it will be filled
-within media item, this includes title, duration, chapters, etc.
-
For performance reasons, ClapperDiscoverer will create a thread pool
-with an optimal number of threads for current hardware it is run in.
-All discovery is then done asynchronously using said threads and queued
-for discovery later if all threads are currently occupied.
+
An optional Discoverer feature to be added to the player.
+
ClapperDiscoverer is a feature that wraps around GstDiscovererAPI
+to automatically discover items within ClapperQueue. Once media
+is scanned, all extra information of it will be filled within media item,
+this includes title, duration, chapters, etc.
Please note that media items are also discovered during their playback
-from the player itself. Discoverer is useful in situations where one
-wants to present to the user an updated media item before playback,
-thus mainly to be applied into e.g. an UI with playback queue.
+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.
+
class Clapper.Feature : Gst.Object {
- parent_instance: GstObject
+
class Clapper.Feature : Gst.Object
+{
+ /* No available fields */
}
-
Represents an additional feature.
+
A base class for creating new features for the player.
Feature objects are meant for adding additional functionalities that
are supposed to either act on playback/properties changes and/or change
them themselves due to some external signal/event.
For reacting to playback changes subclass should override this class
virtual functions logic, while for controlling playback implementation
-may call gst_object_get_parent() to acquire a weak reference on a parent
-player object feature was added to.
state_changed: void (* state_changed) (
ClapperFeature* feature,
ClapperPlayerState state
@@ -489,13 +595,13 @@ its value set through g_object_set_property(), g_object_set(), et al.
)
An item in queue got updated. This might be (or not) currently
played item. Implementations can get parent player object
@@ -573,6 +676,17 @@ if they want to check that from its queue.
final class Clapper.Player : Clapper.ThreadedObject {
+
final class Clapper.Player : Clapper.ThreadedObject
+{
/* No available fields */
}
-
Clapper player that uses GStreamer internally to play various media.
+
The media player object used for playback.
+
ClapperPlayer was written in an easy to use way, so no special GStreamer
+experience is needed to get started with making various playback applications.
+
Scheduling media for playback is done using a ClapperQueue upon which
+player operates.
+
Player uses GStreamer internally and handles playback on a separate thread, while
+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.
final class Clapper.Server : Clapper.Feature
+{
+ /* No available fields */
+}
+
+
+
An optional Server feature to add to the player.
+
ClapperServer is a feature that hosts a local server
+providing an ability to both monitor and control playback
+through WebSocket messages and HTTP requests.
+
Use CLAPPER_HAVE_SERVER macro to check if Clapper API
+was compiled with this feature.
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.
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.
This signal is emitted whenever items were added to or removed
+from list. At position, removed items were removed and added
+items were added in their place.
A string that can be used in printf-like format to display
+e.g. position or duration in hh:mm:ss format. Meant to be
+used together with CLAPPER_TIME_ARGS().
Run discovery for every single media item added to ClapperQueue.
+ This mode is useful when application presents a list of items to select from to the user before playback.
+ It will scan every single item in queue, so user can have an updated list of items when selecting what to play.
Only run discovery on an item if it is not a currently selected item in ClapperQueue.
+ This mode is optimal when application always plays (or at least goes into paused) after selecting item from queue.
+ It will skip discovery of such items since they will be discovered by ClapperPlayer anyway.
+
+
Value: 1
+
Nickname: noncurrent
+
Available since: 0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/clapper/enum.PlayerSeekMethod.html b/doc/clapper/enum.PlayerSeekMethod.html
index 93027bb7..450a4af0 100644
--- a/doc/clapper/enum.PlayerSeekMethod.html
+++ b/doc/clapper/enum.PlayerSeekMethod.html
@@ -88,7 +88,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
@@ -109,7 +109,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
Declaration
- [src]
+ [src]
@@ -129,7 +129,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
Description
- [src]
+ [src]
@@ -141,7 +141,7 @@ GStreamer before initializing Clapper itself for user convienience, so
application does not have to do so anymore.
WARNING: This function will terminate your program if it was unable to
initialize for some reason. If you want to do some fallback logic,
-use clapper_init_check() instead.
A string that can be used in printf-like format to display
+e.g. position or duration in hh:mm:ss format. Meant to be
+used together with CLAPPER_TIME_ARGS().
diff --git a/doc/clapper/index.json b/doc/clapper/index.json
index bd69fb39..63a2d56b 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.1"},"symbols":[{"type":"class","name":"Discoverer","ctype":"ClapperDiscoverer","summary":"Clapper media scanner used to discover media item info. ..."},{"type":"class","name":"Feature","ctype":"ClapperFeature","summary":"Represents an additional feature. Feature objects are meant ..."},{"type":"class","name":"MediaItem","ctype":"ClapperMediaItem","summary":"Represents a media item."},{"type":"class","name":"Mpris","ctype":"ClapperMpris","summary":"Represents a MPRIS feature."},{"type":"class","name":"Player","ctype":"ClapperPlayer","summary":"Clapper player that uses #GStreamer internally to play various media."},{"type":"class","name":"Queue","ctype":"ClapperQueue","summary":"A media playback queue."},{"type":"class","name":"ThreadedObject","ctype":"ClapperThreadedObject","summary":"A base class for creating objects that work within ..."},{"type":"constant","name":"HAVE_MPRIS","ident":"CLAPPER_HAVE_MPRIS","summary":"Check if Clapper was compiled with MPRIS feature."},{"type":"constant","name":"MAJOR_VERSION","ident":"CLAPPER_MAJOR_VERSION","summary":"Clapper major version component"},{"type":"constant","name":"MICRO_VERSION","ident":"CLAPPER_MICRO_VERSION","summary":"Clapper micro version component"},{"type":"constant","name":"MINOR_VERSION","ident":"CLAPPER_MINOR_VERSION","summary":"Clapper minor version component"},{"type":"constant","name":"VERSION_S","ident":"CLAPPER_VERSION_S","summary":"Clapper version, encoded as a string"},{"type":"ctor","name":"new","type_name":"Discoverer","ident":"clapper_discoverer_new","summary":"Creates a new #ClapperDiscoverer instance."},{"type":"ctor","name":"new","type_name":"MediaItem","ident":"clapper_media_item_new","summary":"Creates new #ClapperMediaItem from URI. Use one of ..."},{"type":"ctor","name":"new","type_name":"Mpris","ident":"clapper_mpris_new","summary":"Creates a new #ClapperMpris instance."},{"type":"ctor","name":"new","type_name":"Player","ident":"clapper_player_new","summary":"Creates a new #ClapperPlayer instance."},{"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(), ..."},{"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(), ..."},{"type":"enum","name":"PlayerSeekMethod","ctype":"ClapperPlayerSeekMethod","summary":"No description available."},{"type":"enum","name":"PlayerState","ctype":"ClapperPlayerState","summary":"No description available."},{"type":"enum","name":"QueueProgressionMode","ctype":"ClapperQueueProgressionMode","summary":"No description available."},{"type":"function","name":"init","ident":"clapper_init","summary":"Initializes the Clapper library. Implementations must always call this ..."},{"type":"function","name":"init_check","ident":"clapper_init_check","summary":"This function does the same thing as clapper_init(), but ..."},{"type":"function_macro","name":"CHECK_VERSION","ident":"CLAPPER_CHECK_VERSION","summary":"No description available."},{"type":"function_macro","name":"DISCOVERER_CAST","ident":"CLAPPER_DISCOVERER_CAST","summary":"No description available."},{"type":"function_macro","name":"ENCODE_VERSION","ident":"CLAPPER_ENCODE_VERSION","summary":"No description available."},{"type":"function_macro","name":"FEATURE_CAST","ident":"CLAPPER_FEATURE_CAST","summary":"No description available."},{"type":"function_macro","name":"MEDIA_ITEM_CAST","ident":"CLAPPER_MEDIA_ITEM_CAST","summary":"No description available."},{"type":"function_macro","name":"MPRIS_CAST","ident":"CLAPPER_MPRIS_CAST","summary":"No description available."},{"type":"function_macro","name":"PLAYER_CAST","ident":"CLAPPER_PLAYER_CAST","summary":"No description available."},{"type":"function_macro","name":"QUEUE_CAST","ident":"CLAPPER_QUEUE_CAST","summary":"No description available."},{"type":"function_macro","name":"THREADED_OBJECT_CAST","ident":"CLAPPER_THREADED_OBJECT_CAST","summary":"No description available."},{"type":"method","name":"add_feature","type_name":"Player","ident":"clapper_player_add_feature","summary":"Add another #ClapperFeature to the player. If feature ..."},{"type":"method","name":"add_item","type_name":"Queue","ident":"clapper_queue_add_item","summary":"Add another #ClapperMediaItem to the end of queue. ..."},{"type":"method","name":"append_suburi","type_name":"MediaItem","ident":"clapper_media_item_append_suburi","summary":"No description available."},{"type":"method","name":"clear","type_name":"Queue","ident":"clapper_queue_clear","summary":"Removes all media items from the queue. If ..."},{"type":"method","name":"discover_item","type_name":"Discoverer","ident":"clapper_discoverer_discover_item","summary":"Queues media item for discovery. If media item ..."},{"type":"method","name":"find_item","type_name":"Queue","ident":"clapper_queue_find_item","summary":"Get the index of #ClapperMediaItem within #ClapperQueue."},{"type":"method","name":"get_audio_filter","type_name":"Player","ident":"clapper_player_get_audio_filter","summary":"Get #GstElement used as audio filter."},{"type":"method","name":"get_audio_sink","type_name":"Player","ident":"clapper_player_get_audio_sink","summary":"Get #GstElement used as audio sink."},{"type":"method","name":"get_container_format","type_name":"MediaItem","ident":"clapper_media_item_get_container_format","summary":"Get media item container format."},{"type":"method","name":"get_context","type_name":"ThreadedObject","ident":"clapper_threaded_object_get_context","summary":"Get the #GMainContext of the thread used by this ..."},{"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."},{"type":"method","name":"get_current_item","type_name":"Queue","ident":"clapper_queue_get_current_item","summary":"Get the currently selected #ClapperMediaItem."},{"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."},{"type":"method","name":"get_duration","type_name":"MediaItem","ident":"clapper_media_item_get_duration","summary":"Get media item duration as decimal number in seconds."},{"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."},{"type":"method","name":"get_item","type_name":"Queue","ident":"clapper_queue_get_item","summary":"Get the #ClapperMediaItem at index. This behaves the ..."},{"type":"method","name":"get_mute","type_name":"Player","ident":"clapper_player_get_mute","summary":"Get the mute state of the player."},{"type":"method","name":"get_n_items","type_name":"Queue","ident":"clapper_queue_get_n_items","summary":"Get the number of items in #ClapperQueue. This ..."},{"type":"method","name":"get_position","type_name":"Player","ident":"clapper_player_get_position","summary":"Get the current player playback position. The returned ..."},{"type":"method","name":"get_progression_mode","type_name":"Queue","ident":"clapper_queue_get_progression_mode","summary":"Get the #ClapperQueueProgressionMode of the #ClapperQueue."},{"type":"method","name":"get_queue","type_name":"Player","ident":"clapper_player_get_queue","summary":"Get the #ClapperQueue of the player. The queue ..."},{"type":"method","name":"get_speed","type_name":"Player","ident":"clapper_player_get_speed","summary":"Get the speed of the player used for playback."},{"type":"method","name":"get_state","type_name":"Player","ident":"clapper_player_get_state","summary":"Get the current #ClapperPlayerState."},{"type":"method","name":"get_suburis","type_name":"MediaItem","ident":"clapper_media_item_get_suburis","summary":"No description available."},{"type":"method","name":"get_title","type_name":"MediaItem","ident":"clapper_media_item_get_title","summary":"Get media item title for displaying in app UI. ..."},{"type":"method","name":"get_uri","type_name":"MediaItem","ident":"clapper_media_item_get_uri","summary":"Get the URI of #ClapperMediaItem."},{"type":"method","name":"get_video_filter","type_name":"Player","ident":"clapper_player_get_video_filter","summary":"Get #GstElement used as video filter."},{"type":"method","name":"get_video_sink","type_name":"Player","ident":"clapper_player_get_video_sink","summary":"Get #GstElement used as video sink."},{"type":"method","name":"get_volume","type_name":"Player","ident":"clapper_player_get_volume","summary":"Get the volume of the player."},{"type":"method","name":"insert_item","type_name":"Queue","ident":"clapper_queue_insert_item","summary":"Insert another #ClapperMediaItem at @index position to the queue. ..."},{"type":"method","name":"pause","type_name":"Player","ident":"clapper_player_pause","summary":"Pause the playback of current media item. This ..."},{"type":"method","name":"play","type_name":"Player","ident":"clapper_player_play","summary":"Either start or resume the playback of current media ..."},{"type":"method","name":"remove_item","type_name":"Queue","ident":"clapper_queue_remove_item","summary":"Removes #ClapperMediaItem from the queue. If item either ..."},{"type":"method","name":"seek","type_name":"Player","ident":"clapper_player_seek","summary":"Request the player to perform a seek operation. ..."},{"type":"method","name":"seek_custom","type_name":"Player","ident":"clapper_player_seek_custom","summary":"Request the player to perform a seek operation. ..."},{"type":"method","name":"select_item","type_name":"Queue","ident":"clapper_queue_select_item","summary":"Selects #ClapperMediaItem from playlist as current one and signals ..."},{"type":"method","name":"select_next_item","type_name":"Queue","ident":"clapper_queue_select_next_item","summary":"Selects next #ClapperMediaItem from playlist for playback. Note ..."},{"type":"method","name":"select_previous_item","type_name":"Queue","ident":"clapper_queue_select_previous_item","summary":"Selects previous #ClapperMediaItem from playlist for playback. Note ..."},{"type":"method","name":"set_audio_filter","type_name":"Player","ident":"clapper_player_set_audio_filter","summary":"Set #GstElement to be used as audio filter."},{"type":"method","name":"set_audio_sink","type_name":"Player","ident":"clapper_player_set_audio_sink","summary":"Set #GstElement to be used as audio sink."},{"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 ..."},{"type":"method","name":"set_mute","type_name":"Player","ident":"clapper_player_set_mute","summary":"Set the mute state of the player."},{"type":"method","name":"set_progression_mode","type_name":"Queue","ident":"clapper_queue_set_progression_mode","summary":"Set the #ClapperQueueProgressionMode of the #ClapperQueue. Changing the ..."},{"type":"method","name":"set_speed","type_name":"Player","ident":"clapper_player_set_speed","summary":"Set the speed multiplier of the player."},{"type":"method","name":"set_suburis","type_name":"MediaItem","ident":"clapper_media_item_set_suburis","summary":"No description available."},{"type":"method","name":"set_video_filter","type_name":"Player","ident":"clapper_player_set_video_filter","summary":"Set #GstElement to be used as video filter."},{"type":"method","name":"set_video_sink","type_name":"Player","ident":"clapper_player_set_video_sink","summary":"Set #GstElement to be used as video sink."},{"type":"method","name":"set_volume","type_name":"Player","ident":"clapper_player_set_volume","summary":"Set the volume of the player. The value ..."},{"type":"method","name":"stop","type_name":"Player","ident":"clapper_player_stop","summary":"Stop the playback of current media item. This ..."},{"type":"property","name":"audio-filter","type_name":"Player","summary":"Optional audio filter to use (none by default)."},{"type":"property","name":"audio-sink","type_name":"Player","summary":"Audio sink to use (autoaudiosink by default)."},{"type":"property","name":"container-format","type_name":"MediaItem","summary":"Media container format."},{"type":"property","name":"current-audio-decoder","type_name":"Player","summary":"Currently used audio decoder."},{"type":"property","name":"current-item","type_name":"Queue","summary":"Currently selected media item for playback."},{"type":"property","name":"current-video-decoder","type_name":"Player","summary":"Currently used video decoder."},{"type":"property","name":"desktop-entry","type_name":"Mpris","summary":"The basename of an installed .desktop file with the ..."},{"type":"property","name":"duration","type_name":"MediaItem","summary":"Media duration as a decimal number in seconds."},{"type":"property","name":"fallback-art-url","type_name":"Mpris","summary":"Fallback artwork to show when media does not provide one."},{"type":"property","name":"identity","type_name":"Mpris","summary":"A friendly name to identify the media player. ..."},{"type":"property","name":"mute","type_name":"Player","summary":"Mute audio without changing volume."},{"type":"property","name":"n-items","type_name":"Queue","summary":"Number of media items in the queue."},{"type":"property","name":"own-name","type_name":"Mpris","summary":"DBus name to own on connection. Must be ..."},{"type":"property","name":"position","type_name":"Player","summary":"Current playback position as a decimal number in seconds."},{"type":"property","name":"progression-mode","type_name":"Queue","summary":"Queue progression mode."},{"type":"property","name":"queue","type_name":"Player","summary":"Clapper playback queue."},{"type":"property","name":"speed","type_name":"Player","summary":"Current playback speed."},{"type":"property","name":"state","type_name":"Player","summary":"Current playback state."},{"type":"property","name":"suburis","type_name":"MediaItem","summary":"External Subtitle URIs."},{"type":"property","name":"title","type_name":"MediaItem","summary":"Media title."},{"type":"property","name":"uri","type_name":"MediaItem","summary":"Media URI."},{"type":"property","name":"video-filter","type_name":"Player","summary":"Optional video filter to use (none by default)."},{"type":"property","name":"video-sink","type_name":"Player","summary":"Video sink to use (autovideosink by default)."},{"type":"property","name":"volume","type_name":"Player","summary":"Current volume as a decimal number (1.0 = 100%). ..."},{"type":"signal","name":"error","type_name":"Player","summary":"These are normal error messages. Upon emitting this signal, ..."},{"type":"signal","name":"missing-plugin","type_name":"Player","summary":"A #GStreamer plugin or one of its features needed ..."},{"type":"signal","name":"warning","type_name":"Player","summary":"These are some usually more minor error messages that ..."},{"type":"vfunc","name":"current_media_item_changed","type_name":"Feature","summary":"Currently playing media item got changed. Item will be ..."},{"type":"vfunc","name":"media_item_updated","type_name":"Feature","summary":"An item in queue got updated. This might be ..."},{"type":"vfunc","name":"mute_changed","type_name":"Feature","summary":"Player mute state was changed."},{"type":"vfunc","name":"position_changed","type_name":"Feature","summary":"Player position was changed."},{"type":"vfunc","name":"prepare","type_name":"Feature","summary":"Prepare feature for operation (optional). This is different ..."},{"type":"vfunc","name":"queue_cleared","type_name":"Feature","summary":"All items were removed from queue. Note that in ..."},{"type":"vfunc","name":"queue_item_added","type_name":"Feature","summary":"An item was added to the queue."},{"type":"vfunc","name":"queue_item_removed","type_name":"Feature","summary":"An item was removed from queue."},{"type":"vfunc","name":"queue_progression_changed","type_name":"Feature","summary":"#ClapperQueueProgressionMode of the queue was changed."},{"type":"vfunc","name":"speed_changed","type_name":"Feature","summary":"Player speed was changed."},{"type":"vfunc","name":"state_changed","type_name":"Feature","summary":"Player state was changed."},{"type":"vfunc","name":"thread_start","type_name":"ThreadedObject","summary":"Called right after thread started. Useful for initializing ..."},{"type":"vfunc","name":"thread_stop","type_name":"ThreadedObject","summary":"Called when thread is going to stop. Useful ..."},{"type":"vfunc","name":"unprepare","type_name":"Feature","summary":"Revert the changes done in @prepare (optional)."},{"type":"vfunc","name":"volume_changed","type_name":"Feature","summary":"Player volume was changed."}],"terms":{}}
\ No newline at end of file
+{"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
diff --git a/doc/clapper/main.js b/doc/clapper/main.js
index 09ee4806..4bb0582e 100644
--- a/doc/clapper/main.js
+++ b/doc/clapper/main.js
@@ -149,7 +149,8 @@ function onKeyDown(event) {
let potentially_hidden_parent = search_input.closest('.hidden, .devhelp-hidden');
if (window.getComputedStyle(potentially_hidden_parent).display !== 'none' &&
- event.code === "KeyS" && document.activeElement !== search_input) {
+ (event.key === "s" || event.key === "S") &&
+ document.activeElement !== search_input) {
event.preventDefault();
search_input.focus();
}
diff --git a/doc/clapper/method.Discoverer.get_discovery_mode.html b/doc/clapper/method.Discoverer.get_discovery_mode.html
new file mode 100644
index 00000000..5dc5e5f0
--- /dev/null
+++ b/doc/clapper/method.Discoverer.get_discovery_mode.html
@@ -0,0 +1,211 @@
+
+
+
+
+
+ Clapper.Discoverer.get_discovery_mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
If media item is already queued for discovery or was
-discovered earlier, this funcion will simply return,
-so it is safe to call this multiple times when for
-e.g. user is scrolling through playback queue.
Gapless playback will try to re-use as much as possible of underlying
+GStreamer elements when ClapperQueue progresses, removing any
+potential gap in the data.
+
NOTE: This feature within GStreamer is rather new and
+might still cause playback issues. Disabled by default.
Set ClapperQueue media item changes to be instant.
+
Instant will try to re-use as much as possible of underlying
+GStreamer elements when ClapperMediaItem is selected, allowing
+media item change requests to be faster.
+
NOTE: This feature within GStreamer is rather new and
+might still cause playback issues. Disabled by default.
Note that server feature will run only after being added to the player.
+It can be however set to enabled earlier. If server was already added,
+changing this property allows to start/stop server at any time.
+
To be notified when server is actually running/stopped after being enabled/disabled,
+you can listen for changes to ClapperServer:running property.
@@ -132,7 +134,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
Description
- [src]
+ [src]
@@ -155,6 +157,14 @@ Each ClapperMpris instance running on the same system must have an&
+
";
}
html += "";
@@ -247,7 +292,7 @@ function getLabelForDocument(doc, meta) {
// NOTE: meta.ns added for more consistent results, otherwise
// searching for "Button" would return all signals, properties
- // and vfuncs (eg "Button.clicked") before the actual object
+ // and vfuncs (eg "Button.clicked") before the actual object
// (eg "GtkButton") because "Button" matches higher with starting
// sequences.
case "property":
@@ -288,7 +333,7 @@ function getTextForDocument(doc, meta) {
// NOTE: meta.ns added for more consistent results, otherwise
// searching for "Button" would return all signals, properties
- // and vfuncs (eg "Button.clicked") before the actual object
+ // and vfuncs (eg "Button.clicked") before the actual object
// (eg "GtkButton") because "Button" matches higher with starting
// sequences.
case "property":
diff --git a/doc/clapper/signal.Player.error.html b/doc/clapper/signal.Player.error.html
index b7ab194a..a546e9ed 100644
--- a/doc/clapper/signal.Player.error.html
+++ b/doc/clapper/signal.Player.error.html
@@ -97,7 +97,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
voidmissing_plugin(ClapperPlayer*self,
-gchar*description,
+gchar*name,gchar*installer_detail,gpointeruser_data)
@@ -138,7 +138,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
Description
- [src]
+ [src]
@@ -152,12 +152,12 @@ about what is missing and prompt him to install it with an external install
Default handler:
The default handler is called after the handlers added via g_signal_connect().
@@ -178,7 +178,7 @@ about what is missing and prompt him to install it with an external install
-
description
+
name
Type:gchar*
A localised string describing the missing feature, for use in
diff --git a/doc/clapper/signal.Player.warning.html b/doc/clapper/signal.Player.warning.html
index b2280619..f6958958 100644
--- a/doc/clapper/signal.Player.warning.html
+++ b/doc/clapper/signal.Player.warning.html
@@ -97,7 +97,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
@@ -138,7 +138,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
Description
- [src]
+ [src]
@@ -151,12 +151,12 @@ be treated like warnings. Should not generally prevent/stop playback.
Default handler:
The default handler is called after the handlers added via g_signal_connect().
Useful for reconfiguring feature, since unlike “notify” signal
+this is always called from the thread that feature works on and
+only after feature was prepared.