Mercurial > hg > audiodb
comparison dump.cpp @ 277:abfb26e08d9c audiodb-debian
Merge trunk changes -r326:386 into audiodb-debian branch.
Plus new debian/changelog version. (Should have used an epoch really,
but couldn't be bothered; TODO: work out a sane version numbering
policy).
author | mas01cr |
---|---|
date | Tue, 01 Jul 2008 09:12:40 +0000 |
parents | 15b8ff55ea5b |
children | b9eff6896943 |
comparison
equal
deleted
inserted
replaced
246:cbf51690c78c | 277:abfb26e08d9c |
---|---|
60 unsigned pos = 0; | 60 unsigned pos = 0; |
61 lseek(dbfid, dbH->dataOffset, SEEK_SET); | 61 lseek(dbfid, dbH->dataOffset, SEEK_SET); |
62 double *data_buffer; | 62 double *data_buffer; |
63 size_t data_buffer_size; | 63 size_t data_buffer_size; |
64 for(unsigned k = 0; k < dbH->numFiles; k++) { | 64 for(unsigned k = 0; k < dbH->numFiles; k++) { |
65 fprintf(kLFile, "%s\n", fileTable + k*O2_FILETABLESIZE); | 65 fprintf(kLFile, "%s\n", fileTable + k*O2_FILETABLE_ENTRY_SIZE); |
66 snprintf(fName, 256, "%05d.features", k); | 66 snprintf(fName, 256, "%05d.features", k); |
67 if ((ffd = open(fName, O_CREAT|O_RDWR|O_EXCL, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)) < 0) { | 67 if ((ffd = open(fName, O_CREAT|O_RDWR|O_EXCL, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)) < 0) { |
68 error("error creating feature file", fName, "open"); | 68 error("error creating feature file", fName, "open"); |
69 } | 69 } |
70 if ((write(ffd, &dbH->dim, sizeof(uint32_t))) < 0) { | 70 if ((write(ffd, &dbH->dim, sizeof(uint32_t))) < 0) { |
128 fprintf(pLFile, "%s\n", fName); | 128 fprintf(pLFile, "%s\n", fName); |
129 close(pfd); | 129 close(pfd); |
130 } | 130 } |
131 | 131 |
132 pos += trackTable[k]; | 132 pos += trackTable[k]; |
133 std::cout << fileTable+k*O2_FILETABLESIZE << " " << trackTable[k] << std::endl; | 133 std::cout << fileTable+k*O2_FILETABLE_ENTRY_SIZE << " " << trackTable[k] << std::endl; |
134 } | 134 } |
135 | 135 |
136 FILE *scriptFile; | 136 FILE *scriptFile; |
137 scriptFile = fopen("restore.sh", "w"); | 137 scriptFile = fopen("restore.sh", "w"); |
138 fprintf(scriptFile, "\ | 138 fprintf(scriptFile, "\ |
140 #\n\ | 140 #\n\ |
141 # usage: AUDIODB=/path/to/audioDB sh ./restore.sh <newdb>\n\ | 141 # usage: AUDIODB=/path/to/audioDB sh ./restore.sh <newdb>\n\ |
142 \n\ | 142 \n\ |
143 if [ -z \"${AUDIODB}\" ]; then echo set AUDIODB variable; exit 1; fi\n\ | 143 if [ -z \"${AUDIODB}\" ]; then echo set AUDIODB variable; exit 1; fi\n\ |
144 if [ -z \"$1\" ]; then echo usage: $0 newdb; exit 1; fi\n\n\ | 144 if [ -z \"$1\" ]; then echo usage: $0 newdb; exit 1; fi\n\n\ |
145 \"${AUDIODB}\" -d \"$1\" -N --size=%d\n", (int) (dbH->dbSize / 1000000)); | 145 \"${AUDIODB}\" -d \"$1\" -N --datasize=%d --ntracks=%d --datadim=%d\n", |
146 (int) ((dbH->timesTableOffset - dbH->dataOffset) / (1024*1024)), | |
147 // fileTable entries (char[256]) are bigger than trackTable | |
148 // (int), so the granularity of page aligning is finer. | |
149 (int) ((dbH->trackTableOffset - dbH->fileTableOffset) / O2_FILETABLE_ENTRY_SIZE), | |
150 (int) ceil(((double) (dbH->timesTableOffset - dbH->dataOffset)) / ((double) (dbH->dbSize - dbH->l2normTableOffset)))); | |
146 if(dbH->flags & O2_FLAG_L2NORM) { | 151 if(dbH->flags & O2_FLAG_L2NORM) { |
147 fprintf(scriptFile, "\"${AUDIODB}\" -d \"$1\" -L\n"); | 152 fprintf(scriptFile, "\"${AUDIODB}\" -d \"$1\" -L\n"); |
148 } | 153 } |
149 if(power) { | 154 if(power) { |
150 fprintf(scriptFile, "\"${AUDIODB}\" -d \"$1\" -P\n"); | 155 fprintf(scriptFile, "\"${AUDIODB}\" -d \"$1\" -P\n"); |