Mercurial > hg > audiodb
comparison status.cpp @ 498:342822c2d49a
Merge api-inversion branch (-r656:771, but I don't expect to return to
that branch) into the trunk.
I expect there to be minor performance regressions (e.g. in the SOAP
server index cacheing, which I have forcibly removed) and minor
unplugged memory leaks (e.g. in audioDB::query(), where I don't free up
the datum). I hope that these leaks and performance regressions can be
plugged in short order. I also expect that some (but maybe not all) of
the issues currently addressed in the memory-leaks branch are superseded
or fixed by this merge.
There remains much work to be done; go forth and do it.
author | mas01cr |
---|---|
date | Sat, 10 Jan 2009 16:47:57 +0000 |
parents | |
children | cc2b97d020b1 |
comparison
equal
deleted
inserted
replaced
476:a7193678280b | 498:342822c2d49a |
---|---|
1 #include "audioDB.h" | |
2 extern "C" { | |
3 #include "audioDB_API.h" | |
4 #include "audioDB-internals.h" | |
5 } | |
6 | |
7 int audiodb_status(adb_t *adb, adb_status_t *status) { | |
8 /* FIXME: it would be nice to be able to test for "is this database | |
9 pointer valid", but at the moment we punt that to memory | |
10 discipline. */ | |
11 | |
12 unsigned dudCount = 0; | |
13 unsigned nullCount = 0; | |
14 | |
15 for(unsigned k = 0; k < adb->header->numFiles; k++) { | |
16 /* FIXME: this bare "16" here reveals a problem (or maybe two). | |
17 * 16 here means the default value of the sequenceLength parameter | |
18 * initializer (both in C++ and corresponding to the "-l" or | |
19 * "--sequencelength" command-line argument). | |
20 * | |
21 * The problem is that the API as currently designed provides no | |
22 * way to pass that information in to this routine; there's no | |
23 * input parameter; nor is there in the SOAP version of this | |
24 * query. However, there /is/ a way to pass that information on | |
25 * the command-line -- though that codepath is completely | |
26 * untested. I can see that it might be useful to provide this | |
27 * information, but at present it's probably completely unused, so | |
28 * the compromise for now is to hardwire the 16. | |
29 */ | |
30 if((*adb->track_lengths)[k] < 16) { | |
31 dudCount++; | |
32 if(!(*adb->track_lengths)[k]) { | |
33 nullCount++; | |
34 } | |
35 } | |
36 } | |
37 | |
38 status->numFiles = adb->header->numFiles; | |
39 status->dim = adb->header->dim; | |
40 status->length = adb->header->length; | |
41 status->dudCount = dudCount; | |
42 status->nullCount = nullCount; | |
43 status->flags = adb->header->flags; | |
44 status->data_region_size = adb->header->timesTableOffset - adb->header->dataOffset; | |
45 | |
46 return 0; | |
47 } | |
48 |