X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mainwindow.cpp;h=84231b743a0734cf91c143a9f99a16c11b45f157;hb=9c8b3d2c80d20a391ada89a2a54910ec35c036d2;hp=74b67e4396f221ee552a1822f8e3a334792ea102;hpb=3a2c9e40ad5550a729a754de5df83a0650724415;p=nageru diff --git a/mainwindow.cpp b/mainwindow.cpp index 74b67e4..84231b7 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -2,6 +2,7 @@ #include "clip_list.h" #include "player.h" +#include "post_to_main_thread.h" #include "ui_mainwindow.h" #include @@ -63,6 +64,11 @@ MainWindow::MainWindow() preview_player = new Player(ui->preview_display); live_player = new Player(ui->live_display); + live_player->set_done_callback([this]{ + post_to_main_thread([this]{ + live_player_clip_done(); + }); + }); } void MainWindow::queue_clicked() @@ -110,7 +116,20 @@ void MainWindow::play_clicked() row = selected->selectedRows(0)[0].row(); } - const Clip &clip = *cliplist_clips->clip(row); + const Clip &clip = *playlist_clips->clip(row); live_player->play_clip(clip, clip.stream_idx); playlist_clips->set_currently_playing(row); } + +void MainWindow::live_player_clip_done() +{ + 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); + } else { + playlist_clips->set_currently_playing(-1); + } +}