Class
RBPlayOrder
Description [src]
class RB.PlayOrder : GObject.Object
{
priv: RBPlayOrderPrivate*
}
A play order defines an ordering of the entries from a RhythmDBQueryModel
that
the RBShellPlayer
uses to get the next or previous entry to play.
Play order methods are invoked when changes are made to the query model, when the query model is replaced, the playing source is changed, or a new playing entry is selected.
The play order must implement methods to check for, retrieve, and move to the next and previous entries in the play order. Only the go_next and go_previous methods actually change anything.
The play order should also emit the have-next-previous-changed signal to hint that the availability of either a next or previous entry in the order may have changed. This information is used to update the sensitivity of the next and previous buttons.
Instance methods
rb_play_order_get_next
Returns the next entry in the play order, or the first if not currently playing.
rb_play_order_get_previous
Returns the previous entry in the play order, or NULL if not currently playing.
rb_play_order_go_next
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.
rb_play_order_go_previous
Moves to the previous entry in the play order. If not currently playing, does nothing.
rb_play_order_has_next
If there is no current playing entry, returns true if the play order is non-empty.
rb_play_order_has_previous
Returns TRUE
if there is an entry before the current entry in the play order.
If not currently playing, returns FALSE
.
rb_play_order_model_not_empty
Returns TRUE
if the RhythmDBQueryModel
is not empty.
Can be used to implement has_next and has_previous for play orders
that have no beginning or end.
rb_play_order_playing_source_changed
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.
rb_play_order_query_model_changed
Updates the RhythmDBQueryModel
instance for the play order.
Called from the RBSource
notify signal handler, and also from
rb_play_order_source_changed. Subclasses should implement
query_model_changed()
to make any necessary adjustments if they
store any state based on the contents of the RhythmDBQueryModel
.
Signals
RB.PlayOrder::have-next-previous-changed
Emitted as a hint to suggest that the sensitivity of next/previous buttons may need to be updated.
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.
Class structure
struct RBPlayOrderClass {
GObjectClass parent_class;
void (* playing_source_changed) (
RBPlayOrder* porder
);
void (* db_changed) (
RBPlayOrder* porder,
RhythmDB* new_db
);
void (* playing_entry_changed) (
RBPlayOrder* porder,
RhythmDBEntry* old_entry,
RhythmDBEntry* new_entry
);
void (* entry_added) (
RBPlayOrder* porder,
RhythmDBEntry* entry
);
void (* entry_removed) (
RBPlayOrder* porder,
RhythmDBEntry* entry
);
void (* query_model_changed) (
RBPlayOrder* porder
);
void (* db_entry_deleted) (
RBPlayOrder* porder,
RhythmDBEntry* entry
);
void (* playing_entry_removed) (
RBPlayOrder* porder,
RhythmDBEntry* entry
);
gboolean (* has_next) (
RBPlayOrder* porder
);
RhythmDBEntry* (* get_next) (
RBPlayOrder* porder
);
void (* go_next) (
RBPlayOrder* porder
);
gboolean (* has_previous) (
RBPlayOrder* porder
);
RhythmDBEntry* (* get_previous) (
RBPlayOrder* porder
);
void (* go_previous) (
RBPlayOrder* porder
);
void (* have_next_previous_changed) (
RBPlayOrder* porder,
gboolean have_next,
gboolean have_previous
);
}
No description available.
Class members
parent_class: GObjectClass
No description available.
playing_source_changed: void (* playing_source_changed) ( RBPlayOrder* porder )
No description available.
db_changed: void (* db_changed) ( RBPlayOrder* porder, RhythmDB* new_db )
No description available.
playing_entry_changed: void (* playing_entry_changed) ( RBPlayOrder* porder, RhythmDBEntry* old_entry, RhythmDBEntry* new_entry )
No description available.
entry_added: void (* entry_added) ( RBPlayOrder* porder, RhythmDBEntry* entry )
No description available.
entry_removed: void (* entry_removed) ( RBPlayOrder* porder, RhythmDBEntry* entry )
No description available.
query_model_changed: void (* query_model_changed) ( RBPlayOrder* porder )
No description available.
db_entry_deleted: void (* db_entry_deleted) ( RBPlayOrder* porder, RhythmDBEntry* entry )
No description available.
playing_entry_removed: void (* playing_entry_removed) ( RBPlayOrder* porder, RhythmDBEntry* entry )
No description available.
has_next: gboolean (* has_next) ( RBPlayOrder* porder )
No description available.
get_next: RhythmDBEntry* (* get_next) ( RBPlayOrder* porder )
No description available.
go_next: void (* go_next) ( RBPlayOrder* porder )
No description available.
has_previous: gboolean (* has_previous) ( RBPlayOrder* porder )
No description available.
get_previous: RhythmDBEntry* (* get_previous) ( RBPlayOrder* porder )
No description available.
go_previous: void (* go_previous) ( RBPlayOrder* porder )
No description available.
have_next_previous_changed: void (* have_next_previous_changed) ( RBPlayOrder* porder, gboolean have_next, gboolean have_previous )
No description available.
Virtual methods
RB.PlayOrderClass.get_next
Returns the next entry in the play order, or the first if not currently playing.
RB.PlayOrderClass.get_previous
Returns the previous entry in the play order, or NULL if not currently playing.
RB.PlayOrderClass.go_next
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.
RB.PlayOrderClass.go_previous
Moves to the previous entry in the play order. If not currently playing, does nothing.
RB.PlayOrderClass.has_next
If there is no current playing entry, returns true if the play order is non-empty.
RB.PlayOrderClass.has_previous
Returns TRUE
if there is an entry before the current entry in the play order.
If not currently playing, returns FALSE
.
RB.PlayOrderClass.query_model_changed
Updates the RhythmDBQueryModel
instance for the play order.
Called from the RBSource
notify signal handler, and also from
rb_play_order_source_changed. Subclasses should implement
query_model_changed()
to make any necessary adjustments if they
store any state based on the contents of the RhythmDBQueryModel
.