rb-play-order-random

rb-play-order-random — base class for weighted random play orders

Synopsis

                    RBRandomPlayOrder;
                    RBRandomPlayOrderClass;

Object Hierarchy

  GObject
   +----RBPlayOrder
         +----RBRandomPlayOrder

Description

Subclasses only need to override get_entry_weight() to return the right weight for a given entry.

This class also delays committing any changes until the user moves to the next or previous song. So if the user changes the entry-view to contain different songs, but changes it back before the current song finishes, they will not see any changes to their history of played songs.

Details

RBRandomPlayOrder

typedef struct _RBRandomPlayOrder RBRandomPlayOrder;


RBRandomPlayOrderClass

typedef struct {
	RBPlayOrderClass parent_class;

	/**
	 * This method should return a weight for the given @entry.
	 *
	 * The @db will be locked when this method is called.
	 */
	double (*get_entry_weight) (RBRandomPlayOrder *rorder, RhythmDB *db, RhythmDBEntry *entry);
} RBRandomPlayOrderClass;