}
connect(ui->locut_cutoff_knob, &QDial::valueChanged, this, &MainWindow::cutoff_knob_changed);
+ connect(ui->reset_meters_button, &QPushButton::clicked, this, &MainWindow::reset_meters_button_clicked);
mixer->set_audio_level_callback(bind(&MainWindow::audio_level_callback, this, _1, _2, _3, _4, _5, _6));
}
ui->locut_cutoff_display->setText(buf);
}
+void MainWindow::reset_meters_button_clicked()
+{
+ global_mixer->reset_meters();
+ ui->peak_display->setText("-inf");
+ ui->peak_display->setStyleSheet("");
+}
+
void MainWindow::audio_level_callback(float level_lufs, float peak_db, float global_level_lufs, float range_low_lufs, float range_high_lufs, float auto_gain_staging_db)
{
post_to_main_thread([=]() {
void wb_button_clicked(int channel_number);
void set_transition_names(std::vector<std::string> transition_names);
void cutoff_knob_changed(int value);
+ void reset_meters_button_clicked();
void relayout();
private:
// printf("limiter=%+5.1f compressor=%+5.1f\n", 20.0*log10(limiter_att), 20.0*log10(compressor_att));
// Find peak and R128 levels.
- peak = std::max(peak, find_peak(samples_out));
+ peak = max<float>(peak, find_peak(samples_out));
vector<float> left, right;
deinterleave_samples(samples_out, &left, &right);
float *ptrs[] = { left.data(), right.data() };
theme->channel_clicked(preview_num);
}
+void Mixer::reset_meters()
+{
+ peak = 0.0f;
+ r128.reset();
+ r128.integr_start();
+}
+
Mixer::OutputChannel::~OutputChannel()
{
if (has_current_frame) {
locut_cutoff_hz = cutoff_hz;
}
+ void reset_meters();
+
private:
void bm_frame(unsigned card_index, uint16_t timecode,
FrameAllocator::Frame video_frame, size_t video_offset, uint16_t video_format,
Ebu_r128_proc r128;
// TODO: Implement oversampled peak detection.
- float peak = 0.0f;
+ std::atomic<float> peak{0.0f};
StereoFilter locut; // Default cutoff 150 Hz, 24 dB/oct.
std::atomic<float> locut_cutoff_hz;
</layout>
</item>
<item>
- <widget class="QPushButton" name="pushButton">
+ <widget class="QPushButton" name="reset_meters_button">
<property name="maximumSize">
<size>
<width>30</width>