## RygelPlayerController

RygelPlayerController — This class keeps track of global states that are not dependant on the RygelMediaPlayer.

## Functions

gboolean | rygel_player_controller_next ()
gboolean | rygel_player_controller_previous ()
void | rygel_player_controller_set_single_play_uri ()
void | rygel_player_controller_set_playlist_uri ()
void | rygel_player_controller_set_next_single_play_uri ()
void | rygel_player_controller_set_next_playlist_uri ()
gboolean | rygel_player_controller_is_play_mode_valid ()
gchar * | rygel_player_controller_unescape ()
const gchar * | rygel_player_controller_get_playback_state ()
void | rygel_player_controller_set_playback_state ()
guint | rygel_player_controller_get_n_tracks ()
void | rygel_player_controller_set_n_tracks ()
guint | rygel_player_controller_get_track ()
void | rygel_player_controller_set_track ()
gchar * | rygel_player_controller_get_uri ()
void | rygel_player_controller_set_uri ()
gchar * | rygel_player_controller_get_metadata ()
void | rygel_player_controller_set_metadata ()
gchar * | rygel_player_controller_get_track_uri ()
void | rygel_player_controller_set_track_uri ()
gchar * | rygel_player_controller_get_track_metadata ()
void | rygel_player_controller_set_track_metadata ()
gchar * | rygel_player_controller_get_next_uri ()
void | rygel_player_controller_set_next_uri ()
gchar * | rygel_player_controller_get_next_metadata ()
void | rygel_player_controller_set_next_metadata ()
gchar * | rygel_player_controller_get_current_transport_actions ()
const gchar * | rygel_player_controller_get_play_mode ()
void | rygel_player_controller_set_play_mode ()
gboolean | rygel_player_controller_get_can_pause ()

## Properties

gboolean | can-pause | Read
gchar * | current-transport-actions | Read
gchar * | metadata | Read / Write
guint | n-tracks | Read / Write
gchar * | next-metadata | Read / Write
gchar * | next-uri | Read / Write
gchar * | play-mode | Read / Write
gchar * | playback-state | Read / Write
guint | track | Read / Write
gchar * | track-metadata | Read / Write
gchar * | track-uri | Read / Write
gchar * | uri | Read / Write

## Types and Values

| RygelPlayerController
struct | RygelPlayerControllerIface

## Object Hierarchy

        GInterface
        ╰── RygelPlayerController

## Prerequisites

RygelPlayerController requires GObject.

## Description

These states are: # URI # MetaData # Number of tracks # Current track # Playback state

In case of playlists this class will also control the player. It needs to proxy the playback state to react on end of item to be able to switch to the next item.

## Functions

### rygel_player_controller_next ()

    gboolean
    rygel_player_controller_next (RygelPlayerController *self);

#### Parameters

self | the RygelPlayerController instance |

### rygel_player_controller_previous ()

    gboolean
    rygel_player_controller_previous (RygelPlayerController *self);

#### Parameters

self | the RygelPlayerController instance |

### rygel_player_controller_set_single_play_uri ()

    void
    rygel_player_controller_set_single_play_uri
                                   (RygelPlayerController *self,
                                    const gchar *uri,
                                    const gchar *metadata,
                                    const gchar *mime,
                                    const gchar *features);

#### Parameters

self | the RygelPlayerController instance |
uri |  |
metadata |  |
mime |  |
features |  |

### rygel_player_controller_set_playlist_uri ()

    void
    rygel_player_controller_set_playlist_uri
                                   (RygelPlayerController *self,
                                    const gchar *uri,
                                    const gchar *metadata,
                                    GUPnPMediaCollection *collection);

#### Parameters

self | the RygelPlayerController instance |
uri |  |
metadata |  |
collection |  |

### rygel_player_controller_set_next_single_play_uri ()

    void
    rygel_player_controller_set_next_single_play_uri
                                   (RygelPlayerController *self,
                                    const gchar *uri,
                                    const gchar *metadata,
                                    const gchar *mime,
                                    const gchar *features);

#### Parameters

self | the RygelPlayerController instance |
uri |  |
metadata |  |
mime |  |
features |  |

### rygel_player_controller_set_next_playlist_uri ()

    void
    rygel_player_controller_set_next_playlist_uri
                                   (RygelPlayerController *self,
                                    const gchar *uri,
                                    const gchar *metadata,
                                    GUPnPMediaCollection *collection);

#### Parameters

self | the RygelPlayerController instance |
uri |  |
metadata |  |
collection |  |

### rygel_player_controller_is_play_mode_valid ()

    gboolean
    rygel_player_controller_is_play_mode_valid
                                   (RygelPlayerController *self,
                                    const gchar *play_mode);

#### Parameters

self | the RygelPlayerController instance |
play_mode |  |

### rygel_player_controller_unescape ()

    gchar *
    rygel_player_controller_unescape (RygelPlayerController *self,
                                      const gchar *input);

#### Parameters

self | the RygelPlayerController instance |
input |  |

### rygel_player_controller_get_playback_state ()

    const gchar *
    rygel_player_controller_get_playback_state
                                   (RygelPlayerController *self);

Get and return the current value of the "playback-state" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "playback-state" property

### rygel_player_controller_set_playback_state ()

    void
    rygel_player_controller_set_playback_state
                                   (RygelPlayerController *self,
                                    const gchar *value);

Set the value of the "playback-state" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "playback-state" property |

### rygel_player_controller_get_n_tracks ()

    guint
    rygel_player_controller_get_n_tracks (RygelPlayerController *self);

Get and return the current value of the "n-tracks" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "n-tracks" property

### rygel_player_controller_set_n_tracks ()

    void
    rygel_player_controller_set_n_tracks (RygelPlayerController *self,
                                          guint value);

Set the value of the "n-tracks" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "n-tracks" property |

### rygel_player_controller_get_track ()

    guint
    rygel_player_controller_get_track (RygelPlayerController *self);

Get and return the current value of the "track" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "track" property

### rygel_player_controller_set_track ()

    void
    rygel_player_controller_set_track (RygelPlayerController *self,
                                       guint value);

Set the value of the "track" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "track" property |

### rygel_player_controller_get_uri ()

    gchar *
    rygel_player_controller_get_uri (RygelPlayerController *self);

Get and return the current value of the "uri" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "uri" property

### rygel_player_controller_set_uri ()

    void
    rygel_player_controller_set_uri (RygelPlayerController *self,
                                     const gchar *value);

Set the value of the "uri" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "uri" property |

### rygel_player_controller_get_metadata ()

    gchar *
    rygel_player_controller_get_metadata (RygelPlayerController *self);

Get and return the current value of the "metadata" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "metadata" property

### rygel_player_controller_set_metadata ()

    void
    rygel_player_controller_set_metadata (RygelPlayerController *self,
                                          const gchar *value);

Set the value of the "metadata" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "metadata" property |

### rygel_player_controller_get_track_uri ()

    gchar *
    rygel_player_controller_get_track_uri (RygelPlayerController *self);

Get and return the current value of the "track-uri" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "track-uri" property

### rygel_player_controller_set_track_uri ()

    void
    rygel_player_controller_set_track_uri (RygelPlayerController *self,
                                           const gchar *value);

Set the value of the "track-uri" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "track-uri" property |

### rygel_player_controller_get_track_metadata ()

    gchar *
    rygel_player_controller_get_track_metadata
                                   (RygelPlayerController *self);

Get and return the current value of the "track-metadata" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "track-metadata" property

### rygel_player_controller_set_track_metadata ()

    void
    rygel_player_controller_set_track_metadata
                                   (RygelPlayerController *self,
                                    const gchar *value);

Set the value of the "track-metadata" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "track-metadata" property |

### rygel_player_controller_get_next_uri ()

    gchar *
    rygel_player_controller_get_next_uri (RygelPlayerController *self);

Get and return the current value of the "next-uri" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "next-uri" property

### rygel_player_controller_set_next_uri ()

    void
    rygel_player_controller_set_next_uri (RygelPlayerController *self,
                                          const gchar *value);

Set the value of the "next-uri" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "next-uri" property |

### rygel_player_controller_get_next_metadata ()

    gchar *
    rygel_player_controller_get_next_metadata
                                   (RygelPlayerController *self);

Get and return the current value of the "next-metadata" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "next-metadata" property

### rygel_player_controller_set_next_metadata ()

    void
    rygel_player_controller_set_next_metadata
                                   (RygelPlayerController *self,
                                    const gchar *value);

Set the value of the "next-metadata" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "next-metadata" property |

### rygel_player_controller_get_current_transport_actions ()

    gchar *
    rygel_player_controller_get_current_transport_actions
                                   (RygelPlayerController *self);

Get and return the current value of the "current-transport-actions" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "current-transport-actions" property

### rygel_player_controller_get_play_mode ()

    const gchar *
    rygel_player_controller_get_play_mode (RygelPlayerController *self);

Get and return the current value of the "play-mode" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "play-mode" property

### rygel_player_controller_set_play_mode ()

    void
    rygel_player_controller_set_play_mode (RygelPlayerController *self,
                                           const gchar *value);

Set the value of the "play-mode" property to `value` .

#### Parameters

self | the RygelPlayerController instance to modify |
value | the new value of the "play-mode" property |

### rygel_player_controller_get_can_pause ()

    gboolean
    rygel_player_controller_get_can_pause (RygelPlayerController *self);

Get and return the current value of the "can-pause" property.

#### Parameters

self | the RygelPlayerController instance to query |

#### Returns

the value of the "can-pause" property

## Types and Values

### RygelPlayerController

    typedef struct _RygelPlayerController RygelPlayerController;

This class keeps track of global states that are not dependant on the RygelMediaPlayer.

These states are: # URI # MetaData # Number of tracks # Current track # Playback state

In case of playlists this class will also control the player. It needs to proxy the playback state to react on end of item to be able to switch to the next item.

### struct RygelPlayerControllerIface

    struct RygelPlayerControllerIface {
    	GTypeInterface parent_iface;
    	gboolean (*next) (RygelPlayerController* self);
    	gboolean (*previous) (RygelPlayerController* self);
    	void (*set_single_play_uri) (RygelPlayerController* self, const gchar* uri, const gchar* metadata, const gchar* mime, const gchar* features);
    	void (*set_playlist_uri) (RygelPlayerController* self, const gchar* uri, const gchar* metadata, GUPnPMediaCollection* collection);
    	void (*set_next_single_play_uri) (RygelPlayerController* self, const gchar* uri, const gchar* metadata, const gchar* mime, const gchar* features);
    	void (*set_next_playlist_uri) (RygelPlayerController* self, const gchar* uri, const gchar* metadata, GUPnPMediaCollection* collection);
    	gboolean (*is_play_mode_valid) (RygelPlayerController* self, const gchar* play_mode);
    	const gchar* (*get_playback_state) (RygelPlayerController* self);
    	void (*set_playback_state) (RygelPlayerController* self, const gchar* value);
    	guint (*get_n_tracks) (RygelPlayerController* self);
    	void (*set_n_tracks) (RygelPlayerController* self, guint value);
    	guint (*get_track) (RygelPlayerController* self);
    	void (*set_track) (RygelPlayerController* self, guint value);
    	gchar* (*get_uri) (RygelPlayerController* self);
    	void (*set_uri) (RygelPlayerController* self, const gchar* value);
    	gchar* (*get_metadata) (RygelPlayerController* self);
    	void (*set_metadata) (RygelPlayerController* self, const gchar* value);
    	gchar* (*get_track_uri) (RygelPlayerController* self);
    	void (*set_track_uri) (RygelPlayerController* self, const gchar* value);
    	gchar* (*get_track_metadata) (RygelPlayerController* self);
    	void (*set_track_metadata) (RygelPlayerController* self, const gchar* value);
    	gchar* (*get_next_uri) (RygelPlayerController* self);
    	void (*set_next_uri) (RygelPlayerController* self, const gchar* value);
    	gchar* (*get_next_metadata) (RygelPlayerController* self);
    	void (*set_next_metadata) (RygelPlayerController* self, const gchar* value);
    	gchar* (*get_current_transport_actions) (RygelPlayerController* self);
    	const gchar* (*get_play_mode) (RygelPlayerController* self);
    	void (*set_play_mode) (RygelPlayerController* self, const gchar* value);
    	gboolean (*get_can_pause) (RygelPlayerController* self);
    };

Interface for creating RygelPlayerController implementations.

#### Members

GTypeInterface `parent_iface`; | the parent interface structure |
`next` () | virtual method called by `rygel_player_controller_next()` |
`previous` () | virtual method called by `rygel_player_controller_previous()` |
`set_single_play_uri` () | virtual method called by `rygel_player_controller_set_single_play_uri()` |
`set_playlist_uri` () | virtual method called by `rygel_player_controller_set_playlist_uri()` |
`set_next_single_play_uri` () | virtual method called by `rygel_player_controller_set_next_single_play_uri()` |
`set_next_playlist_uri` () | virtual method called by `rygel_player_controller_set_next_playlist_uri()` |
`is_play_mode_valid` () | virtual method called by `rygel_player_controller_is_play_mode_valid()` |
`get_playback_state` () | getter method for the abstract property "playback-state" |
`set_playback_state` () | setter method for the abstract property "playback-state" |
`get_n_tracks` () | getter method for the abstract property "n-tracks" |
`set_n_tracks` () | setter method for the abstract property "n-tracks" |
`get_track` () | getter method for the abstract property "track" |
`set_track` () | setter method for the abstract property "track" |
`get_uri` () | getter method for the abstract property "uri" |
`set_uri` () | setter method for the abstract property "uri" |
`get_metadata` () | getter method for the abstract property "metadata" |
`set_metadata` () | setter method for the abstract property "metadata" |
`get_track_uri` () | getter method for the abstract property "track-uri" |
`set_track_uri` () | setter method for the abstract property "track-uri" |
`get_track_metadata` () | getter method for the abstract property "track-metadata" |
`set_track_metadata` () | setter method for the abstract property "track-metadata" |
`get_next_uri` () | getter method for the abstract property "next-uri" |
`set_next_uri` () | setter method for the abstract property "next-uri" |
`get_next_metadata` () | getter method for the abstract property "next-metadata" |
`set_next_metadata` () | setter method for the abstract property "next-metadata" |
`get_current_transport_actions` () | getter method for the abstract property "current-transport-actions" |
`get_play_mode` () | getter method for the abstract property "play-mode" |
`set_play_mode` () | setter method for the abstract property "play-mode" |
`get_can_pause` () | getter method for the abstract property "can-pause" |

## Property Details

### The `“can-pause”` property

      “can-pause”                gboolean

can-pause.

Flags: Read

Default value: FALSE

### The `“current-transport-actions”` property

      “current-transport-actions” gchar *

current-transport-actions.

Flags: Read

Default value: NULL

### The `“metadata”` property

      “metadata”                 gchar *

metadata.

Flags: Read / Write

Default value: NULL

### The `“n-tracks”` property

      “n-tracks”                 guint

n-tracks.

Flags: Read / Write

Default value: 0

### The `“next-metadata”` property

      “next-metadata”            gchar *

next-metadata.

Flags: Read / Write

Default value: NULL

### The `“next-uri”` property

      “next-uri”                 gchar *

next-uri.

Flags: Read / Write

Default value: NULL

### The `“play-mode”` property

      “play-mode”                gchar *

play-mode.

Flags: Read / Write

Default value: NULL

### The `“playback-state”` property

      “playback-state”           gchar *

playback-state.

Flags: Read / Write

Default value: NULL

### The `“track”` property

      “track”                    guint

track.

Flags: Read / Write

Default value: 0

### The `“track-metadata”` property

      “track-metadata”           gchar *

track-metadata.

Flags: Read / Write

Default value: NULL

### The `“track-uri”` property

      “track-uri”                gchar *

track-uri.

Flags: Read / Write

Default value: NULL

### The `“uri”` property

      “uri”                      gchar *

uri.

Flags: Read / Write

Default value: NULL