]> git.sesse.net Git - nageru/blobdiff - futatabi/mainwindow.cpp
Add a MIDI mapping editor for Futatabi.
[nageru] / futatabi / mainwindow.cpp
index 189102b88cdf63e8659e8c1fe7e75de5ab95510a..f465468b1dbafe68ee2217a786e8db35add06511 100644 (file)
@@ -6,6 +6,7 @@
 #include "frame_on_disk.h"
 #include "player.h"
 #include "futatabi_midi_mapping.pb.h"
+#include "midi_mapping_dialog.h"
 #include "shared/aboutdialog.h"
 #include "shared/disk_space_estimator.h"
 #include "shared/post_to_main_thread.h"
@@ -77,6 +78,7 @@ MainWindow::MainWindow()
        save_settings();
 
        // The menus.
+       connect(ui->midi_mapping_action, &QAction::triggered, this, &MainWindow::midi_mapping_triggered);
        connect(ui->exit_action, &QAction::triggered, this, &MainWindow::exit_triggered);
        connect(ui->export_cliplist_clip_multitrack_action, &QAction::triggered, this, &MainWindow::export_cliplist_clip_multitrack_triggered);
        connect(ui->export_playlist_clip_interpolated_action, &QAction::triggered, this, &MainWindow::export_playlist_clip_interpolated_triggered);
@@ -648,6 +650,7 @@ void MainWindow::speed_slider_changed(int percent)
        float speed = percent / 100.0f;
        ui->speed_lock_btn->setText(QString::fromStdString(" " + to_string(percent) + "%"));
        live_player->set_master_speed(speed);
+       midi_mapper.set_speed_light(speed);
 }
 
 void MainWindow::speed_lock_clicked()
@@ -981,6 +984,11 @@ void MainWindow::report_disk_space(off_t free_bytes, double estimated_seconds_le
        });
 }
 
+void MainWindow::midi_mapping_triggered()
+{
+       MIDIMappingDialog(&midi_mapper).exec();
+}
+
 void MainWindow::exit_triggered()
 {
        close();
@@ -1302,6 +1310,7 @@ void MainWindow::set_master_speed(float speed)
                ui->speed_lock_btn->setText(QString::fromStdString(" " + to_string(percent) + "%"));
 
                live_player->set_master_speed(speed);
+               midi_mapper.set_speed_light(speed);
        });
 }