diff audioDB.cpp @ 385:4e68f7d4d524 api-inversion

Invert audiodb_create() / audioDB::create(). (This was straightforward, because audioDB::create() doesn't depend on having any kind of state or reading it from disk, except of course for the locks. New global functions acquire_lock() and divest_lock() [silly name, I know], to be used both within audioDB::get_lock() and audioDB::release_lock() and within (inverted) API functions directly. Eventually the audioDB:: versions will be able to go away entirely)
author mas01cr
date Fri, 21 Nov 2008 15:22:15 +0000
parents 8425d05eda33
children f6aa8c5cd865
line wrap: on
line diff
--- a/audioDB.cpp	Fri Nov 21 15:22:13 2008 +0000
+++ b/audioDB.cpp	Fri Nov 21 15:22:15 2008 +0000
@@ -1,4 +1,7 @@
 #include "audioDB.h"
+extern "C" {
+#include "audioDB_API.h"
+}
 
 LSH* SERVER_LSH_INDEX_SINGLETON;
 char* SERVER_ADB_ROOT;
@@ -840,6 +843,12 @@
   memcpy(db, dbH, O2_HEADERSIZE);
 }
 
+void audioDB::create(const char *dbName) {
+  if(!audiodb_create(dbName, datasize, ntracks, datadim)) {
+    error("Failed to create database file", dbName, "");
+  }
+}
+
 // Unit norm block of features
 
 /* FIXME: in fact this does not unit norm a block of features, it just
@@ -905,54 +914,6 @@
  * Christophe Rhodes c.rhodes@gold.ac.uk
  * Ian Knopke mas01ik@gold.ac.uk, ian.knopke@gmail.com */
 
-#include "audioDB_API.h"
-
-    adb_ptr audiodb_create(const char *path, unsigned datasize, unsigned ntracks, unsigned datadim) {
-        const char *argv[12];
-        int argvctr=0;
-        char tempstr1[200];
-        char tempstr2[200];
-        char tempstr3[200];
-        int apierror=0;
-
-
-        argv[argvctr++] = "audioDB";
-        argv[argvctr++] = "--NEW";
-        argv[argvctr++] = "-d";
-        argv[argvctr++] = path;
-
-        if (datasize >0){
-            argv[argvctr++]="--datasize";
-            snprintf(tempstr1,sizeof(tempstr1),"%u",datasize);
-            argv[argvctr++]=tempstr1;
-        }
-
-        if (ntracks >0){
-            argv[argvctr++]="--ntracks";
-            snprintf(tempstr2,sizeof(tempstr2),"%u",ntracks);
-            argv[argvctr++]=tempstr2;
-        }
-
-        if (datadim > 0){
-            argv[argvctr++]="--datadim";
-            snprintf(tempstr3,sizeof(tempstr3),"%u",datadim);
-            argv[argvctr++]=tempstr3;
-        }
-
-        argv[argvctr]='\0';
-
-        audioDB::audioDB(argvctr, argv, &apierror);
-
-        if (!apierror){ 
-            return audiodb_open(path);
-        }
-
-        /* database exists, so fail and pass NULL */
-        return NULL;
-    }
-
-
-
   int audiodb_insert(adb_ptr mydb, adb_insert_ptr ins) {
     const char *argv[15];
     int argvctr=0;