summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Ørbekk <orbekk@pvv.ntnu.no>2008-08-14 17:59:57 +0200
committerKjetil Ørbekk <orbekk@pvv.ntnu.no>2008-08-14 17:59:57 +0200
commit1ecfff071d64d5b788bd718c2606ffc8428e1a02 (patch)
treefd5a62bba49cc72405c3330402c619a4c1cd6ca4
parentb1c92220ad9febbe1d7a41cbc9055146ea4c09f7 (diff)
- Add musicpath specified on command line
-rw-r--r--src/mfs_subr.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/mfs_subr.c b/src/mfs_subr.c
index ab847f7..026783c 100644
--- a/src/mfs_subr.c
+++ b/src/mfs_subr.c
@@ -54,6 +54,7 @@ int
mfs_initscan(char *musicpath)
{
int error;
+ sqlite3_stmt *st;
/* Open database. */
error = sqlite3_open(DBNAME, &handle);
@@ -62,6 +63,38 @@ mfs_initscan(char *musicpath)
sqlite3_close(handle);
return (-1);
}
+
+ /* Add path to registered paths in DB */
+ error = sqlite3_prepare_v2(handle,
+ "SELECT path FROM path WHERE path LIKE ?",
+ -1, &st, NULL);
+ if (error != SQLITE_OK) {
+ warnx("Error preparing stamtement: %s\n",
+ sqlite3_errmsg(handle));
+ return (-1);
+ }
+ sqlite3_bind_text(st, 1, musicpath, -1, SQLITE_TRANSIENT);
+ error = sqlite3_step(st);
+ if (error == SQLITE_DONE) {
+ /* Doesn't exist. Insert it */
+ error = sqlite3_prepare_v2(handle,
+ "INSERT INTO path(path) VALUES(?)",
+ -1, &st, NULL);
+ if (error != SQLITE_OK) {
+ warnx("Error preparing stamtement: %s\n",
+ sqlite3_errmsg(handle));
+ return (-1);
+ }
+ sqlite3_bind_text(st, 1, musicpath, -1, SQLITE_TRANSIENT);
+ error = sqlite3_step(st);
+ sqlite3_finalize(st);
+ if (error != SQLITE_DONE) {
+ warnx("Error inserting into database: %s\n",
+ sqlite3_errmsg(handle));
+ return (-1);
+ }
+ }
+
traverse_hierarchy(musicpath, mfs_scan);
sqlite3_close(handle);
return (0);