diff options
author | Max Kellermann <max@duempel.org> | 2014-12-12 13:47:57 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-12-12 22:10:24 +0100 |
commit | fed44e95b3c4bc74c8bd96eaf6f08bc6ad01ed55 (patch) | |
tree | a5c6ba9076df11690dfc45c311bb57ef2fdaf7fd /src/sticker/StickerDatabase.cxx | |
parent | 71ece564702a5d91d72f5d35fe34fe5cf9f18556 (diff) | |
download | mpd-fed44e95b3c4bc74c8bd96eaf6f08bc6ad01ed55.tar.gz mpd-fed44e95b3c4bc74c8bd96eaf6f08bc6ad01ed55.tar.xz mpd-fed44e95b3c4bc74c8bd96eaf6f08bc6ad01ed55.zip |
sticker/Song: add enum StickerOperator to sticker_song_find()
Diffstat (limited to '')
-rw-r--r-- | src/sticker/StickerDatabase.cxx | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/sticker/StickerDatabase.cxx b/src/sticker/StickerDatabase.cxx index e1e5d76ab..3c1245a6e 100644 --- a/src/sticker/StickerDatabase.cxx +++ b/src/sticker/StickerDatabase.cxx @@ -370,6 +370,7 @@ sticker_load(const char *type, const char *uri, Error &error) static sqlite3_stmt * BindFind(const char *type, const char *base_uri, const char *name, + StickerOperator op, const char *value, Error &error) { assert(type != nullptr); @@ -378,12 +379,21 @@ BindFind(const char *type, const char *base_uri, const char *name, if (base_uri == nullptr) base_uri = ""; - return BindAllOrNull(error, sticker_stmt[STICKER_SQL_FIND], - type, base_uri, name); + switch (op) { + case StickerOperator::EXISTS: + return BindAllOrNull(error, sticker_stmt[STICKER_SQL_FIND], + type, base_uri, name); + } + + (void)value; + + assert(false); + gcc_unreachable(); } bool sticker_find(const char *type, const char *base_uri, const char *name, + StickerOperator op, const char *value, void (*func)(const char *uri, const char *value, void *user_data), void *user_data, @@ -392,7 +402,8 @@ sticker_find(const char *type, const char *base_uri, const char *name, assert(func != nullptr); assert(sticker_enabled()); - sqlite3_stmt *const stmt = BindFind(type, base_uri, name, error); + sqlite3_stmt *const stmt = BindFind(type, base_uri, name, op, value, + error); if (stmt == nullptr) return false; |