rb-play-order

rb-play-order —

Synopsis




typedef     RBPlayOrderPrivate;
RBPlayOrder* rb_play_order_new              (const char *play_order_name,
                                             RBShellPlayer *player);
            RBPlayOrderDescription;
const RBPlayOrderDescription* rb_play_order_get_orders
                                            (void);
void        rb_play_order_playing_source_changed
                                            (RBPlayOrder *porder,
                                             RBSource *source);
gboolean    rb_play_order_has_next          (RBPlayOrder *porder);
RhythmDBEntry* rb_play_order_get_next       (RBPlayOrder *porder);
void        rb_play_order_go_next           (RBPlayOrder *porder);
gboolean    rb_play_order_has_previous      (RBPlayOrder *porder);
RhythmDBEntry* rb_play_order_get_previous   (RBPlayOrder *porder);
void        rb_play_order_go_previous       (RBPlayOrder *porder);
RBShellPlayer* rb_play_order_get_player     (RBPlayOrder *porder);
RBSource*   rb_play_order_get_source        (RBPlayOrder *porder);
RhythmDB*   rb_play_order_get_db            (RBPlayOrder *porder);
RhythmDBEntry* rb_play_order_get_playing_entry
                                            (RBPlayOrder *porder);
gboolean    rb_play_order_player_is_playing (RBPlayOrder *porder);

Description

Details

RBPlayOrderPrivate

typedef struct RBPlayOrderPrivate RBPlayOrderPrivate;


rb_play_order_new ()

RBPlayOrder* rb_play_order_new              (const char *play_order_name,
                                             RBShellPlayer *player);

Creates a new RBPlayOrder of the specified type.

play_order_name :
player : RBShellPlayer instance to attach to
Returns : RBPlayOrder instance

RBPlayOrderDescription

typedef struct {
	/** Value of the state/play-order gconf key */
	char *name;
	/** Contents of the play order dropdown; should be gettext()ed before use. */
	char *description;
	/** the play order's _new function */
	RBPlayOrder *(*constructor)(RBShellPlayer *player);
	/** TRUE if the play order should appear in the dropdown */
	gboolean is_in_dropdown;
	/** If the value of the state/play-order gconf key isn't found, the one
	 * with is_default==TRUE will be used. */
	gboolean is_default;
} RBPlayOrderDescription;


rb_play_order_get_orders ()

const RBPlayOrderDescription* rb_play_order_get_orders
                                            (void);

Defines the set of available play orders, their translatable descriptions, their constructor functions, whether they should appear in a drop-down list of play orders, and which one is the default.

This should be the only function with full knowledge of what play orders are available.

Returns :

rb_play_order_playing_source_changed ()

void        rb_play_order_playing_source_changed
                                            (RBPlayOrder *porder,
                                             RBSource *source);

Sets the playing RBSource for the play order. Should be called by RBShellPlayer when the active source changes. Subclasses should implement playing_source_changed() to make any necessary changes.

porder : RBPlayOrder instance
source : New playing RBSource

rb_play_order_has_next ()

gboolean    rb_play_order_has_next          (RBPlayOrder *porder);

If there is no current playing entry, returns true if the play order is non-empty.

porder : RBPlayOrder instance.
Returns : true if there is an entry after the current playing entry in the play order.

rb_play_order_get_next ()

RhythmDBEntry* rb_play_order_get_next       (RBPlayOrder *porder);

porder : RBPlayOrder instance
Returns : the next entry in the play order, or the first if not currently playing.

rb_play_order_go_next ()

void        rb_play_order_go_next           (RBPlayOrder *porder);

Moves to the next entry in the play order. If not currently playing, sets the first entry in the play order as the playing entry.

porder : RBPlayOrder instance

rb_play_order_has_previous ()

gboolean    rb_play_order_has_previous      (RBPlayOrder *porder);

porder : RBPlayOrder instance
Returns : true if there is an entry before the current entry in the play order. If not currently playing, returns false.

rb_play_order_get_previous ()

RhythmDBEntry* rb_play_order_get_previous   (RBPlayOrder *porder);

porder : RBPlayOrder instance
Returns : the previous entry in the play order, or NULL if not currently playing.

rb_play_order_go_previous ()

void        rb_play_order_go_previous       (RBPlayOrder *porder);

Moves to the previous entry in the play order. If not currently playing, does nothing.

porder : RBPlayOrder instance

rb_play_order_get_player ()

RBShellPlayer* rb_play_order_get_player     (RBPlayOrder *porder);

Only for use by RBPlayOrder subclasses.

porder : RBPlayOrder instance
Returns : RBShellPlayer instance

rb_play_order_get_source ()

RBSource*   rb_play_order_get_source        (RBPlayOrder *porder);

Only for use by RBPlayOrder subclasses.

porder : RBPlayOrder instance
Returns : the playing RBSource instance.

rb_play_order_get_db ()

RhythmDB*   rb_play_order_get_db            (RBPlayOrder *porder);

Only for use by RBPlayOrder subclasses.

porder : RBPlayOrder instance
Returns : the RhythmDB instance.

rb_play_order_get_playing_entry ()

RhythmDBEntry* rb_play_order_get_playing_entry
                                            (RBPlayOrder *porder);

porder : RBPlayOrder instance
Returns : the current playing entry in the play order.

rb_play_order_player_is_playing ()

gboolean    rb_play_order_player_is_playing (RBPlayOrder *porder);

porder : RBPlayOrder instance
Returns : true if there is a current playing entry in the play order.