diff --git a/src/database/queue.c b/src/database/queue.c index 506adff264e926a82d67cbde470d410fd10aa834..5186795c81d757b9454bd09689f63b14f192c4a2 100644 --- a/src/database/queue.c +++ b/src/database/queue.c @@ -725,4 +725,19 @@ error: bool database_queue_seekid(sqlite3 *db, int id, int *out_pos) { + static const char *SQL_STMT = "SELECT position FROM queue_ WHERE kara_id = ? LIMIT 1"; + int ret; + sqlite3_stmt *stmt; + + SQLITE_PREPARE(db, stmt, SQL_STMT, error); + SQLITE_BIND_INT(db, stmt, 1, id, error); + if (SQLITE_OK != sqlite3_step(stmt)) { + fprintf(stderr, "database_queue_seekid: Failed: %s\n", sqlite3_errmsg(db)); + goto error; + } + *out_pos = sqlite3_column_int(stmt, 0); + ret = true; +error: + sqlite3_finalize(stmt); + return ret; }