## SwfdecGtkPlayer SwfdecGtkPlayer — an improved SwfdecPlayer |

## Synopsis

    #include <swfdec/swfdec-gtk.h>

                        SwfdecGtkPlayer;
    #define             SWFDEC_GTK_PRIORITY_ITERATE
    #define             SWFDEC_GTK_PRIORITY_REDRAW
    SwfdecPlayer*       swfdec_gtk_player_new               (SwfdecAsDebugger *debugger);
    gboolean            swfdec_gtk_player_get_playing       (SwfdecGtkPlayer *player);
    void                swfdec_gtk_player_set_playing       (SwfdecGtkPlayer *player,
                                                             gboolean playing);
    double              swfdec_gtk_player_get_speed         (SwfdecGtkPlayer *player);
    void                swfdec_gtk_player_set_speed         (SwfdecGtkPlayer *player,
                                                             double speed);
    gboolean            swfdec_gtk_player_get_audio_enabled (SwfdecGtkPlayer *player);
    void                swfdec_gtk_player_set_audio_enabled (SwfdecGtkPlayer *player,
                                                             gboolean enabled);
    GdkWindow*          swfdec_gtk_player_get_missing_plugins_window
                                                            (SwfdecGtkPlayer *player);
    void                swfdec_gtk_player_set_missing_plugins_window
                                                            (SwfdecGtkPlayer *player,
                                                             GdkWindow *window);

## Object Hierarchy

      GObject
       +----SwfdecAsContext
             +----SwfdecPlayer
                   +----SwfdecGtkPlayer

## Properties

      "audio-enabled"            gboolean              : Read / Write
      "missing-plugins-window"   GdkWindow*            : Read / Write
      "playing"                  gboolean              : Read / Write
      "speed"                    gdouble               : Read / Write

## Description

The SwfdecGtkPlayer adds common functionality to the rather barebones SwfdecPlayer class, such as automatic playback and audio handling. Note that by default, the player will be paused, so you need to call `swfdec_gtk_player_set_playing()` on the new player.

`see_also`: SwfdecPlayer

## Details

### SwfdecGtkPlayer

    typedef struct _SwfdecGtkPlayer SwfdecGtkPlayer;

The structure for the Swfdec Gtk player contains no public fields.

### SWFDEC_GTK_PRIORITY_ITERATE

    #define SWFDEC_GTK_PRIORITY_ITERATE (GDK_PRIORITY_REDRAW + 10)

The priority used for advancing a player that is playing.

### SWFDEC_GTK_PRIORITY_REDRAW

    #define SWFDEC_GTK_PRIORITY_REDRAW  (GDK_PRIORITY_REDRAW + 20)

The priority used for scheduling repaint operations resulting from advancing a player.

### swfdec_gtk_player_new ()

    SwfdecPlayer*       swfdec_gtk_player_new               (SwfdecAsDebugger *debugger);

Creates a new Swfdec Gtk player. This function calls `swfdec_init()` for you if it wasn't called before.

`debugger` : | `NULL` or a SwfdecAsDebugger to debug this player
Returns : | The new player

### swfdec_gtk_player_get_playing ()

    gboolean            swfdec_gtk_player_get_playing       (SwfdecGtkPlayer *player);

Queries if the player is playing.

`player` : | a SwfdecGtkPlayer
Returns : | `TRUE` if the player is playing

### swfdec_gtk_player_set_playing ()

    void                swfdec_gtk_player_set_playing       (SwfdecGtkPlayer *player,
                                                             gboolean playing);

Sets if `player` should be playing or not. If the player is playing, a timer will be attached to the default main loop that periodically calls `swfdec_player_advance()`.

`player` : | a SwfdecGtkPlayer
`playing` : | if the player should play or not

### swfdec_gtk_player_get_speed ()

    double              swfdec_gtk_player_get_speed         (SwfdecGtkPlayer *player);

Queries the current playback speed. If the player is currently paused, it will report the speed that it would use if playing.

`player` : | a SwfdecGtkPlayer
Returns : | the current playback speed.

### swfdec_gtk_player_set_speed ()

    void                swfdec_gtk_player_set_speed         (SwfdecGtkPlayer *player,
                                                             double speed);

Sets the new playback speed. 1.0 means the default speed, bigger values make playback happen faster. Audio will only play back if the speed is 1.0. Note that if the player is not playing when calling this function, it will not automatically start.

`player` : | a SwfdecGtkPlayer
`speed` : | the new playback speed

### swfdec_gtk_player_get_audio_enabled ()

    gboolean            swfdec_gtk_player_get_audio_enabled (SwfdecGtkPlayer *player);

Queries if audio playback for `player` is enabled or not.

`player` : | a SwfdecGtkPlayer
Returns : | `TRUE` if audio playback is enabled

### swfdec_gtk_player_set_audio_enabled ()

    void                swfdec_gtk_player_set_audio_enabled (SwfdecGtkPlayer *player,
                                                             gboolean enabled);

Enables or disables automatic audio playback.

`player` : | a SwfdecGtkPlayer
`enabled` : | `TRUE` to enable audio

### swfdec_gtk_player_get_missing_plugins_window ()

    GdkWindow*          swfdec_gtk_player_get_missing_plugins_window
                                                            (SwfdecGtkPlayer *player);

Gets the window used for automatic codec install. See `swfdec_gtk_player_set_missing_plugins_window()` for details.

`player` : | a SwfdecPlayer
Returns : | the GdkWindow used as parent for showing missing plugin dialogs or `NULL` if automatic codec install is disabled.

### swfdec_gtk_player_set_missing_plugins_window ()

    void                swfdec_gtk_player_set_missing_plugins_window
                                                            (SwfdecGtkPlayer *player,
                                                             GdkWindow *window);

Sets a given GdkWindow to be used as the reference window when popping up automatic codec install dialogs. Automatic codec install happens when Swfdec cannot find a GStreamer plugin to play back a given media file. The player will automaticcaly pause when this happens to allow the plugin install to finish and will resume playback after the codec install has completed. You can use `NULL` to disable this feature. It is disable by default. Note that this function takes a GdkWindow, not a GtkWindow, as its argument. This makes it slightly more inconvenient to use, as you need to call `gtk_widget_show()` on your GtkWindow before having access to its GdkWindow, but it allows automatic plugin installatio even when your application does not have a window. You can use `gdk_get_default_root_window()` to obtain a default window in that case. For details about automatic codec install, see the GStreamer documentation, in particular the function `gst_install_plugins_async()`. If Swfdec was compiled without GStreamer support, this function will have no effect.

`player` : | a SwfdecGtkPlayer
`window` : | the window to use for popping up codec install dialogs or `NULL`

## Property Details

### The `"audio-enabled"` property

      "audio-enabled"            gboolean              : Read / Write

TRUE if automatic audio handling is enabled.

Default value: TRUE

### The `"missing-plugins-window"` property

      "missing-plugins-window"   GdkWindow*            : Read / Write

window on which to do autmatic missing plugins installation.

### The `"playing"` property

      "playing"                  gboolean              : Read / Write

TRUE if the player is playing (d'oh).

Default value: FALSE

### The `"speed"` property

      "speed"                    gdouble               : Read / Write

desired playback speed.

Allowed values: >= G_MINDOUBLE

Default value: 1