mas01cr@498
|
1 extern "C" {
|
mas01cr@498
|
2 #include "audioDB_API.h"
|
mas01cr@509
|
3 }
|
mas01cr@498
|
4 #include "audioDB-internals.h"
|
mas01cr@498
|
5
|
mas01cr@498
|
6 int audiodb_status(adb_t *adb, adb_status_t *status) {
|
mas01cr@498
|
7 /* FIXME: it would be nice to be able to test for "is this database
|
mas01cr@498
|
8 pointer valid", but at the moment we punt that to memory
|
mas01cr@498
|
9 discipline. */
|
mas01cr@498
|
10
|
mas01cr@498
|
11 unsigned dudCount = 0;
|
mas01cr@498
|
12 unsigned nullCount = 0;
|
mas01cr@498
|
13
|
mas01cr@498
|
14 for(unsigned k = 0; k < adb->header->numFiles; k++) {
|
mas01cr@498
|
15 /* FIXME: this bare "16" here reveals a problem (or maybe two).
|
mas01cr@498
|
16 * 16 here means the default value of the sequenceLength parameter
|
mas01cr@498
|
17 * initializer (both in C++ and corresponding to the "-l" or
|
mas01cr@498
|
18 * "--sequencelength" command-line argument).
|
mas01cr@498
|
19 *
|
mas01cr@498
|
20 * The problem is that the API as currently designed provides no
|
mas01cr@498
|
21 * way to pass that information in to this routine; there's no
|
mas01cr@498
|
22 * input parameter; nor is there in the SOAP version of this
|
mas01cr@498
|
23 * query. However, there /is/ a way to pass that information on
|
mas01cr@498
|
24 * the command-line -- though that codepath is completely
|
mas01cr@498
|
25 * untested. I can see that it might be useful to provide this
|
mas01cr@498
|
26 * information, but at present it's probably completely unused, so
|
mas01cr@498
|
27 * the compromise for now is to hardwire the 16.
|
mas01cr@498
|
28 */
|
mas01cr@498
|
29 if((*adb->track_lengths)[k] < 16) {
|
mas01cr@498
|
30 dudCount++;
|
mas01cr@498
|
31 if(!(*adb->track_lengths)[k]) {
|
mas01cr@498
|
32 nullCount++;
|
mas01cr@498
|
33 }
|
mas01cr@498
|
34 }
|
mas01cr@498
|
35 }
|
mas01cr@498
|
36
|
mas01cr@498
|
37 status->numFiles = adb->header->numFiles;
|
mas01cr@498
|
38 status->dim = adb->header->dim;
|
mas01cr@498
|
39 status->length = adb->header->length;
|
mas01cr@498
|
40 status->dudCount = dudCount;
|
mas01cr@498
|
41 status->nullCount = nullCount;
|
mas01cr@498
|
42 status->flags = adb->header->flags;
|
mas01cr@498
|
43 status->data_region_size = adb->header->timesTableOffset - adb->header->dataOffset;
|
mas01cr@498
|
44
|
mas01cr@498
|
45 return 0;
|
mas01cr@498
|
46 }
|
mas01cr@498
|
47
|