playqueue: Add a flag to disable unnecessary callbacks
The history and collection playqueues are never saved to disk, so I only care about saving when a flag is changed. Signed-off-by: Anna Schumaker <schumaker.anna@gmail.com>
This commit is contained in:
parent
b490322f55
commit
00706cc33f
|
@ -116,3 +116,4 @@ Future work:
|
|||
|
||||
- Playqueue and database inherit from common class
|
||||
- "About" dialog
|
||||
- Investigate "Bulk insert" callbacks for performance
|
||||
|
|
|
@ -12,6 +12,7 @@ enum playqueue_flags {
|
|||
PQ_ENABLED = (1 << 0),
|
||||
PQ_RANDOM = (1 << 1),
|
||||
PQ_REPEAT = (1 << 2),
|
||||
PQ_DISABLE_CHANGED_SIZE = (1 << 3),
|
||||
};
|
||||
|
||||
class Playqueue {
|
||||
|
|
|
@ -103,6 +103,7 @@ void audio :: init(int *argc, char ***argv)
|
|||
GstBus *bus;
|
||||
|
||||
o_recently_played.set_flag(PQ_REPEAT);
|
||||
o_recently_played.set_flag(PQ_DISABLE_CHANGED_SIZE);
|
||||
gst_init(argc, argv);
|
||||
|
||||
ocarina_player = gst_element_factory_make("playbin", "ocarina_player");
|
||||
|
|
|
@ -25,8 +25,10 @@ static void del_library_track(unsigned int id)
|
|||
|
||||
void deck :: init()
|
||||
{
|
||||
read();
|
||||
library_playqueue.set_flag(PQ_REPEAT);
|
||||
library_playqueue.set_flag(PQ_DISABLE_CHANGED_SIZE);
|
||||
read();
|
||||
|
||||
get_callbacks()->on_library_track_add = add_library_track;
|
||||
get_callbacks()->on_library_track_del = del_library_track;
|
||||
get_callbacks()->on_queue_changed = write;
|
||||
|
|
|
@ -105,7 +105,8 @@ unsigned int Playqueue :: add(unsigned int track_id)
|
|||
library :: lookup(track_id, &song);
|
||||
length += song.track->length;
|
||||
get_callbacks()->on_queue_track_add(this, id);
|
||||
get_callbacks()->on_queue_changed();
|
||||
if (!(flags & PQ_DISABLE_CHANGED_SIZE))
|
||||
get_callbacks()->on_queue_changed();
|
||||
return id;
|
||||
}
|
||||
|
||||
|
@ -117,7 +118,8 @@ unsigned int Playqueue :: add_front(unsigned int track_id)
|
|||
library :: lookup(track_id, &song);
|
||||
length += song.track->length;
|
||||
get_callbacks()->on_queue_track_add(this, 0);
|
||||
get_callbacks()->on_queue_changed();
|
||||
if (!(flags & PQ_DISABLE_CHANGED_SIZE))
|
||||
get_callbacks()->on_queue_changed();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -130,7 +132,8 @@ void Playqueue :: del(unsigned int plist_id)
|
|||
library :: lookup(track_id, &song);
|
||||
length -= song.track->length;
|
||||
get_callbacks()->on_queue_track_del(this, plist_id);
|
||||
get_callbacks()->on_queue_changed();
|
||||
if (!(flags & PQ_DISABLE_CHANGED_SIZE))
|
||||
get_callbacks()->on_queue_changed();
|
||||
}
|
||||
|
||||
void Playqueue :: del_track(unsigned int track_id)
|
||||
|
|
Loading…
Reference in New Issue