aboutsummaryrefslogtreecommitdiffstats
path: root/src/sticker/StickerDatabase.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-12-12 13:47:57 +0100
committerMax Kellermann <max@duempel.org>2014-12-12 22:10:24 +0100
commitfed44e95b3c4bc74c8bd96eaf6f08bc6ad01ed55 (patch)
treea5c6ba9076df11690dfc45c311bb57ef2fdaf7fd /src/sticker/StickerDatabase.cxx
parent71ece564702a5d91d72f5d35fe34fe5cf9f18556 (diff)
downloadmpd-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.cxx17
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;