Mercurial > hg > audiodb
comparison audioDB.cpp @ 370:2d5c3f8e8c22
Merge gcc-4.3-cleanups branch (-r629:642, but I consider that branch as
having served its purpose) onto the trunk.
Now compiles cleanly even with a fairly picky gcc. I await version 4.4
with bated breath.
author | mas01cr |
---|---|
date | Wed, 12 Nov 2008 15:40:40 +0000 |
parents | 94c18f128ce8 |
children | 5eb5034b0577 |
comparison
equal
deleted
inserted
replaced
355:94c18f128ce8 | 370:2d5c3f8e8c22 |
---|---|
20 | 20 |
21 bool operator==(const PointPair& a, const PointPair& b){ | 21 bool operator==(const PointPair& a, const PointPair& b){ |
22 return ( (a.trackID==b.trackID) && (a.qpos==b.qpos) && (a.spos==b.spos) ); | 22 return ( (a.trackID==b.trackID) && (a.qpos==b.qpos) && (a.spos==b.spos) ); |
23 } | 23 } |
24 | 24 |
25 audioDB::audioDB(const unsigned argc, const char *const argv[]): O2_AUDIODB_INITIALIZERS | 25 audioDB::audioDB(const unsigned argc, const char *argv[]): O2_AUDIODB_INITIALIZERS |
26 { | 26 { |
27 if(processArgs(argc, argv)<0){ | 27 if(processArgs(argc, argv)<0){ |
28 printf("No command found.\n"); | 28 printf("No command found.\n"); |
29 cmdline_parser_print_version (); | 29 cmdline_parser_print_version (); |
30 if (strlen(gengetopt_args_info_purpose) > 0) | 30 if (strlen(gengetopt_args_info_purpose) > 0) |
111 | 111 |
112 else | 112 else |
113 error("Unrecognized command",command); | 113 error("Unrecognized command",command); |
114 } | 114 } |
115 | 115 |
116 audioDB::audioDB(const unsigned argc, const char *const argv[], adb__queryResponse *adbQueryResponse): O2_AUDIODB_INITIALIZERS | 116 audioDB::audioDB(const unsigned argc, const char *argv[], adb__queryResponse *adbQueryResponse): O2_AUDIODB_INITIALIZERS |
117 { | 117 { |
118 try { | 118 try { |
119 isServer = 1; // Set to make errors report over SOAP | 119 isServer = 1; // Set to make errors report over SOAP |
120 processArgs(argc, argv); | 120 processArgs(argc, argv); |
121 // Perform database prefix substitution | 121 // Perform database prefix substitution |
127 cleanup(); | 127 cleanup(); |
128 throw(err); | 128 throw(err); |
129 } | 129 } |
130 } | 130 } |
131 | 131 |
132 audioDB::audioDB(const unsigned argc, const char* const argv[], adb__statusResponse *adbStatusResponse): O2_AUDIODB_INITIALIZERS | 132 audioDB::audioDB(const unsigned argc, const char *argv[], adb__statusResponse *adbStatusResponse): O2_AUDIODB_INITIALIZERS |
133 { | 133 { |
134 try { | 134 try { |
135 isServer = 1; // Set to make errors report over SOAP | 135 isServer = 1; // Set to make errors report over SOAP |
136 processArgs(argc, argv); | 136 processArgs(argc, argv); |
137 // Perform database prefix substitution | 137 // Perform database prefix substitution |
143 cleanup(); | 143 cleanup(); |
144 throw(err); | 144 throw(err); |
145 } | 145 } |
146 } | 146 } |
147 | 147 |
148 audioDB::audioDB(const unsigned argc, const char *const argv[], adb__lisztResponse *adbLisztResponse): O2_AUDIODB_INITIALIZERS | 148 audioDB::audioDB(const unsigned argc, const char *argv[], adb__lisztResponse *adbLisztResponse): O2_AUDIODB_INITIALIZERS |
149 { | 149 { |
150 try { | 150 try { |
151 isServer = 1; // Set to make errors report over SOAP | 151 isServer = 1; // Set to make errors report over SOAP |
152 processArgs(argc, argv); | 152 processArgs(argc, argv); |
153 // Perform database prefix substitution | 153 // Perform database prefix substitution |
161 } | 161 } |
162 } | 162 } |
163 | 163 |
164 | 164 |
165 //for the lib / API | 165 //for the lib / API |
166 audioDB::audioDB(const unsigned argc, char* const argv[], int * apierror): O2_AUDIODB_INITIALIZERS | 166 audioDB::audioDB(const unsigned argc, const char *argv[], int * apierror): O2_AUDIODB_INITIALIZERS |
167 { | 167 { |
168 | 168 |
169 try { | 169 try { |
170 UseApiError=1; | 170 UseApiError=1; |
171 | 171 |
226 return; | 226 return; |
227 | 227 |
228 } | 228 } |
229 | 229 |
230 //for API status | 230 //for API status |
231 audioDB::audioDB(const unsigned argc, char* const argv[], cppstatusptr stat, int * apierror): O2_AUDIODB_INITIALIZERS | 231 audioDB::audioDB(const unsigned argc, const char *argv[], cppstatusptr stat, int * apierror): O2_AUDIODB_INITIALIZERS |
232 { | 232 { |
233 | 233 |
234 try { | 234 try { |
235 UseApiError=1; | 235 UseApiError=1; |
236 | 236 |
260 | 260 |
261 } | 261 } |
262 | 262 |
263 | 263 |
264 //for API query | 264 //for API query |
265 audioDB::audioDB(const unsigned argc, char* const argv[],adb__queryResponse *adbQueryResponse, int * apierror): O2_AUDIODB_INITIALIZERS | 265 audioDB::audioDB(const unsigned argc, const char *argv[],adb__queryResponse *adbQueryResponse, int * apierror): O2_AUDIODB_INITIALIZERS |
266 { | 266 { |
267 | 267 |
268 try { | 268 try { |
269 UseApiError=1; | 269 UseApiError=1; |
270 | 270 |
342 | 342 |
343 audioDB::~audioDB(){ | 343 audioDB::~audioDB(){ |
344 cleanup(); | 344 cleanup(); |
345 } | 345 } |
346 | 346 |
347 int audioDB::processArgs(const unsigned argc, const char *const argv[]){ | 347 int audioDB::processArgs(const unsigned argc, const char *argv[]){ |
348 | 348 |
349 if(argc<2){ | 349 if(argc<2){ |
350 cmdline_parser_print_version (); | 350 cmdline_parser_print_version (); |
351 if (strlen(gengetopt_args_info_purpose) > 0) | 351 if (strlen(gengetopt_args_info_purpose) > 0) |
352 printf("%s\n", gengetopt_args_info_purpose); | 352 printf("%s\n", gengetopt_args_info_purpose); |
524 command=COM_POWER; | 524 command=COM_POWER; |
525 dbName=args_info.database_arg; | 525 dbName=args_info.database_arg; |
526 return 0; | 526 return 0; |
527 } | 527 } |
528 | 528 |
529 if(args_info.INSERT_given){ | 529 if(args_info.INSERT_given) { |
530 command=COM_INSERT; | 530 command=COM_INSERT; |
531 dbName=args_info.database_arg; | 531 dbName=args_info.database_arg; |
532 inFile=args_info.features_arg; | 532 inFile=args_info.features_arg; |
533 if(args_info.key_given) | 533 if(args_info.key_given) { |
534 if(!args_info.features_given) | 534 if(!args_info.features_given) { |
535 error("INSERT: '-k key' argument depends on '-f features'"); | 535 error("INSERT: '-k key' argument depends on '-f features'"); |
536 else | 536 } else { |
537 key=args_info.key_arg; | 537 key=args_info.key_arg; |
538 if(args_info.times_given){ | 538 } |
539 } | |
540 if(args_info.times_given) { | |
539 timesFileName=args_info.times_arg; | 541 timesFileName=args_info.times_arg; |
540 if(strlen(timesFileName)>0){ | 542 if(strlen(timesFileName)>0) { |
541 if(!(timesFile = new std::ifstream(timesFileName,std::ios::in))) | 543 if(!(timesFile = new std::ifstream(timesFileName,std::ios::in))) { |
542 error("Could not open times file for reading", timesFileName); | 544 error("Could not open times file for reading", timesFileName); |
545 } | |
543 usingTimes=1; | 546 usingTimes=1; |
544 } | 547 } |
545 } | 548 } |
546 if (args_info.power_given) { | 549 if (args_info.power_given) { |
547 powerFileName = args_info.power_arg; | 550 powerFileName = args_info.power_arg; |
553 } | 556 } |
554 } | 557 } |
555 return 0; | 558 return 0; |
556 } | 559 } |
557 | 560 |
558 if(args_info.BATCHINSERT_given){ | 561 if(args_info.BATCHINSERT_given) { |
559 command=COM_BATCHINSERT; | 562 command=COM_BATCHINSERT; |
560 dbName=args_info.database_arg; | 563 dbName=args_info.database_arg; |
561 inFile=args_info.featureList_arg; | 564 inFile=args_info.featureList_arg; |
562 if(args_info.keyList_given) | 565 if(args_info.keyList_given) { |
563 if(!args_info.featureList_given) | 566 if(!args_info.featureList_given) { |
564 error("BATCHINSERT: '-K keyList' argument depends on '-F featureList'"); | 567 error("BATCHINSERT: '-K keyList' argument depends on '-F featureList'"); |
565 else | 568 } else { |
566 key=args_info.keyList_arg; // INCONSISTENT NO CHECK | 569 key=args_info.keyList_arg; // INCONSISTENT NO CHECK |
567 | 570 } |
571 } | |
568 /* TO DO: REPLACE WITH | 572 /* TO DO: REPLACE WITH |
569 if(args_info.keyList_given){ | 573 if(args_info.keyList_given){ |
570 trackFileName=args_info.keyList_arg; | 574 trackFileName=args_info.keyList_arg; |
571 if(strlen(trackFileName)>0 && !(trackFile = new std::ifstream(trackFileName,std::ios::in))) | 575 if(strlen(trackFileName)>0 && !(trackFile = new std::ifstream(trackFileName,std::ios::in))) |
572 error("Could not open keyList file for reading",trackFileName); | 576 error("Could not open keyList file for reading",trackFileName); |
573 } | 577 } |
574 AND UPDATE BATCHINSERT() | 578 AND UPDATE BATCHINSERT() |
575 */ | 579 */ |
576 | 580 |
577 if(args_info.timesList_given){ | 581 if(args_info.timesList_given) { |
578 timesFileName=args_info.timesList_arg; | 582 timesFileName=args_info.timesList_arg; |
579 if(strlen(timesFileName)>0){ | 583 if(strlen(timesFileName)>0) { |
580 if(!(timesFile = new std::ifstream(timesFileName,std::ios::in))) | 584 if(!(timesFile = new std::ifstream(timesFileName,std::ios::in))) |
581 error("Could not open timesList file for reading", timesFileName); | 585 error("Could not open timesList file for reading", timesFileName); |
582 usingTimes=1; | 586 usingTimes=1; |
583 } | 587 } |
584 } | 588 } |
585 if(args_info.powerList_given){ | 589 if(args_info.powerList_given) { |
586 powerFileName=args_info.powerList_arg; | 590 powerFileName=args_info.powerList_arg; |
587 if(strlen(powerFileName)>0){ | 591 if(strlen(powerFileName)>0) { |
588 if(!(powerFile = new std::ifstream(powerFileName,std::ios::in))) | 592 if(!(powerFile = new std::ifstream(powerFileName,std::ios::in))) |
589 error("Could not open powerList file for reading", powerFileName); | 593 error("Could not open powerList file for reading", powerFileName); |
590 usingPower=1; | 594 usingPower=1; |
591 } | 595 } |
592 } | 596 } |
643 // Query command and arguments | 647 // Query command and arguments |
644 if(args_info.QUERY_given){ | 648 if(args_info.QUERY_given){ |
645 command=COM_QUERY; | 649 command=COM_QUERY; |
646 dbName=args_info.database_arg; | 650 dbName=args_info.database_arg; |
647 // XOR features and key search | 651 // XOR features and key search |
648 if(!args_info.features_given && !args_info.key_given || (args_info.features_given && args_info.key_given)) | 652 if((!args_info.features_given && !args_info.key_given) || (args_info.features_given && args_info.key_given)) |
649 error("QUERY requires exactly one of either -f features or -k key"); | 653 error("QUERY requires exactly one of either -f features or -k key"); |
650 if(args_info.features_given) | 654 if(args_info.features_given) |
651 inFile=args_info.features_arg; // query from file | 655 inFile=args_info.features_arg; // query from file |
652 else{ | 656 else{ |
653 query_from_key = true; | 657 query_from_key = true; |
885 VERB_LOG(2, " done."); | 889 VERB_LOG(2, " done."); |
886 } | 890 } |
887 | 891 |
888 // This entry point is visited once per instance | 892 // This entry point is visited once per instance |
889 // so it is a good place to set any global state variables | 893 // so it is a good place to set any global state variables |
890 int main(const unsigned argc, char* const argv[]){ | 894 int main(const int argc, const char* argv[]){ |
891 SERVER_LSH_INDEX_SINGLETON = 0; // Initialize global variables | 895 SERVER_LSH_INDEX_SINGLETON = 0; // Initialize global variables |
892 SERVER_ADB_ROOT = 0; // Server-side database root prefix | 896 SERVER_ADB_ROOT = 0; // Server-side database root prefix |
893 SERVER_ADB_FEATURE_ROOT = 0; // Server-side features root prefix | 897 SERVER_ADB_FEATURE_ROOT = 0; // Server-side features root prefix |
894 audioDB(argc, argv); | 898 audioDB(argc, argv); |
895 } | 899 } |
904 #include "audioDB_API.h" | 908 #include "audioDB_API.h" |
905 | 909 |
906 | 910 |
907 //adb_ptr audiodb_create(char * path,long ntracks, long datadim) { | 911 //adb_ptr audiodb_create(char * path,long ntracks, long datadim) { |
908 adb_ptr audiodb_create(char * path,long datasize,long ntracks, long datadim) { | 912 adb_ptr audiodb_create(char * path,long datasize,long ntracks, long datadim) { |
909 char *argv[12]; | 913 const char *argv[12]; |
910 int argvctr=0; | 914 int argvctr=0; |
911 char tempstr1[200]; | 915 char tempstr1[200]; |
912 char tempstr2[200]; | 916 char tempstr2[200]; |
913 char tempstr3[200]; | 917 char tempstr3[200]; |
914 int apierror=0; | 918 int apierror=0; |
950 } | 954 } |
951 | 955 |
952 | 956 |
953 | 957 |
954 int audiodb_insert(adb_ptr mydb, adb_insert_ptr ins) { | 958 int audiodb_insert(adb_ptr mydb, adb_insert_ptr ins) { |
955 char *argv[15]; | 959 const char *argv[15]; |
956 int argvctr=0; | 960 int argvctr=0; |
957 int apierror=0; | 961 int apierror=0; |
958 | 962 |
959 argv[argvctr++]="audioDB"; | 963 argv[argvctr++]="audioDB"; |
960 argv[argvctr++]="-I"; | 964 argv[argvctr++]="-I"; |
984 } | 988 } |
985 | 989 |
986 | 990 |
987 int audiodb_batchinsert(adb_ptr mydb, adb_insert_ptr ins, unsigned int size) { | 991 int audiodb_batchinsert(adb_ptr mydb, adb_insert_ptr ins, unsigned int size) { |
988 | 992 |
989 char *argv[22]; | 993 const char *argv[22]; |
990 int argvctr=0; | 994 int argvctr=0; |
991 unsigned int i=0; | 995 unsigned int i=0; |
992 int retval=0; | |
993 char tempfeaturename[]="tempfeatureXXXXXX"; | 996 char tempfeaturename[]="tempfeatureXXXXXX"; |
994 char temppowername[]="temppowerXXXXXX"; | 997 char temppowername[]="temppowerXXXXXX"; |
995 char tempkeyname[]="tempkeyXXXXXX"; | 998 char tempkeyname[]="tempkeyXXXXXX"; |
996 char temptimesname[]="temptimesXXXXXX"; | 999 char temptimesname[]="temptimesXXXXXX"; |
997 int tempfeaturefd=0; | 1000 int tempfeaturefd = -1; |
998 int temppowerfd=0; | 1001 int temppowerfd = -1; |
999 int tempkeyfd=0; | 1002 int tempkeyfd = -1; |
1000 int temptimesfd=0; | 1003 int temptimesfd = -1; |
1001 | 1004 |
1002 int flags[4]={0}; | 1005 int flags[4]={0}; |
1003 int apierror=0; | 1006 int apierror=0; |
1004 | 1007 |
1005 /* So the final API should take an array of structs. However, the current | 1008 /* So the final API should take an array of structs. However, the current |
1023 if (ins[0].key){ flags[2]++;}; | 1026 if (ins[0].key){ flags[2]++;}; |
1024 if (ins[0].times){ flags[3]++;}; | 1027 if (ins[0].times){ flags[3]++;}; |
1025 | 1028 |
1026 | 1029 |
1027 /* make four temp files */ | 1030 /* make four temp files */ |
1028 tempfeaturefd=mkstemp(tempfeaturename); | 1031 if ((tempfeaturefd = mkstemp(tempfeaturename)) == -1) |
1029 if (tempfeaturefd !=-1){ | 1032 goto error; |
1030 | 1033 if ((temppowerfd = mkstemp(temppowername)) == -1) |
1031 temppowerfd=mkstemp(temppowername); | 1034 goto error; |
1032 if (temppowerfd !=-1){ | 1035 if ((tempkeyfd=mkstemp(tempkeyname)) == -1) |
1033 | 1036 goto error; |
1034 tempkeyfd=mkstemp(tempkeyname); | 1037 if ((temptimesfd=mkstemp(temptimesname)) == -1) |
1035 if (tempkeyfd !=-1){ | 1038 goto error; |
1036 | 1039 |
1037 temptimesfd=mkstemp(temptimesname); | |
1038 if (temptimesfd !=-1){ | |
1039 | |
1040 } else { | |
1041 retval=-1; | |
1042 close(tempkeyfd); | |
1043 remove(tempkeyname); | |
1044 close(temppowerfd); | |
1045 remove(temppowername); | |
1046 close(tempfeaturefd); | |
1047 remove(tempfeaturename); | |
1048 } | |
1049 | |
1050 } else { | |
1051 retval=-1; | |
1052 close(temppowerfd); | |
1053 remove(temppowername); | |
1054 close(tempfeaturefd); | |
1055 remove(tempfeaturename); | |
1056 } | |
1057 | |
1058 } else { | |
1059 retval=-1; | |
1060 close(tempfeaturefd); | |
1061 remove(tempfeaturename); | |
1062 } | |
1063 | |
1064 } else { | |
1065 retval=-1; | |
1066 } | |
1067 | |
1068 | |
1069 | |
1070 | |
1071 | |
1072 if (retval == -1){ | |
1073 return -1; | |
1074 } | |
1075 | |
1076 /* Ok, so we should have a working set of files to write to */ | 1040 /* Ok, so we should have a working set of files to write to */ |
1077 /* I'm going to assume that the same format is kept for all structs in the array */ | 1041 /* I'm going to assume that the same format is kept for all structs in the array */ |
1078 /* That is, each struct should be correctly formed, and contain at least a features file, because I'm just going to pass the terms along to the text files */ | 1042 /* That is, each struct should be correctly formed, and contain at least a features file, because I'm just going to pass the terms along to the text files */ |
1079 for (i=0; i<size; i++){ | 1043 for (i = 0; i < size; i++) { |
1080 | 1044 if (write(tempfeaturefd,ins[i].features,strlen(ins[i].features)) != (ssize_t) strlen(ins[i].features)) |
1081 write(tempfeaturefd,ins[i].features,strlen(ins[i].features)); | 1045 goto error; |
1082 write(tempfeaturefd,"\n",1); | 1046 if (write(tempfeaturefd,"\n",1) != 1) |
1083 | 1047 goto error; |
1084 if (flags[1]){ | 1048 |
1085 write(temppowerfd,ins[i].power,strlen(ins[i].power)); | 1049 if (flags[1]) { |
1086 write(temppowerfd,"\n",1); | 1050 if (write(temppowerfd,ins[i].power,strlen(ins[i].power)) != (ssize_t) strlen(ins[i].power)) |
1087 } | 1051 goto error; |
1088 | 1052 if (write(temppowerfd,"\n",1) != 1) |
1089 if (flags[2]){ | 1053 goto error; |
1090 write(tempkeyfd,ins[i].key,strlen(ins[i].key)); | 1054 } |
1091 write(tempkeyfd,"\n",1); | 1055 if (flags[2]) { |
1092 } | 1056 if (write(tempkeyfd,ins[i].key,strlen(ins[i].key)) != (ssize_t) strlen(ins[i].key)) |
1093 | 1057 goto error; |
1094 if (flags[3]){ | 1058 if (write(tempkeyfd,"\n",1) != 1) |
1095 write(temptimesfd,ins[i].times,strlen(ins[i].times)); | 1059 goto error; |
1096 write(temptimesfd,"\n",1); | 1060 } |
1097 } | 1061 if (flags[3]) { |
1098 } | 1062 if (write(temptimesfd,ins[i].times,strlen(ins[i].times)) != (ssize_t) strlen(ins[i].times)) |
1063 goto error; | |
1064 if (write(temptimesfd,"\n",1) != 1) | |
1065 goto error; | |
1066 } | |
1067 } | |
1099 | 1068 |
1100 argv[argvctr++]="-F"; | 1069 argv[argvctr++]="-F"; |
1101 argv[argvctr++]=tempfeaturename; | 1070 argv[argvctr++]=tempfeaturename; |
1102 close(tempfeaturefd); | 1071 close(tempfeaturefd); |
1103 close(temppowerfd); | 1072 close(temppowerfd); |
1128 remove(tempkeyname); | 1097 remove(tempkeyname); |
1129 remove(temptimesname); | 1098 remove(temptimesname); |
1130 | 1099 |
1131 | 1100 |
1132 return apierror; | 1101 return apierror; |
1102 | |
1103 error: | |
1104 if(tempfeaturefd != -1) { | |
1105 close(tempfeaturefd); | |
1106 remove(tempfeaturename); | |
1107 } | |
1108 if(temppowerfd != -1) { | |
1109 close(temppowerfd); | |
1110 remove(temppowername); | |
1111 } | |
1112 if(tempkeyfd != -1) { | |
1113 close(tempkeyfd); | |
1114 remove(tempkeyname); | |
1115 } | |
1116 if(temptimesfd != -1) { | |
1117 close(temptimesfd); | |
1118 remove(temptimesname); | |
1119 } | |
1120 return -1; | |
1133 } | 1121 } |
1134 | 1122 |
1135 | 1123 |
1136 int audiodb_query(adb_ptr mydb, adb_query_ptr adbq, adb_queryresult_ptr adbqr){ | 1124 int audiodb_query(adb_ptr mydb, adb_query_ptr adbq, adb_queryresult_ptr adbqr){ |
1137 | 1125 |
1138 char *argv[32]; | 1126 const char *argv[32]; |
1139 int argvctr=0; | 1127 int argvctr=0; |
1140 char tempstr1[200]; | 1128 char tempstr1[200]; |
1141 char tempstr2[200]; | 1129 char tempstr2[200]; |
1142 char tempstr3[200]; | 1130 char tempstr3[200]; |
1143 int apierror=0; | 1131 int apierror=0; |
1246 int audiodb_status(adb_ptr mydb, adb_status_ptr status){ | 1234 int audiodb_status(adb_ptr mydb, adb_status_ptr status){ |
1247 | 1235 |
1248 cppstatus sss; | 1236 cppstatus sss; |
1249 int apierror=0; | 1237 int apierror=0; |
1250 | 1238 |
1251 char * argv[5]; | 1239 const char *argv[5]; |
1252 | 1240 |
1253 apierror=0; | 1241 apierror=0; |
1254 argv[0]="audioDB"; | 1242 argv[0]="audioDB"; |
1255 argv[1]="--STATUS"; | 1243 argv[1]="--STATUS"; |
1256 argv[2]="-d"; | 1244 argv[2]="-d"; |
1271 | 1259 |
1272 int audiodb_dump(adb_ptr mydb){ | 1260 int audiodb_dump(adb_ptr mydb){ |
1273 return audiodb_dump_withdir(mydb,"audioDB.dump"); | 1261 return audiodb_dump_withdir(mydb,"audioDB.dump"); |
1274 } | 1262 } |
1275 | 1263 |
1276 int audiodb_dump_withdir(adb_ptr mydb, char * outputdir){ | 1264 int audiodb_dump_withdir(adb_ptr mydb, const char *outputdir){ |
1277 | 1265 |
1278 char * argv[7]; | 1266 const char *argv[7]; |
1279 int argvctr=0; | 1267 int argvctr=0; |
1280 int apierror=0; | 1268 int apierror=0; |
1281 | 1269 |
1282 argv[argvctr++]="audioDB"; | 1270 argv[argvctr++]="audioDB"; |
1283 argv[argvctr++]="--DUMP"; | 1271 argv[argvctr++]="--DUMP"; |
1284 argv[argvctr++]="-d"; | 1272 argv[argvctr++]="-d"; |
1285 argv[argvctr++]=mydb->dbname; | 1273 argv[argvctr++]=mydb->dbname; |
1286 argv[argvctr++]="--output"; | 1274 argv[argvctr++]="--output"; |
1287 argv[argvctr++]=(char *)outputdir; | 1275 argv[argvctr++]=(char *)outputdir; |
1288 argv[argvctr+1]='\0'; | 1276 argv[argvctr]='\0'; |
1289 | 1277 |
1290 audioDB::audioDB(6,argv,&apierror); | 1278 audioDB::audioDB(6,argv,&apierror); |
1291 | 1279 |
1292 return apierror; | 1280 return apierror; |
1293 } | 1281 } |
1294 | 1282 |
1295 int audiodb_l2norm(adb_ptr mydb){ | 1283 int audiodb_l2norm(adb_ptr mydb){ |
1296 | 1284 |
1297 char * argv[5]; | 1285 const char *argv[5]; |
1298 int apierror=0; | 1286 int apierror=0; |
1299 | 1287 |
1300 argv[0]="audioDB"; | 1288 argv[0]="audioDB"; |
1301 argv[1]="--L2NORM"; | 1289 argv[1]="--L2NORM"; |
1302 argv[2]="-d"; | 1290 argv[2]="-d"; |
1307 return apierror; | 1295 return apierror; |
1308 } | 1296 } |
1309 | 1297 |
1310 int audiodb_power(adb_ptr mydb){ | 1298 int audiodb_power(adb_ptr mydb){ |
1311 | 1299 |
1312 char * argv[5]; | 1300 const char *argv[5]; |
1313 int apierror=0; | 1301 int apierror=0; |
1314 | 1302 |
1315 argv[0]="audioDB"; | 1303 argv[0]="audioDB"; |
1316 argv[1]="--POWER"; | 1304 argv[1]="--POWER"; |
1317 argv[2]="-d"; | 1305 argv[2]="-d"; |