global_mainwindow = this;
ui->setupUi(this);
+ // The menus.
+ connect(ui->exit_action, &QAction::triggered, this, &MainWindow::exit_triggered);
+
global_disk_space_estimator = new DiskSpaceEstimator(bind(&MainWindow::report_disk_space, this, _1, _2));
disk_free_label = new QLabel(this);
disk_free_label->setStyleSheet("QLabel {padding-right: 5px;}");
live_player_clip_done();
});
});
+ live_player->set_next_clip_callback(bind(&MainWindow::live_player_get_next_clip, this));
live_player->set_progress_callback([this](double played_this_clip, double total_length) {
post_to_main_thread([this, played_this_clip, total_length] {
live_player_clip_progress(played_this_clip, total_length);
void MainWindow::live_player_clip_done()
{
+ int row = playlist_clips->get_currently_playing();
+ if (row == -1 || row == int(playlist_clips->size()) - 1) {
+ ui->live_label->setText("Current output (paused)");
+ playlist_clips->set_currently_playing(-1, 0.0f);
+ } else {
+ playlist_clips->set_currently_playing(row + 1, 0.0f);
+ }
+}
+
+Clip MainWindow::live_player_get_next_clip()
+{
+ // FIXME: threading
int row = playlist_clips->get_currently_playing();
if (row != -1 && row < int(playlist_clips->size()) - 1) {
- ++row;
- const Clip &clip = *playlist_clips->clip(row);
- live_player->play_clip(clip, clip.stream_idx);
- playlist_clips->set_currently_playing(row, 0.0f);
+ return *playlist_clips->clip(row + 1);
} else {
- playlist_clips->set_currently_playing(-1, 0.0f);
- ui->live_label->setText("Current output (paused)");
+ return Clip();
}
}
});
}
+void MainWindow::exit_triggered()
+{
+ close();
+}
+