Mercurial > hg > audiodb
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;