diff --git a/inc/lektor/database.h b/inc/lektor/database.h index 0cddeaa1a7b2af6f4ae662664f9f25469c0e276d..aa2b4aab2257433c7c05e25045b290539f91ada9 100644 --- a/inc/lektor/database.h +++ b/inc/lektor/database.h @@ -114,6 +114,7 @@ bool database_search_iter(struct lkt_search *item); /* Next and prev operation on the queue. */ bool database_queue_next(volatile sqlite3 *db, char filepath[PATH_MAX]); bool database_queue_prev(volatile sqlite3 *db, char filepath[PATH_MAX]); +bool database_queue_skip_current(volatile sqlite3 *db, char filepath[PATH_MAX]); /* Set a value in the config table */ bool database_config_set (volatile sqlite3 *db, const char *section, const char *key, const char *value); diff --git a/src/database/queue.c b/src/database/queue.c index 8ff68e8410714f2e5dc0c04859ca77b7832760b5..29d275d8caf4a9a4b4d389dcb55004ec905139c4 100644 --- a/src/database/queue.c +++ b/src/database/queue.c @@ -321,6 +321,19 @@ error: return status; } +bool +database_queue_skip_current(volatile sqlite3 *db, char filepath[PATH_MAX]) +{ + if (database_queue_next(db, filepath)) + return true; + else if (database_queue_prev(db, filepath)) + return true; + else { + database_queue_stop(db); + return false; + } +} + bool database_queue_toggle_pause(volatile sqlite3 *db) {