| 613 | } |
| 614 | |
| 615 | void ScanJob::update_data(ScanData &data) |
| 616 | { |
| 617 | if (error) { |
| 618 | data.error_directories.push_back(path.string()); |
| 619 | return; |
| 620 | } |
| 621 | data.files += nb_files; |
| 622 | data.skipped += skipped; |
| 623 | if (!nb_files) |
| 624 | return; |
| 625 | |
| 626 | // Collect clipping stats |
| 627 | for (const Track &track : tracks) { |
| 628 | if (track.aclip || track.tclip) |
| 629 | data.clipping_adjustments++; |
| 630 | } |
| 631 | |
| 632 | if (config.tag_mode != 'd') { |
| 633 | for (const Track &track : tracks) { |
| 634 | data.total_gain += track.result.track_gain; |
| 635 | data.total_peak += track.result.track_peak; |
| 636 | if (track.result.track_loudness != -HUGE_VAL) |
| 637 | data.total_loudness += track.result.track_loudness; |
| 638 | track.result.track_gain > 0.0 ? data.total_positive++ : data.total_negative++; |
| 639 | } |
| 640 | } |
| 641 | } |
| 642 | |
| 643 | void ScanJob::Track::calculate_loudness(const Config &config) |
| 644 | { |