essential-actions
Clone or download
Modified Files
--- 'a/obssuite/setreplaybuffer/pom.xml'
+++ b/obssuite/setreplaybuffer/pom.xml
@@ -6,7 +6,7 @@
<groupId>com.stream-pi</groupId>
<artifactId>obssuite_setreplaybufferaction</artifactId>
- <version>1.0.0</version>
+ <version>2.0.1</version>
<build>
<plugins>
@@ -39,7 +39,7 @@
<properties>
<ActionAPIVersion>1.0.0-SNAPSHOT</ActionAPIVersion>
<UtilVersion>1.0.0-SNAPSHOT</UtilVersion>
- <OBSSuiteMotherVersion>2.0.0</OBSSuiteMotherVersion>
+ <OBSSuiteMotherVersion>2.0.1</OBSSuiteMotherVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
--- 'a/obssuite/setreplaybuffer/src/main/java/setreplaybuffer/SetReplayBuffer.java'
+++ b/obssuite/setreplaybuffer/src/main/java/setreplaybuffer/SetReplayBuffer.java
@@ -7,10 +7,13 @@ import com.stream_pi.action_api.actionpr
import com.stream_pi.action_api.externalplugin.NormalAction;
import com.stream_pi.util.alert.StreamPiAlert;
import com.stream_pi.util.alert.StreamPiAlertType;
+import com.stream_pi.util.exception.MinorException;
import com.stream_pi.util.version.Version;
import mother.motherconnection.MotherConnection;
import net.twasi.obsremotejava.OBSRemoteController;
+import net.twasi.obsremotejava.callbacks.Callback;
+import net.twasi.obsremotejava.requests.StartReplayBuffer.StartReplayBufferResponse;
public class SetReplayBuffer extends NormalAction
{
@@ -29,10 +32,11 @@ public class SetReplayBuffer extends Nor
states.add("Save");
}
- private ArrayList<String> states;
+ private final ArrayList<String> states;
@Override
- public void initProperties() throws Exception {
+ public void initProperties() throws MinorException
+ {
Property replayStatusActionProperty = new Property("replay_status", Type.LIST);
replayStatusActionProperty.setListValue(states);
@@ -43,43 +47,56 @@ public class SetReplayBuffer extends Nor
}
@Override
- public void initAction() throws Exception {
- // TODO Auto-generated method stub
- }
-
- @Override
- public void onActionClicked() throws Exception {
- // TODO Auto-generated method stub
-
+ public void onActionClicked() throws MinorException
+ {
OBSRemoteController controller = MotherConnection.getRemoteController();
- if (controller == null) {
- new StreamPiAlert("Is OBS Connected?",
- "It seems there is no connection to OBS, please connect it in Settings", StreamPiAlertType.WARNING)
- .show();
- } else {
-
- String state = states.get(getClientProperties().getSingleProperty("replay_status").getSelectedIndex());
+ String state = states.get(getClientProperties().getSingleProperty("replay_status").getSelectedIndex());
- if(state.equals("Start"))
- {
- controller.startReplayBuffer(MotherConnection.getDefaultCallBack("Failed to Start Replay Buffer","Failed to do that"));
- }
- else if(state.equals("Stop"))
+ if (MotherConnection.getRemoteController() == null)
+ {
+ boolean autoConnect = getClientProperties().getSingleProperty(
+ "auto_connect"
+ ).getBoolValue();
+
+ if(autoConnect)
{
- controller.stopReplayBuffer(MotherConnection.getDefaultCallBack("Failed to Stop Replay Buffer","Failed to do that"));
+ MotherConnection.connect(()->setReplayBuffer(state));
}
- else if(state.equals("Save"))
+ else
{
- controller.saveReplayBuffer(MotherConnection.getDefaultCallBack("Failed to Save Replay Buffer","Failed to do that"));
+ MotherConnection.showOBSNotRunningError();
}
}
+ else
+ {
+ setReplayBuffer(state);
+ }
}
- @Override
- public void onShutDown() throws Exception {
- // TODO Auto-generated method stub
+ private void errorThrow(String status, String error)
+ {
+ if(status.equals("error"))
+ {
+ new StreamPiAlert("OBS", error, StreamPiAlertType.ERROR).show();
+ }
+ }
+ private void setReplayBuffer(String state)
+ {
+ OBSRemoteController controller = MotherConnection.getRemoteController();
+
+ switch (state)
+ {
+ case "Start":
+ controller.startReplayBuffer(startReplayBufferResponse -> errorThrow(startReplayBufferResponse.getStatus(), startReplayBufferResponse.getError()));
+ break;
+ case "Stop":
+ controller.stopReplayBuffer(stopReplayBufferResponse -> errorThrow(stopReplayBufferResponse.getStatus(), stopReplayBufferResponse.getError()));
+ break;
+ case "Save":
+ controller.saveReplayBuffer(saveReplayBufferResponse -> errorThrow(saveReplayBufferResponse.getStatus(), saveReplayBufferResponse.getError()));
+ break;
+ }
}
-
}