From bd85de02d5eeb2d8b63b6e085f5f717ec38e1637 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Tue, 27 Aug 2013 18:50:05 -0300 Subject: [PATCH] add dlna fields to image table. Add new fields dlna_profile and dlna_mime to provide simple information for applications that use it. --- src/lib/lightmediascanner_db.h | 2 ++ src/lib/lightmediascanner_db_image.c | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/lib/lightmediascanner_db.h b/src/lib/lightmediascanner_db.h index 2c87ec3..9744dcd 100644 --- a/src/lib/lightmediascanner_db.h +++ b/src/lib/lightmediascanner_db.h @@ -74,6 +74,8 @@ extern "C" { int64_t id; struct lms_string_size title; struct lms_string_size artist; + struct lms_string_size dlna_profile; + struct lms_string_size dlna_mime; unsigned int date; unsigned short width; unsigned short height; diff --git a/src/lib/lightmediascanner_db_image.c b/src/lib/lightmediascanner_db_image.c index 5c13398..737a05f 100644 --- a/src/lib/lightmediascanner_db_image.c +++ b/src/lib/lightmediascanner_db_image.c @@ -88,8 +88,29 @@ _db_table_updater_images_0(sqlite3 *db, const char *table, unsigned int current_ return ret; } +static int +_db_table_updater_images_1(sqlite3 *db, const char *table, unsigned int current_version, int is_last_run) +{ + int ret; + char *err; + + ret = sqlite3_exec( + db, "BEGIN TRANSACTION;" + "ALTER TABLE images ADD COLUMN dlna_profile TEXT DEFAULT NULL;" + "ALTER TABLE images ADD COLUMN dlna_mime TEXT DEFAULT NULL;" + "COMMIT;", + NULL, NULL, &err); + if (ret != SQLITE_OK) { + fprintf(stderr, "ERROR: could add columns to images table: %s\n", err); + sqlite3_free(err); + } + + return ret; +} + static lms_db_table_updater_t _db_table_updater_images[] = { - _db_table_updater_images_0 + _db_table_updater_images_0, + _db_table_updater_images_1 }; @@ -170,8 +191,8 @@ lms_db_image_start(lms_db_image_t *ldi) ldi->insert = lms_db_compile_stmt(ldi->db, "INSERT OR REPLACE INTO images (" "id, title, artist, date, width, height, orientation, " - "gps_lat, gps_long, gps_alt) VALUES (" - "?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); + "gps_lat, gps_long, gps_alt, dlna_profile, dlna_mime) VALUES (" + "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); if (!ldi->insert) return -2; @@ -264,6 +285,15 @@ _db_insert(lms_db_image_t *ldi, const struct lms_image_info *info) if (ret != 0) goto done; + ret = lms_db_bind_text(stmt, 11, info->dlna_profile.str, + info->dlna_profile.len); + if (ret != 0) + goto done; + + ret = lms_db_bind_text(stmt, 12, info->dlna_mime.str, info->dlna_mime.len); + if (ret != 0) + goto done; + r = sqlite3_step(stmt); if (r != SQLITE_DONE) { fprintf(stderr, "ERROR: could not insert image info: %s\n", -- 2.7.4