X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fmainwindow.cpp;h=c69f67a17ad0cc43ab209b0b7c07ad4f8d2360c5;hb=2c9a83aeae44dae6a0bbfbae33719976e6d527af;hp=350b1b2966d5327b20f0980b21e3eda31de401d3;hpb=8e88294902b4b6f43c8db83dbf04830b5b9d2bfd;p=nageru diff --git a/futatabi/mainwindow.cpp b/futatabi/mainwindow.cpp index 350b1b2..c69f67a 100644 --- a/futatabi/mainwindow.cpp +++ b/futatabi/mainwindow.cpp @@ -181,6 +181,8 @@ MainWindow::MainWindow() connect(ui->stop_btn, &QPushButton::clicked, this, &MainWindow::stop_clicked); ui->stop_btn->setEnabled(false); + connect(ui->speed_slider, &QAbstractSlider::valueChanged, this, &MainWindow::speed_slider_changed); + connect(ui->playlist_duplicate_btn, &QPushButton::clicked, this, &MainWindow::playlist_duplicate); connect(ui->playlist_remove_btn, &QPushButton::clicked, this, &MainWindow::playlist_remove); @@ -624,6 +626,13 @@ void MainWindow::stop_clicked() ui->stop_btn->setEnabled(false); } +void MainWindow::speed_slider_changed(int percent) +{ + float speed = percent / 100.0f; + ui->speed_label->setText(QString::fromStdString(to_string(percent) + "%")); + live_player->set_master_speed(speed); +} + void MainWindow::live_player_done() { playlist_selection_changed(); @@ -1225,6 +1234,21 @@ void MainWindow::switch_camera(unsigned camera_idx) }); } +void MainWindow::set_master_speed(float speed) +{ + speed = min(max(speed, 0.1f), 2.0f); + + post_to_main_thread([this, speed] { + int percent = lrintf(speed * 100.0f); + ui->speed_slider->blockSignals(true); + ui->speed_slider->setValue(percent); + ui->speed_slider->blockSignals(false); + ui->speed_label->setText(QString::fromStdString(to_string(percent) + "%")); + }); + + live_player->set_master_speed(speed); +} + void MainWindow::cue_in() { post_to_main_thread([this] { cue_in_clicked(); });