changeset 28:5485586a5378 audiodb-debian

Merged trunk changes -r39:43 onto audiodb-debian branch Updated changelog with new version
author mas01cr
date Thu, 16 Aug 2007 11:42:19 +0000
parents e614ae0ebfe1
children e736c35de0f6
files Makefile audioDB.cpp audioDB.h debian/changelog
diffstat 4 files changed, 21 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Thu Aug 16 10:50:34 2007 +0000
+++ b/Makefile	Thu Aug 16 11:42:19 2007 +0000
@@ -24,4 +24,5 @@
 	-rm cmdline.c cmdline.h
 	-rm soapServer.cpp soapClient.cpp soapC.cpp soapObject.h soapStub.h soapProxy.h soapH.h soapServerLib.cpp soapClientLib.cpp
 	-rm adb.nsmap adb.xsd adb.wsdl adb.query.req.xml adb.query.res.xml adb.status.req.xml adb.status.res.xml
+	-rm README.txt
 	-rm ${EXECUTABLE} ${EXECUTABLE}.1
--- a/audioDB.cpp	Thu Aug 16 10:50:34 2007 +0000
+++ b/audioDB.cpp	Thu Aug 16 11:42:19 2007 +0000
@@ -470,9 +470,9 @@
 
 // initTables - memory map files passed as arguments
 // Precondition: database has already been created
-void audioDB::initTables(const char* dbName, const char* inFile=0){
-  if ((dbfid = open (dbName, O_RDWR)) < 0)
-    error("Can't open database file:", dbName);
+void audioDB::initTables(const char* dbName, bool forWrite, const char* inFile=0){
+  if ((dbfid = open (dbName, forWrite ? O_RDWR : O_RDONLY)) < 0)
+    error("Can't open database file", dbName);
   
   // open the input file
   if (inFile && (infid = open (inFile, O_RDONLY)) < 0)
@@ -518,7 +518,7 @@
     error("mmap error for input");
 
   // mmap the database file
-  if ((db = (char*) mmap(0, O2_DEFAULTDBSIZE, PROT_READ | PROT_WRITE,
+  if ((db = (char*) mmap(0, O2_DEFAULTDBSIZE, PROT_READ | (forWrite ? PROT_WRITE : 0),
 			 MAP_SHARED, dbfid, 0)) == (caddr_t) -1)
     error("mmap error for creating database");
 
@@ -533,7 +533,7 @@
 
 void audioDB::insert(const char* dbName, const char* inFile){
 
-  initTables(dbName, inFile);
+  initTables(dbName, 1, inFile);
 
   if(!usingTimes && (dbH->flags & O2_FLAG_TIMES))
     error("Must use timestamps with timestamped database","use --times");
@@ -666,7 +666,7 @@
 void audioDB::batchinsert(const char* dbName, const char* inFile){
 
   if ((dbfid = open (dbName, O_RDWR)) < 0)
-    error("Can't open database file:", dbName);
+    error("Can't open database file", dbName);
 
   if(!key)
     key=inFile;
@@ -886,7 +886,7 @@
 
 void audioDB::status(const char* dbName){
   if(!dbH)
-    initTables(dbName, 0);
+    initTables(dbName, 0, 0);
   
   // Update Header information
   cout << "num files:" << dbH->numFiles << endl;
@@ -915,7 +915,7 @@
 
 void audioDB::dump(const char* dbName){
   if(!dbH)
-    initTables(dbName,0);
+    initTables(dbName, 0, 0);
   
   for(unsigned k=0, j=0; k<dbH->numFiles; k++){
     cout << fileTable+k*O2_FILETABLESIZE << " " << trackTable[k] << endl;
@@ -926,7 +926,7 @@
 }
 
 void audioDB::l2norm(const char* dbName){
-  initTables(dbName,0);
+  initTables(dbName, 0, 0);
   if(dbH->length>0){
     unsigned numVectors = dbH->length/(sizeof(double)*dbH->dim);
     unitNormAndInsertL2(dataBuf, dbH->dim, numVectors, 0); // No append
@@ -970,7 +970,7 @@
 // Basic point query engine
 void audioDB::pointQuery(const char* dbName, const char* inFile, adb__queryResult *adbQueryResult){
   
-  initTables(dbName, inFile);
+  initTables(dbName, 0, inFile);
   
   // For each input vector, find the closest pointNN matching output vectors and report
   // we use stdout in this stub version
@@ -1144,7 +1144,7 @@
 // return the trackNN closest tracks to the query track
 // uses average of pointNN points per track 
 void audioDB::trackPointQuery(const char* dbName, const char* inFile, adb__queryResult *adbQueryResult){  
-  initTables(dbName, inFile);
+  initTables(dbName, 0, inFile);
   
   // For each input vector, find the closest pointNN matching output vectors and report
   unsigned numVectors = (statbuf.st_size-sizeof(int))/(sizeof(double)*dbH->dim);
@@ -1395,7 +1395,7 @@
 // outputs distances of retrieved shingles, max retreived = pointNN shingles per per track
 void audioDB::trackSequenceQueryNN(const char* dbName, const char* inFile, adb__queryResult *adbQueryResult){
   
-  initTables(dbName, inFile);
+  initTables(dbName, 0, inFile);
   
   // For each input vector, find the closest pointNN matching output vectors and report
   // we use stdout in this stub version
@@ -1889,7 +1889,7 @@
 // outputs count of retrieved shingles, max retreived = one shingle per query shingle per track
 void audioDB::trackSequenceQueryRad(const char* dbName, const char* inFile, adb__queryResult *adbQueryResult){
   
-  initTables(dbName, inFile);
+  initTables(dbName, 0, inFile);
   
   // For each input vector, find the closest pointNN matching output vectors and report
   // we use stdout in this stub version
--- a/audioDB.h	Thu Aug 16 10:50:34 2007 +0000
+++ b/audioDB.h	Thu Aug 16 11:42:19 2007 +0000
@@ -221,7 +221,7 @@
   void trackSequenceQueryNN(const char* dbName, const char* inFile, adb__queryResult *adbQueryResult=0);
   void trackSequenceQueryRad(const char* dbName, const char* inFile, adb__queryResult *adbQueryResult=0);
 
-  void initTables(const char* dbName, const char* inFile);
+  void initTables(const char* dbName, bool forWrite, const char* inFile);
   void unitNorm(double* X, unsigned d, unsigned n, double* qNorm);
   void unitNormAndInsertL2(double* X, unsigned dim, unsigned n, unsigned append);
   void normalize(double* X, int dim, int n);
--- a/debian/changelog	Thu Aug 16 10:50:34 2007 +0000
+++ b/debian/changelog	Thu Aug 16 11:42:19 2007 +0000
@@ -1,3 +1,9 @@
+audiodb (1.0-4) unstable; urgency=low
+
+  * updated to svn version #43
+
+ -- Christophe Rhodes <c.rhodes@gold.ac.uk>  Thu, 16 Aug 2007 12:41:42 +0100
+
 audiodb (1.0-3) unstable; urgency=low
 
   * updated to svn version #38