annotate status.cpp @ 770:c54bc2ffbf92 tip

update tags
author convert-repo
date Fri, 16 Dec 2011 11:34:01 +0000
parents cc2b97d020b1
children
rev   line source
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