void MainWindow::play_clicked()
{
- if (playlist_clips->empty())
- return;
-
QItemSelectionModel *selected = ui->playlist->selectionModel();
- unsigned start_row;
if (!selected->hasSelection()) {
- start_row = 0;
- } else {
- start_row = selected->selectedRows(0)[0].row();
+ return;
}
+ unsigned start_row = selected->selectedRows(0)[0].row();
vector<ClipWithID> clips;
for (unsigned row = start_row; row < playlist_clips->size(); ++row) {
live_player->play(clips);
playlist_clips->set_progress({ { start_row, 0.0f } });
ui->playlist->selectionModel()->clear();
- playlist_selection_changed();
-
ui->stop_btn->setEnabled(true);
+ playlist_selection_changed();
}
void MainWindow::stop_clicked()
playlist_clips->set_progress({});
live_player->play(fake_clip);
ui->stop_btn->setEnabled(false);
+ playlist_selection_changed();
}
void MainWindow::speed_slider_changed(int percent)
void MainWindow::live_player_done()
{
- playlist_selection_changed();
playlist_clips->set_progress({});
ui->stop_btn->setEnabled(false);
+ playlist_selection_changed();
}
void MainWindow::live_player_clip_progress(const map<uint64_t, double> &progress, double time_remaining)
ui->playlist_move_down_btn->setEnabled(
any_selected && selected->selectedRows().back().row() < int(playlist_clips->size()) - 1);
- ui->play_btn->setEnabled(!playlist_clips->empty());
- midi_mapper.set_play_enabled(!playlist_clips->empty());
+ ui->play_btn->setEnabled(any_selected);
+ if (ui->stop_btn->isEnabled()) { // Playing.
+ midi_mapper.set_play_enabled(MIDIMapper::On);
+ } else if (any_selected) {
+ midi_mapper.set_play_enabled(MIDIMapper::Blinking);
+ } else {
+ midi_mapper.set_play_enabled(MIDIMapper::Off);
+ }
if (!any_selected) {
set_output_status("paused");