diff options
Diffstat (limited to 'src/powerlist.cc')
-rw-r--r-- | src/powerlist.cc | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/powerlist.cc b/src/powerlist.cc index 4f02892..cf843a3 100644 --- a/src/powerlist.cc +++ b/src/powerlist.cc @@ -168,16 +168,22 @@ void PowerList::finalise() master->load(); float power = 0; - size_t s = 0; - for(; s < SIZE && s < master->size; s++) { - power += master->data[s] * master->data[s]; - } + if(sample->power == -1) { // Power not defined. Calculate it! + DEBUG(powerlist, "Calculating power\n"); + size_t s = 0; + for(; s < SIZE && s < master->size; s++) { + power += master->data[s] * master->data[s]; + } - power = sqrt(power); + power = sqrt(power); - if(power > power_max) power_max = power; + if(power > power_max) power_max = power; - item.power = power; + item.power = power; + } else { // Power defined in xml + DEBUG(powerlist, "Using power from xml\n"); + power = sample->power; + } DEBUG(rand, " - power: %f\n", power); |