Analyzer::~Analyzer()
{
+ delete_context(context);
+ delete surface;
+}
+
+void Analyzer::mixer_shutting_down()
+{
+ ui->display->shutdown();
+
if (!make_current(context, surface)) {
printf("oops\n");
exit(1);
}
glDeleteBuffers(1, &pbo);
check_error();
- ui->display->shutdown();
if (resource_pool != nullptr) {
resource_pool->clean_context();
}
- delete_context(context);
- delete surface;
}
void Analyzer::grab_clicked()
public:
Analyzer();
~Analyzer();
+ void mixer_shutting_down();
private:
void grab_clicked();
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;
display->display->shutdown();
}
- analyzer.reset();
+ analyzer->mixer_shutting_down();
}
void MainWindow::cut_triggered()
void MainWindow::open_analyzer_triggered()
{
- analyzer.reset(new Analyzer);
analyzer->show();
}
return false;
}
+void MainWindow::closeEvent(QCloseEvent *event)
+{
+ analyzer->hide();
+ event->accept();
+}
+
namespace {
double srgb_to_linear(double x)
void setup_audio_miniview();
void setup_audio_expanded_view();
bool eventFilter(QObject *watched, QEvent *event) override;
+ void closeEvent(QCloseEvent *event) override;
void set_white_balance(int channel_number, int x, int y);
void update_cutoff_labels(float cutoff_hz);
void update_eq_label(unsigned bus_index, EQBand band, float gain_db);