view accumulator_test.cpp @ 596:6ad0a6e67d4c

Take advantage of those new handy _or_goto_error macros Use them in various places where previously we either elided the error checking (various lseek() calls) or used a combination of calls (replaced by malloc_and_fill_or_goto_error()). In the process, fix what is probably a bug (or else introduce one, but I don't think so): audiodb_track_id_datum() computed the offset into the timesTable wrongly, forgetting to multiply by 2. (TODO: this should be easily testable using the API). Now all of LIBOBJS can be produced by my (Debian's) mingw32 cross-compiler, except for lshlib.o.
author mas01cr
date Tue, 11 Aug 2009 21:42:49 +0000
parents 342822c2d49a
children
line wrap: on
line source
#include "audioDB.h"
extern "C" {
#include "audioDB_API.h"
}
#include "audioDB-internals.h"

#include "accumulators.h"

static NearestAccumulator<adb_result_dist_lt> *foo = new NearestAccumulator<adb_result_dist_lt>();

int main() {
  adb_result_t r;
  r.key = "hello";
  r.ipos = 0;
  r.qpos = 0;
  r.dist = 3;
  foo->add_point(&r);
  r.ipos = 1;
  r.dist = 2;
  foo->add_point(&r);
  r.qpos = 1;
  foo->add_point(&r);

  adb_query_results_t *rs;
  rs = foo->get_points();
  for (unsigned int k = 0; k < rs->nresults; k++) {
    r = rs->results[k];
    printf("%s: %f %u %u\n", r.key, r.dist, r.qpos, r.ipos);
  }
  free(rs->results);
  free(rs);
  delete foo;
  return 1;
}