Skip to content

Commit 97f74ee

Browse files
authored
Merge pull request #22 from cbrews/cbrews/adding-transition-events
Feature: New Event Callbacks: SwitchTransition, TransitionListChanged
2 parents f2532e0 + 6bcfec3 commit 97f74ee

File tree

9 files changed

+79
-17
lines changed

9 files changed

+79
-17
lines changed

src/main/java/net/twasi/obsremotejava/OBSCommunicator.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@
88
import net.twasi.obsremotejava.callbacks.ErrorCallback;
99
import net.twasi.obsremotejava.callbacks.StringCallback;
1010
import net.twasi.obsremotejava.events.EventType;
11-
import net.twasi.obsremotejava.events.responses.ScenesChangedResponse;
12-
import net.twasi.obsremotejava.events.responses.SwitchScenesResponse;
13-
import net.twasi.obsremotejava.events.responses.TransitionBeginResponse;
14-
import net.twasi.obsremotejava.events.responses.TransitionEndResponse;
11+
import net.twasi.obsremotejava.events.responses.*;
1512
import net.twasi.obsremotejava.objects.throwables.InvalidResponseTypeError;
1613
import net.twasi.obsremotejava.requests.Authenticate.AuthenticateRequest;
1714
import net.twasi.obsremotejava.requests.Authenticate.AuthenticateResponse;
@@ -123,6 +120,8 @@ public class OBSCommunicator {
123120
private Callback onStreamStopped;
124121
private Callback onSwitchScenes;
125122
private Callback onScenesChanged;
123+
private Callback onSwitchTransition;
124+
private Callback onTransitionListChanged;
126125
private Callback onTransitionBegin;
127126
private Callback onTransitionEnd;
128127

@@ -292,6 +291,16 @@ private void processIncomingEvent(String msg, EventType eventType) {
292291
onScenesChanged.run(new Gson().fromJson(msg, ScenesChangedResponse.class));
293292
}
294293
break;
294+
case SwitchTransition:
295+
if (onSwitchTransition != null) {
296+
onSwitchTransition.run(new Gson().fromJson(msg, SwitchTransitionResponse.class));
297+
}
298+
break;
299+
case TransitionListChanged:
300+
if (onTransitionListChanged != null) {
301+
onTransitionListChanged.run(new Gson().fromJson(msg, TransitionListChangedResponse.class));
302+
}
303+
break;
295304
case TransitionBegin:
296305
if (onTransitionBegin != null) {
297306
onTransitionBegin.run(new Gson().fromJson(msg, TransitionBeginResponse.class));
@@ -397,6 +406,14 @@ public void registerOnScenesChanged(Callback onScenesChanged) {
397406
this.onScenesChanged = onScenesChanged;
398407
}
399408

409+
public void registerOnSwitchTransition(Callback onSwitchTransition) {
410+
this.onSwitchTransition = onSwitchTransition;
411+
}
412+
413+
public void registerOnTransitionListChanged(Callback onTransitionListChanged) {
414+
this.onTransitionListChanged = onTransitionListChanged;
415+
}
416+
400417
public void registerOnTransitionBegin(Callback onTransitionBegin) {
401418
this.onTransitionBegin = onTransitionBegin;
402419
}

src/main/java/net/twasi/obsremotejava/OBSRemoteController.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,14 @@ public void registerScenesChangedCallback(Callback onScenesChanged) {
170170
communicator.registerOnScenesChanged(onScenesChanged);
171171
}
172172

173+
public void registerSwitchTransitionCallback(Callback onSwitchTransition) {
174+
communicator.registerOnSwitchTransition(onSwitchTransition);
175+
}
176+
177+
public void registerTransitionListChangedCallback(Callback onTransitionListChanged) {
178+
communicator.registerOnTransitionListChanged(onTransitionListChanged);
179+
}
180+
173181
public void registerTransitionBeginCallback(Callback onTransitionBegin) {
174182
communicator.registerOnTransitionBegin(onTransitionBegin);
175183
}

src/main/java/net/twasi/obsremotejava/events/EventType.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ public enum EventType {
1111
StreamStopped,
1212
SwitchScenes,
1313
ScenesChanged,
14+
SwitchTransition,
15+
TransitionListChanged,
1416
TransitionBegin,
1517
TransitionEnd
1618
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package net.twasi.obsremotejava.events.responses;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import net.twasi.obsremotejava.requests.ResponseBase;
5+
6+
public class SwitchTransitionResponse extends ResponseBase {
7+
@SerializedName("transition-name")
8+
private String transitionName;
9+
10+
public String getTransitionName() {
11+
return transitionName;
12+
}
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package net.twasi.obsremotejava.events.responses;
2+
3+
import net.twasi.obsremotejava.objects.Transition;
4+
import net.twasi.obsremotejava.requests.ResponseBase;
5+
6+
import java.util.List;
7+
8+
public class TransitionListChangedResponse extends ResponseBase {
9+
// Note: enabled these when https://github.com/Palakis/obs-websocket/blob/4.x-current/src/WSEvents.cpp#L561 is released.
10+
// private List<Transition> transitions;
11+
12+
// public List<Transition> getTransitions() { return transitions; }
13+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package net.twasi.obsremotejava.objects;
2+
3+
public class Transition {
4+
private String name;
5+
6+
public String getName() {
7+
return name;
8+
}
9+
}

src/main/java/net/twasi/obsremotejava/requests/GetTransitionList/GetTransitionListResponse.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package net.twasi.obsremotejava.requests.GetTransitionList;
22

33
import com.google.gson.annotations.SerializedName;
4+
import net.twasi.obsremotejava.objects.Transition;
45
import net.twasi.obsremotejava.requests.ResponseBase;
56

67
import java.util.List;
@@ -18,12 +19,4 @@ public String getCurrentTransition() {
1819
public List<Transition> getTransitions() {
1920
return transitions;
2021
}
21-
22-
public class Transition {
23-
private String name;
24-
25-
public String getName() {
26-
return name;
27-
}
28-
}
2922
}

src/test/java/net/twasi/obsremotejava/test/OBSRemoteControllerUnsecuredIT.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22

33
import net.twasi.obsremotejava.callbacks.Callback;
44
import net.twasi.obsremotejava.OBSRemoteController;
5-
import net.twasi.obsremotejava.events.responses.ScenesChangedResponse;
6-
import net.twasi.obsremotejava.events.responses.SwitchScenesResponse;
7-
import net.twasi.obsremotejava.events.responses.TransitionBeginResponse;
8-
import net.twasi.obsremotejava.events.responses.TransitionEndResponse;
5+
import net.twasi.obsremotejava.events.responses.*;
96
import net.twasi.obsremotejava.requests.GetVersion.GetVersionResponse;
107
import net.twasi.obsremotejava.requests.ResponseBase;
118
import org.junit.jupiter.api.Disabled;
@@ -265,6 +262,16 @@ public void run(ResponseBase response) {
265262
System.out.println("Scenes changed");
266263
});
267264

265+
controller.registerSwitchTransitionCallback(res -> {
266+
SwitchTransitionResponse switchTransitionResponse = (SwitchTransitionResponse) res;
267+
System.out.println("Switched active transition to: " + switchTransitionResponse.getTransitionName());
268+
});
269+
270+
controller.registerTransitionListChangedCallback(res -> {
271+
TransitionListChangedResponse transitionListChangedResponse = (TransitionListChangedResponse) res;
272+
System.out.println("Transition list changed");
273+
});
274+
268275
controller.registerTransitionBeginCallback(res -> {
269276
TransitionBeginResponse transitionBeginResponse = (TransitionBeginResponse) res;
270277
System.out.println("Transition started from scene: '" + transitionBeginResponse.getFromScene() + "' to scene: '" + transitionBeginResponse.getToScene() + "'");

src/test/resources/simplelogger.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ org.eclipse.jetty.LEVEL=OFF
44

55
# Default levels for the project
66
org.slf4j.simpleLogger.defaultLogLevel=info
7-
org.slf4j.simpleLogger.log.net.twasi.obsremotejava=debuggi
7+
org.slf4j.simpleLogger.log.net.twasi.obsremotejava=debug

0 commit comments

Comments
 (0)