changeset 59:cd851d1fbc62

Make the system compile without warnings, and turn on -Werror for audioDB.cpp in the Makefile. (Don't turn it on for everything; the soap code is not warning-free...)
author mas01cr
date Thu, 20 Sep 2007 13:54:28 +0000
parents 7e18b5adce8c
children 3e80b146c07c
files Makefile audioDB.cpp audioDB.h
diffstat 3 files changed, 28 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Thu Sep 20 11:53:11 2007 +0000
+++ b/Makefile	Thu Sep 20 13:54:28 2007 +0000
@@ -17,13 +17,16 @@
 soapServer.cpp soapClient.cpp soapC.cpp: audioDBws.h
 	soapcpp2 audioDBws.h
 
-${EXECUTABLE}: audioDB.h audioDB.cpp soapServer.cpp soapClient.cpp soapC.cpp cmdline.c cmdline.h
-	g++ -o ${EXECUTABLE} ${CFLAGS} audioDB.cpp soapServer.cpp soapClient.cpp soapC.cpp cmdline.c ${LIBS}
+audioDB.o: audioDB.cpp audioDB.h soapServer.cpp soapClient.cpp soapC.cpp cmdline.c cmdline.h
+	g++ -c ${CFLAGS} -Wall -Werror audioDB.cpp
+
+${EXECUTABLE}: audioDB.o soapServer.cpp soapClient.cpp soapC.cpp cmdline.c cmdline.h
+	g++ -o ${EXECUTABLE} ${CFLAGS} audioDB.o soapServer.cpp soapClient.cpp soapC.cpp cmdline.c ${LIBS}
 
 clean:
 	-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
-	-sh -c "cd tests && sh ./clean.sh"
\ No newline at end of file
+	-rm ${EXECUTABLE} ${EXECUTABLE}.1 audioDB.o
+	-sh -c "cd tests && sh ./clean.sh"
--- a/audioDB.cpp	Thu Sep 20 11:53:11 2007 +0000
+++ b/audioDB.cpp	Thu Sep 20 13:54:28 2007 +0000
@@ -110,31 +110,31 @@
   dbName(0),
   inFile(0),
   key(0),
+  trackFileName(0),
   trackFile(0),
-  trackFileName(0),
+  command(0),
+  timesFileName(0),
   timesFile(0),
-  timesFileName(0),
-  usingTimes(0),
-  command(0),
   dbfid(0),
+  infid(0),
   db(0),
+  indata(0),
   dbH(0),
-  infid(0),
-  indata(0),
+  fileTable(0),
+  trackTable(0),
+  dataBuf(0),
+  l2normTable(0),
+  qNorm(0),
+  timesTable(0),
+  verbosity(1),
   queryType(O2_FLAG_POINT_QUERY),
-  verbosity(1),
   pointNN(O2_DEFAULT_POINTNN),
   trackNN(O2_DEFAULT_TRACKNN),
-  trackTable(0),
-  fileTable(0),
-  dataBuf(0),
-  l2normTable(0),
-  timesTable(0),
-  qNorm(0),
   sequenceLength(16),
   sequenceHop(1),
   queryPoint(0),
   usingQueryPoint(0),
+  usingTimes(0),
   isClient(0),
   isServer(0),
   port(0),
@@ -1158,7 +1158,7 @@
     adbQueryResult->Dist = new double[listLen];
     adbQueryResult->Qpos = new int[listLen];
     adbQueryResult->Spos = new int[listLen];
-    for(k=0; k<adbQueryResult->__sizeRlist; k++){
+    for(k=0; k<(unsigned)adbQueryResult->__sizeRlist; k++){
       adbQueryResult->Rlist[k]=new char[O2_MAXFILESTR];
       adbQueryResult->Dist[k]=distances[k];
       adbQueryResult->Qpos[k]=qIndexes[k];
@@ -1193,8 +1193,6 @@
   
   // For each input vector, find the closest pointNN matching output vectors and report
   unsigned numVectors = (statbuf.st_size-sizeof(int))/(sizeof(double)*dbH->dim);
-  unsigned numTracks = dbH->numFiles;
-
   double* query = (double*)(indata+sizeof(int));
   double* data = dataBuf;
   double* queryCopy = 0;
@@ -1409,7 +1407,7 @@
     adbQueryResult->Dist = new double[listLen];
     adbQueryResult->Qpos = new int[listLen];
     adbQueryResult->Spos = new int[listLen];
-    for(k=0; k<adbQueryResult->__sizeRlist; k++){
+    for(k=0; k<(unsigned)adbQueryResult->__sizeRlist; k++){
       adbQueryResult->Rlist[k]=new char[O2_MAXFILESTR];
       adbQueryResult->Dist[k]=trackDistances[k];
       adbQueryResult->Qpos[k]=trackQIndexes[k];
@@ -1445,10 +1443,7 @@
   // For each input vector, find the closest pointNN matching output vectors and report
   // we use stdout in this stub version
   unsigned numVectors = (statbuf.st_size-sizeof(int))/(sizeof(double)*dbH->dim);
-  unsigned numTracks = dbH->numFiles;
-  
   double* query = (double*)(indata+sizeof(int));
-  double* data = dataBuf;
   double* queryCopy = 0;
 
   double qMeanL2;
@@ -1587,7 +1582,6 @@
 
   unsigned k,l,m,n,track,trackOffset=0, HOP_SIZE=sequenceHop, wL=sequenceLength;
   double thisDist;
-  double oneOverWL=1.0/wL;
   
   for(k=0; k<pointNN; k++){
     distances[k]=1.0e6;
@@ -1663,7 +1657,6 @@
   double* qp;
   double* sp;
   double* dp;
-  double diffL2;
 
   // build track offset table
   unsigned *trackOffsetTable = new unsigned[dbH->numFiles];
@@ -1717,7 +1710,6 @@
 	assert(DD[j]);
       }
 
-      double tmp;
       // Dot product
       for(j=0; j<numVectors; j++)
 	for(k=0; k<trackTable[track]; k++){
@@ -1904,7 +1896,7 @@
     adbQueryResult->Dist = new double[listLen];
     adbQueryResult->Qpos = new int[listLen];
     adbQueryResult->Spos = new int[listLen];
-    for(k=0; k<adbQueryResult->__sizeRlist; k++){
+    for(k=0; k<(unsigned)adbQueryResult->__sizeRlist; k++){
       adbQueryResult->Rlist[k]=new char[O2_MAXFILESTR];
       adbQueryResult->Dist[k]=trackDistances[k];
       adbQueryResult->Qpos[k]=trackQIndexes[k];
@@ -1944,10 +1936,7 @@
   // For each input vector, find the closest pointNN matching output vectors and report
   // we use stdout in this stub version
   unsigned numVectors = (statbuf.st_size-sizeof(int))/(sizeof(double)*dbH->dim);
-  unsigned numTracks = dbH->numFiles;
-  
   double* query = (double*)(indata+sizeof(int));
-  double* data = dataBuf;
   double* queryCopy = 0;
 
   double qMeanL2;
@@ -2081,9 +2070,8 @@
   unsigned sIndexes[pointNN];
   
 
-  unsigned k,l,m,n,track,trackOffset=0, HOP_SIZE=sequenceHop, wL=sequenceLength;
+  unsigned k,l,n,track,trackOffset=0, HOP_SIZE=sequenceHop, wL=sequenceLength;
   double thisDist;
-  double oneOverWL=1.0/wL;
   
   for(k=0; k<pointNN; k++){
     distances[k]=0.0;
@@ -2159,7 +2147,6 @@
   double* qp;
   double* sp;
   double* dp;
-  double diffL2;
 
   // build track offset table
   unsigned *trackOffsetTable = new unsigned[dbH->numFiles];
@@ -2213,7 +2200,6 @@
 	assert(DD[j]);
       }
 
-      double tmp;
       // Dot product
       for(j=0; j<numVectors; j++)
 	for(k=0; k<trackTable[track]; k++){
@@ -2377,7 +2363,7 @@
     adbQueryResult->Dist = new double[listLen];
     adbQueryResult->Qpos = new int[listLen];
     adbQueryResult->Spos = new int[listLen];
-    for(k=0; k<adbQueryResult->__sizeRlist; k++){
+    for(k=0; k<(unsigned)adbQueryResult->__sizeRlist; k++){
       adbQueryResult->Rlist[k]=new char[O2_MAXFILESTR];
       adbQueryResult->Dist[k]=trackDistances[k];
       adbQueryResult->Qpos[k]=trackQIndexes[k];
@@ -2406,45 +2392,10 @@
 
 }
 
-void audioDB::normalize(double* X, int dim, int n){
-  unsigned c = n*dim;
-  double minval,maxval,v,*p;
-
-  p=X;  
-  while(c--){
-    v=*p++;
-    if(v<minval)
-      minval=v;
-    else if(v>maxval)
-      maxval=v;
-  }
-
-  normalize(X, dim, n, minval, maxval);
-
-}
-
-void audioDB::normalize(double* X, int dim, int n, double minval, double maxval){
-  unsigned c = n*dim;
-  double *p;
-
-
-  if(maxval==minval)
-    return;
-
-  maxval=1.0/(maxval-minval);
-  c=n*dim;
-  p=X;
-
-  while(c--){
-    *p=(*p-minval)*maxval;
-    p++;
-  }
-}
-
 // Unit norm block of features
 void audioDB::unitNorm(double* X, unsigned dim, unsigned n, double* qNorm){
   unsigned d;
-  double L2, oneOverL2, *p;
+  double L2, *p;
   if(verbosity>2)
     cerr << "norming " << n << " vectors...";cerr.flush();
   while(n--){
@@ -2474,7 +2425,7 @@
 // Unit norm block of features
 void audioDB::unitNormAndInsertL2(double* X, unsigned dim, unsigned n, unsigned append=0){
   unsigned d;
-  double L2, oneOverL2, *p;
+  double *p;
   unsigned nn = n;
 
   assert(l2normTable);
@@ -2541,7 +2492,7 @@
 	      soap_print_fault(&soap, stderr);
 	      break;
 	    }
-	  fprintf(stderr, "%d: accepted connection from IP=%d.%d.%d.%d socket=%d\n", i,
+	  fprintf(stderr, "%d: accepted connection from IP=%lud.%lud.%lud.%lud socket=%d\n", i,
 		  (soap.ip >> 24)&0xFF, (soap.ip >> 16)&0xFF, (soap.ip >> 8)&0xFF, soap.ip&0xFF, s);
 	  if (soap_serve(&soap) != SOAP_OK) // process RPC request
 	    soap_print_fault(&soap, stderr); // print error
--- a/audioDB.h	Thu Sep 20 11:53:11 2007 +0000
+++ b/audioDB.h	Thu Sep 20 13:54:28 2007 +0000
@@ -224,8 +224,6 @@
   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);
-  void normalize(double* X, int dim, int n, double minval, double maxval);
   void insertTimeStamps(unsigned n, ifstream* timesFile, double* timesdata);
   unsigned getKeyPos(char* key);
  public: