]> git.sesse.net Git - nageru/blobdiff - mainwindow.cpp
Clean up resources in the global ResourcePool on exit, in order to avoid some assert...
[nageru] / mainwindow.cpp
index 8a91a3f630dc031ac8414a07fda84af2feb5d768..ede1fb6827de668b0264fedc8953eec3be05a429 100644 (file)
@@ -53,6 +53,7 @@ MainWindow::MainWindow()
        transition_btn3 = ui->transition_btn3;
        qRegisterMetaType<std::vector<std::string>>("std::vector<std::string>");
        connect(ui->me_preview, &GLWidget::transition_names_updated, this, &MainWindow::set_transition_names);
+       qRegisterMetaType<Mixer::Output>("Mixer::Output");
 }
 
 void MainWindow::resizeEvent(QResizeEvent* event)
@@ -83,6 +84,9 @@ void MainWindow::mixer_created(Mixer *mixer)
                // Hook up the click.
                connect(ui_display->display, &GLWidget::clicked, bind(&MainWindow::channel_clicked, this, i));
 
+               // Let the theme update the text whenever the resolution changed.
+               connect(ui_display->display, &GLWidget::resolution_updated, this, &MainWindow::update_channel_name);
+
                // Hook up the keyboard key.
                QShortcut *shortcut = new QShortcut(QKeySequence(Qt::Key_1 + i), this);
                connect(shortcut, &QShortcut::activated, bind(&MainWindow::channel_clicked, this, i));
@@ -113,6 +117,15 @@ void MainWindow::mixer_created(Mixer *mixer)
        mixer->set_audio_level_callback(bind(&MainWindow::audio_level_callback, this, _1, _2, _3, _4, _5, _6));
 }
 
+void MainWindow::mixer_shutting_down()
+{
+       ui->me_live->clean_context();
+       ui->me_preview->clean_context();
+       for (Ui::Display *display : previews) {
+               display->display->clean_context();
+       }
+}
+
 void MainWindow::cutoff_knob_changed(int value)
 {
        float octaves = value * 0.1f;
@@ -247,6 +260,14 @@ void MainWindow::set_transition_names(vector<string> transition_names)
        }
 }
 
+void MainWindow::update_channel_name(Mixer::Output output)
+{
+       if (output >= Mixer::OUTPUT_INPUT0) {
+               unsigned channel = output - Mixer::OUTPUT_INPUT0;
+               previews[channel]->label->setText(global_mixer->get_channel_name(output).c_str());
+       }
+}
+
 void MainWindow::transition_clicked(int transition_number)
 {
        global_mixer->transition_clicked(transition_number);