#include "aboutdialog.h"
#include "alsa_pool.h"
+#include "analyzer.h"
#include "clickable_label.h"
#include "context_menus.h"
#include "correlation_meter.h"
connect(ui->exit_action, &QAction::triggered, this, &MainWindow::exit_triggered);
connect(ui->manual_action, &QAction::triggered, this, &MainWindow::manual_triggered);
connect(ui->about_action, &QAction::triggered, this, &MainWindow::about_triggered);
+ connect(ui->open_analyzer_action, &QAction::triggered, this, &MainWindow::open_analyzer_triggered);
connect(ui->simple_audio_mode, &QAction::triggered, this, &MainWindow::simple_audio_mode_triggered);
connect(ui->multichannel_audio_mode, &QAction::triggered, this, &MainWindow::multichannel_audio_mode_triggered);
connect(ui->input_mapping_action, &QAction::triggered, this, &MainWindow::input_mapping_triggered);
ui->timecode_stream_action->setChecked(global_flags.display_timecode_in_stream);
ui->timecode_stdout_action->setChecked(global_flags.display_timecode_on_stdout);
- if (global_flags.x264_video_to_http) {
+ if (global_flags.x264_video_to_http && isinf(global_flags.x264_crf)) {
connect(ui->x264_bitrate_action, &QAction::triggered, this, &MainWindow::x264_bitrate_triggered);
} else {
ui->x264_bitrate_action->setEnabled(false);
midi_mapper.refresh_lights();
midi_mapper.start_thread();
+ analyzer.reset(new Analyzer);
+
struct sigaction act;
memset(&act, 0, sizeof(act));
act.sa_handler = schedule_cut_signal;
void MainWindow::mixer_shutting_down()
{
- ui->me_live->clean_context();
- ui->me_preview->clean_context();
+ ui->me_live->shutdown();
+ ui->me_preview->shutdown();
+
for (Ui::Display *display : previews) {
- display->display->clean_context();
+ display->display->shutdown();
}
+
+ analyzer->mixer_shutting_down();
}
void MainWindow::cut_triggered()
AboutDialog().exec();
}
+void MainWindow::open_analyzer_triggered()
+{
+ analyzer->show();
+}
+
void MainWindow::simple_audio_mode_triggered()
{
if (global_audio_mixer->get_mapping_mode() == AudioMixer::MappingMode::SIMPLE) {
unsigned channel = output - Mixer::OUTPUT_INPUT0;
previews[channel]->label->setText(name.c_str());
}
+
+ analyzer->update_channel_name(output, name);
}
void MainWindow::update_channel_color(Mixer::Output output, const string &color)
return false;
}
+void MainWindow::closeEvent(QCloseEvent *event)
+{
+ analyzer->hide();
+ event->accept();
+}
+
namespace {
double srgb_to_linear(double x)