From fa745e9accb9fc660758b814de896ddee4b22f78 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Tue, 25 Sep 2018 13:35:12 +0200 Subject: [PATCH] Add item to context menu to stop recording in RecordingsTab --- .../java/ctbrec/recorder/LocalRecorder.java | 3 +++ src/main/java/ctbrec/ui/RecordingsTab.java | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/ctbrec/recorder/LocalRecorder.java b/src/main/java/ctbrec/recorder/LocalRecorder.java index e1df34ea..b12c444b 100644 --- a/src/main/java/ctbrec/recorder/LocalRecorder.java +++ b/src/main/java/ctbrec/recorder/LocalRecorder.java @@ -19,6 +19,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.NoSuchElementException; import java.util.Objects; import org.slf4j.Logger; @@ -107,6 +108,8 @@ public class LocalRecorder implements Recorder { stopRecordingProcess(model); } LOG.info("Model {} removed", model); + } else { + throw new NoSuchElementException("Model " + model.getName() + " ["+model.getUrl()+"] not found in list of recorded models"); } } diff --git a/src/main/java/ctbrec/ui/RecordingsTab.java b/src/main/java/ctbrec/ui/RecordingsTab.java index f8074472..edbb502c 100644 --- a/src/main/java/ctbrec/ui/RecordingsTab.java +++ b/src/main/java/ctbrec/ui/RecordingsTab.java @@ -25,6 +25,7 @@ import com.iheartradio.m3u8.PlaylistException; import ctbrec.Config; import ctbrec.HttpClient; +import ctbrec.Model; import ctbrec.Recording; import ctbrec.Recording.STATUS; import ctbrec.recorder.Recorder; @@ -228,10 +229,25 @@ public class RecordingsTab extends Tab implements TabSelectionListener { openInPlayer.setOnAction((e) -> { play(recording); }); - if(recording.getStatus() == STATUS.FINISHED) { + if(recording.getStatus() == STATUS.FINISHED || Config.getInstance().getSettings().localRecording) { contextMenu.getItems().add(openInPlayer); } + MenuItem stopRecording = new MenuItem("Stop recording"); + stopRecording.setOnAction((e) -> { + Model m = new Model(); + m.setName(recording.getModelName()); + m.setUrl(CtbrecApplication.BASE_URI + '/' + recording.getModelName() + '/'); + try { + recorder.stopRecording(m); + } catch (Exception e1) { + showErrorDialog("Stop recording", "Couldn't stop recording of model " + m.getName(), e1); + } + }); + if(recording.getStatus() == STATUS.RECORDING) { + contextMenu.getItems().add(stopRecording); + } + MenuItem deleteRecording = new MenuItem("Delete"); deleteRecording.setOnAction((e) -> { delete(recording);