#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;
update_eq_label(bus_index, EQ_BAND_MID, global_audio_mixer->get_eq(bus_index, EQ_BAND_MID));
update_eq_label(bus_index, EQ_BAND_BASS, global_audio_mixer->get_eq(bus_index, EQ_BAND_BASS));
ui_audio_expanded_view->fader->setDbValue(global_audio_mixer->get_fader_volume(bus_index));
- ui_audio_expanded_view->mute_button->setChecked(global_audio_mixer->get_mute(bus_index) ? Qt::Checked : Qt::Unchecked);
+ ui_audio_expanded_view->mute_button->setChecked(global_audio_mixer->get_mute(bus_index));
connect(ui_audio_expanded_view->mute_button, &QPushButton::toggled,
bind(&MainWindow::mute_button_toggled, this, bus_index, _1));
ui->buses->addWidget(channel);
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)