Mercurial > hg > audiodb
changeset 695:01e25f938b63
simplify sample code slightly
Now there are two bits that are exactly the same as audiodb_query_spec().
They should be merged with the query code.
author | mas01cr |
---|---|
date | Thu, 22 Apr 2010 21:03:59 +0000 |
parents | 55aa1919d735 |
children | bb9478d5b57e |
files | audioDB.cpp sample.cpp |
diffstat | 2 files changed, 26 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/audioDB.cpp Thu Apr 22 21:03:53 2010 +0000 +++ b/audioDB.cpp Thu Apr 22 21:03:59 2010 +0000 @@ -1119,6 +1119,7 @@ } total += prop; } + audiodb_liszt_free_results(adb, liszt); /* FIXME: the mean isn't really what we should be using here; it's more a question of "how many independent sequences of length
--- a/sample.cpp Thu Apr 22 21:03:53 2010 +0000 +++ b/sample.cpp Thu Apr 22 21:03:59 2010 +0000 @@ -35,56 +35,41 @@ } } - if(!(qspec->qid.datum)) { - switch(qspec->params.distance) { - case ADB_DISTANCE_DOT_PRODUCT: + /* FIXME: this paragraph is the same as in audiodb_query_spec(). */ + switch(qspec->params.distance) { + case ADB_DISTANCE_DOT_PRODUCT: + switch(qspec->params.accumulation) { + case ADB_ACCUMULATION_DB: qstate.accumulator = new DBAccumulator<adb_result_dist_gt>(qspec->params.npoints); break; - case ADB_DISTANCE_EUCLIDEAN_NORMED: - case ADB_DISTANCE_EUCLIDEAN: - qstate.accumulator = new DBAccumulator<adb_result_dist_lt>(qspec->params.npoints); + case ADB_ACCUMULATION_PER_TRACK: + qstate.accumulator = new PerTrackAccumulator<adb_result_dist_gt>(qspec->params.npoints, qspec->params.ntracks); + break; + case ADB_ACCUMULATION_ONE_TO_ONE: + qstate.accumulator = new NearestAccumulator<adb_result_dist_gt>(); break; default: goto error; } - } else { - /* FIXME: this paragraph is the same as in audiodb_query_spec(), - apart from only being taken in one branch */ - switch(qspec->params.distance) { - case ADB_DISTANCE_DOT_PRODUCT: - switch(qspec->params.accumulation) { - case ADB_ACCUMULATION_DB: - qstate.accumulator = new DBAccumulator<adb_result_dist_gt>(qspec->params.npoints); - break; - case ADB_ACCUMULATION_PER_TRACK: - qstate.accumulator = new PerTrackAccumulator<adb_result_dist_gt>(qspec->params.npoints, qspec->params.ntracks); - break; - case ADB_ACCUMULATION_ONE_TO_ONE: - qstate.accumulator = new NearestAccumulator<adb_result_dist_gt>(); - break; - default: - goto error; - } + break; + case ADB_DISTANCE_EUCLIDEAN_NORMED: + case ADB_DISTANCE_EUCLIDEAN: + switch(qspec->params.accumulation) { + case ADB_ACCUMULATION_DB: + qstate.accumulator = new DBAccumulator<adb_result_dist_lt>(qspec->params.npoints); break; - case ADB_DISTANCE_EUCLIDEAN_NORMED: - case ADB_DISTANCE_EUCLIDEAN: - switch(qspec->params.accumulation) { - case ADB_ACCUMULATION_DB: - qstate.accumulator = new DBAccumulator<adb_result_dist_lt>(qspec->params.npoints); - break; - case ADB_ACCUMULATION_PER_TRACK: - qstate.accumulator = new PerTrackAccumulator<adb_result_dist_lt>(qspec->params.npoints, qspec->params.ntracks); - break; - case ADB_ACCUMULATION_ONE_TO_ONE: - qstate.accumulator = new NearestAccumulator<adb_result_dist_lt>(); - break; - default: - goto error; - } - break; + case ADB_ACCUMULATION_PER_TRACK: + qstate.accumulator = new PerTrackAccumulator<adb_result_dist_lt>(qspec->params.npoints, qspec->params.ntracks); + break; + case ADB_ACCUMULATION_ONE_TO_ONE: + qstate.accumulator = new NearestAccumulator<adb_result_dist_lt>(); + break; default: goto error; } + break; + default: + goto error; } if(audiodb_sample_loop(adb, qspec, &qstate)) {