/* * Copyright 2013 (c) Anna Schumaker. * * The temporary queue manager controls access to any temporary * queues created by the user. When saving to disk: * * length(tempq_list) * flags num_tracks track_0 track_1 ... track_N * flags num_tracks track_0 track_1 ... track_N */ #ifndef OCARINA_CORE_DECK_H #define OCARINA_CORE_DECK_H #include /* Called to initialize the temporary queue manager. */ void tempq_init(struct queue_ops *); /* Called to deinitialize the temporary queue manager. */ void tempq_deinit(); /* Called to save the temporary queue list. */ void tempq_save(struct queue *, enum queue_flags); /* Called to allocate a new temporary queue. */ struct queue *tempq_alloc(unsigned int); /* Called to free a temporary queue. */ void tempq_free(struct queue *); /* Called to find a temporary queue by index. */ struct queue *tempq_get(unsigned int); /* Called to find the index of a temporary queue. */ unsigned int tempq_index(struct queue *); /* Called to move a temporary queue to a new index in the list. */ void tempq_move(struct queue *, unsigned int); /* Called to find the next track to play. */ struct track *tempq_next(); /* Called to find the number of temporary queues currently allocated. */ unsigned int tempq_count(); /* Called to tell temporary queues that a track has been updated. */ void tempq_updated(struct track *); #endif /* OCARINA_CORE_DECK_H */