From 83e59ab6e9505642ed0e3a22d0acee91a034501d Mon Sep 17 00:00:00 2001 From: Manevolent Date: Wed, 15 Aug 2018 11:43:41 -0400 Subject: [PATCH] Exposed voice packets to the client --- .../manevolent/ts3j/event/TS3Listener.java | 3 ++ .../ts3j/event/TeamspeakListener.java | 29 ------------------- .../client/LocalClientHandlerFull.java | 6 ++++ .../client/AbstractTeamspeakClientSocket.java | 9 ++++++ 4 files changed, 18 insertions(+), 29 deletions(-) delete mode 100644 src/main/java/com/github/manevolent/ts3j/event/TeamspeakListener.java diff --git a/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java b/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java index 47d299c..e75b3e0 100644 --- a/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java +++ b/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java @@ -26,6 +26,8 @@ package com.github.manevolent.ts3j.event; * #L% */ +import com.github.manevolent.ts3j.audio.Microphone; + public interface TS3Listener { void onTextMessage(TextMessageEvent e); @@ -67,4 +69,5 @@ public interface TS3Listener { void onDisconnected(DisconnectedEvent e); void onChannelSubscribed(ChannelSubscribedEvent e); + } diff --git a/src/main/java/com/github/manevolent/ts3j/event/TeamspeakListener.java b/src/main/java/com/github/manevolent/ts3j/event/TeamspeakListener.java deleted file mode 100644 index b70db2c..0000000 --- a/src/main/java/com/github/manevolent/ts3j/event/TeamspeakListener.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.github.manevolent.ts3j.event; - -public interface TeamspeakListener { - - void onTextMessage(TextMessageEvent e); - - void onClientJoin(ClientJoinEvent e); - - void onClientLeave(ClientLeaveEvent e); - - void onServerEdit(ServerEditedEvent e); - - void onChannelEdit(ChannelEditedEvent e); - - void onChannelDescriptionChanged(ChannelDescriptionEditedEvent e); - - void onClientMoved(ClientMovedEvent e); - - void onChannelCreate(ChannelCreateEvent e); - - void onChannelDeleted(ChannelDeletedEvent e); - - void onChannelMoved(ChannelMovedEvent e); - - void onChannelPasswordChanged(ChannelPasswordChangedEvent e); - - void onPrivilegeKeyUsed(PrivilegeKeyUsedEvent e); - -} diff --git a/src/main/java/com/github/manevolent/ts3j/protocol/packet/handler/client/LocalClientHandlerFull.java b/src/main/java/com/github/manevolent/ts3j/protocol/packet/handler/client/LocalClientHandlerFull.java index 74940fa..f860999 100644 --- a/src/main/java/com/github/manevolent/ts3j/protocol/packet/handler/client/LocalClientHandlerFull.java +++ b/src/main/java/com/github/manevolent/ts3j/protocol/packet/handler/client/LocalClientHandlerFull.java @@ -4,6 +4,7 @@ import com.github.manevolent.ts3j.command.CommandProcessException; import com.github.manevolent.ts3j.command.CommandProcessor; import com.github.manevolent.ts3j.command.MultiCommand; import com.github.manevolent.ts3j.protocol.Packet; +import com.github.manevolent.ts3j.protocol.packet.PacketBody0Voice; import com.github.manevolent.ts3j.protocol.packet.PacketBody2Command; import com.github.manevolent.ts3j.protocol.packet.PacketBody3CommandLow; import com.github.manevolent.ts3j.protocol.socket.client.LocalTeamspeakClientSocket; @@ -11,6 +12,7 @@ import com.github.manevolent.ts3j.util.Ts3Debugging; import java.io.IOException; import java.util.concurrent.TimeoutException; +import java.util.function.Consumer; public abstract class LocalClientHandlerFull extends LocalClientHandler { protected LocalClientHandlerFull(LocalTeamspeakClientSocket client) { @@ -50,6 +52,10 @@ public abstract class LocalClientHandlerFull extends LocalClientHandler { throw new IOException(e); } + break; + case VOICE: + Consumer handler = getClient().getVoiceHandler(); + if (handler != null) handler.accept((PacketBody0Voice) packet.getBody()); break; } } diff --git a/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/AbstractTeamspeakClientSocket.java b/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/AbstractTeamspeakClientSocket.java index 62f39d8..d21db8e 100644 --- a/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/AbstractTeamspeakClientSocket.java +++ b/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/AbstractTeamspeakClientSocket.java @@ -69,6 +69,7 @@ public abstract class AbstractTeamspeakClientSocket private CommandProcessor commandProcessor; + private Consumer voiceHandler; private Consumer exceptionHandler = Throwable::printStackTrace; private Identity identity = null; @@ -877,6 +878,14 @@ public abstract class AbstractTeamspeakClientSocket this.exceptionHandler = exceptionHandler; } + public Consumer getVoiceHandler() { + return voiceHandler; + } + + public void setVoiceHandler(Consumer voiceHandler) { + this.voiceHandler = voiceHandler; + } + private class NetworkHandler implements Runnable { @Override public void run() {