view accumulator_test.cpp @ 462:f689510baaf4 api-inversion

Simplify audioDB::query_loop_points. Using the new functions audiodb_track_id_datum() and audiodb_datum_qpointers(), much of the body of the method disappears. Of course, we've probably introduced some inefficiencies and extra memory copies, but I'm fairly sure that this method is going to be dominated by disk i/o time anyway, so it doesn't matter.
author mas01cr
date Tue, 30 Dec 2008 15:38:55 +0000
parents 166312a124bc
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;
}