ParoleProviderPlayer

## ParoleProviderPlayer ParoleProviderPlayer — The interface of the player. |

## Synopsis

                        ParoleProviderPlayerIface;
                        ParoleProviderPlayer;
    enum                ParolePluginContainer;
    enum                ParoleState;
    GtkWidget *         parole_provider_player_get_main_window
                                                            (ParoleProviderPlayer *player);
    void                parole_provider_player_pack         (ParoleProviderPlayer *player,
                                                             GtkWidget *widget,
                                                             const gchar *title,
                                                             ParolePluginContainer container);
    ParoleState         parole_provider_player_get_state    (ParoleProviderPlayer *player);
    const ParoleStream * parole_provider_player_get_stream  (ParoleProviderPlayer *player);
    gboolean            parole_provider_player_play_uri     (ParoleProviderPlayer *player,
                                                             const gchar *uri);
    gboolean            parole_provider_player_pause        (ParoleProviderPlayer *player);
    gboolean            parole_provider_player_resume       (ParoleProviderPlayer *player);
    gboolean            parole_provider_player_stop         (ParoleProviderPlayer *player);
    gboolean            parole_provider_player_seek         (ParoleProviderPlayer *player,
                                                             gdouble pos);
    void                parole_provider_player_open_media_chooser
                                                            (ParoleProviderPlayer *player);

## Object Hierarchy

      GInterface
       +----ParoleProviderPlayerIface

## Prerequisites

ParoleProviderPlayerIface requires GObject.

## Signals

      "state-changed"                                  : Run Last
      "tag-message"                                    : Run Last

## Description

The player interface that the plugins should use in order to, issue playback commands to the Parole GStreamer backend or to get information about the current playback status.

## Details

### ParoleProviderPlayerIface

    typedef struct _ParoleProviderPlayerIface ParoleProviderPlayerIface;

### ParoleProviderPlayer

    typedef struct _ParoleProviderPlayer ParoleProviderPlayer;

### enum ParolePluginContainer

    typedef enum
    {
        PAROLE_PLUGIN_CONTAINER_PLAYLIST,
        PAROLE_PLUGIN_CONTAINER_MAIN_VIEW
    } ParolePluginContainer;

### enum ParoleState

    typedef enum
    {
        PAROLE_STATE_STOPPED = 0,
        PAROLE_STATE_PLAYBACK_FINISHED,
        PAROLE_STATE_PAUSED,
        PAROLE_STATE_PLAYING

    } ParoleState;

### parole_provider_player_get_main_window ()

    GtkWidget *         parole_provider_player_get_main_window
                                                            (ParoleProviderPlayer *player);

Ask the Player to get the Parole main window.

`player` : | a ParoleProviderPlayer
Returns : | GtkWidget window.

Since 0.2

### parole_provider_player_pack ()

    void                parole_provider_player_pack         (ParoleProviderPlayer *player,
                                                             GtkWidget *widget,
                                                             const gchar *title,
                                                             ParolePluginContainer container);

Ask the player to pack a widget in the playlist notebook if PAROLE_PLUGIN_CONTAINER_PLAYLIST is specified or in the main window notebook if PAROLE_PLUGIN_CONTAINER_MAIN_VIEW is specified.

This function can be called once, the Player is responsible on removing the widget in case the plugin was unloaded.

`player` : | a ParoleProviderPlayer
`widget` : | a GtkWidget.
`title` : | title
`container` : | a ParolePluginContainer.

Since 0.2

### parole_provider_player_get_state ()

    ParoleState         parole_provider_player_get_state    (ParoleProviderPlayer *player);

Get the current state of the player.

`player` : | a ParoleProviderPlayer
Returns : | a ParoleState.

Since 0.2

### parole_provider_player_get_stream ()

    const ParoleStream * parole_provider_player_get_stream  (ParoleProviderPlayer *player);

Get the ParoleStream object.

`player` : | a ParoleProviderPlayer
Returns : | the ParoleStream object.

Since 0.2

### parole_provider_player_play_uri ()

    gboolean            parole_provider_player_play_uri     (ParoleProviderPlayer *player,
                                                             const gchar *uri);

Issue a play command on the backend for the given uri, note this function can be called only of the Parole current state is PAROLE_STATE_STOPPED.

Returning TRUE doesn't mean that the funtion succeeded to change the state of the player, the state change is indicated asynchronously by "state-changed" signal.

`player` : | a ParoleProviderPlayer
`uri` : | uri
Returns : | TRUE if the command is processed, FALSE otherwise.

Since 0.2

### parole_provider_player_pause ()

    gboolean            parole_provider_player_pause        (ParoleProviderPlayer *player);

Issue a pause command to the backend, this function can be called when the state of the player is PAROLE_STATE_PLAYING.

Returning TRUE doesn't mean that the funtion succeeded to change the state of the player, the state change is indicated asynchronously by "state-changed" signal.

`player` : | a ParoleProviderPlayer
Returns : | TRUE if the command is processed, FALSE otherwise.

Since 0.2

### parole_provider_player_resume ()

    gboolean            parole_provider_player_resume       (ParoleProviderPlayer *player);

Issue a resume command to the player, this function can be called when the current state of the player is PAROLE_STATE_PAUSED.

Returning TRUE doesn't mean that the funtion succeeded to change the state of the player, the state change is indicated asynchronously by "state-changed" signal.

`player` : | a ParoleProviderPlayer
Returns : | TRUE if the command is processed, FALSE otherwise.

Since 0.2

### parole_provider_player_stop ()

    gboolean            parole_provider_player_stop         (ParoleProviderPlayer *player);

Issue a stop command to the player.

Returning TRUE doesn't mean that the funtion succeeded to change the state of the player, the state change is indicated asynchronously by "state-changed" signal.

`player` : | a ParoleProviderPlayer
Returns : | TRUE if the command is processed, FALSE otherwise.

Since 0.2

### parole_provider_player_seek ()

    gboolean            parole_provider_player_seek         (ParoleProviderPlayer *player,
                                                             gdouble pos);

Issue a seek command.

`player` : | a ParoleProviderPlayer
`pos` : | position to seek.
Returns : | TRUE if the seek command succeeded, FALSE otherwise.

Since 0.2

### parole_provider_player_open_media_chooser ()

    void                parole_provider_player_open_media_chooser
                                                            (ParoleProviderPlayer *player);

Ask Parole to open its media chooser dialog.

`player` : | a ParoleProviderPlayer

Since 0.2

## Signal Details

### The `"state-changed"` signal

    void                user_function                      (ParoleProviderPlayerIface *player,
                                                            ParoleStream              *stream,
                                                            ParoleState                state,
                                                            gpointer                   user_data)      : Run Last

Issued when the Parole state changed.

`player` : | the object which received the signal.
`stream` : | a ParoleStream.
`state` : | the new state.
`user_data` : | user data set when the signal handler was connected.

Since 0.2

### The `"tag-message"` signal

    void                user_function                      (ParoleProviderPlayerIface *player,
                                                            ParoleStream              *stream,
                                                            gpointer                   user_data)      : Run Last

Indicated that the stream tags were found and ready to be read.

`player` : | the object which received the signal.
`stream` : | a ParoleStream.
`user_data` : | user data set when the signal handler was connected.

Since 0.2