diff --git a/imports/netty-buffer-4.0.42.Final.jar b/imports/netty-buffer-4.0.42.Final.jar deleted file mode 100644 index 7e15f9d9..00000000 Binary files a/imports/netty-buffer-4.0.42.Final.jar and /dev/null differ diff --git a/imports/netty-codec-4.0.42.Final.jar b/imports/netty-codec-4.0.42.Final.jar deleted file mode 100644 index 55a5a82f..00000000 Binary files a/imports/netty-codec-4.0.42.Final.jar and /dev/null differ diff --git a/imports/netty-codec-http-4.0.42.Final.jar b/imports/netty-codec-http-4.0.42.Final.jar deleted file mode 100644 index 445f2104..00000000 Binary files a/imports/netty-codec-http-4.0.42.Final.jar and /dev/null differ diff --git a/imports/netty-common-4.0.42.Final.jar b/imports/netty-common-4.0.42.Final.jar deleted file mode 100644 index d7739cd2..00000000 Binary files a/imports/netty-common-4.0.42.Final.jar and /dev/null differ diff --git a/imports/netty-handler-4.0.42.Final.jar b/imports/netty-handler-4.0.42.Final.jar deleted file mode 100644 index 2e75e9d4..00000000 Binary files a/imports/netty-handler-4.0.42.Final.jar and /dev/null differ diff --git a/imports/netty-resolver-dns-2.0.18.jar b/imports/netty-resolver-dns-2.0.18.jar deleted file mode 100644 index d898ef40..00000000 Binary files a/imports/netty-resolver-dns-2.0.18.jar and /dev/null differ diff --git a/imports/netty-transport-4.0.42.Final.jar b/imports/netty-transport-4.0.42.Final.jar deleted file mode 100644 index f74c7446..00000000 Binary files a/imports/netty-transport-4.0.42.Final.jar and /dev/null differ diff --git a/src/audio/broadcast/AudioBroadcaster.java b/src/audio/broadcast/AudioBroadcaster.java index aaafdcb9..a5aab5c1 100644 --- a/src/audio/broadcast/AudioBroadcaster.java +++ b/src/audio/broadcast/AudioBroadcaster.java @@ -92,6 +92,22 @@ public abstract class AudioBroadcaster implements IAudioPacketListener SystemProperties.getInstance().getApplicationFolder(BroadcastModel.TEMPORARY_STREAM_DIRECTORY)); } + /** + * Broadcast binary audio data frames or sequences. + */ + protected abstract void broadcastAudio(byte[] audio); + + /** + * Broadcasts the next song's audio metadata prior to streaming the next song. + * @param metadata + */ + protected abstract void broadcastMetadata(AudioMetadata metadata); + + /** + * Disconnects the broadcaster from the remote server for a reset or final stop. + */ + protected abstract void disconnect(); + /** * Connects to the remote server specified by the broadcast configuration and starts audio streaming. */ @@ -130,11 +146,6 @@ public abstract class AudioBroadcaster implements IAudioPacketListener } } - /** - * Disconnects the broadcaster from the remote server for a reset or final stop. - */ - protected abstract void disconnect(); - /** * Size of recording queue for recordings awaiting streaming */ @@ -197,18 +208,7 @@ public abstract class AudioBroadcaster implements IAudioPacketListener } /** - * Broadcast binary audio data frames or sequences. - */ - protected abstract void broadcastAudio(byte[] audio); - - /** - * Broadcasts the next song's audio metadata prior to streaming the next song. - * @param metadata - */ - protected abstract void broadcastMetadata(AudioMetadata metadata); - - /** - * Registers the listener to receive broadcastAudio state changes + * Registers the listener to receive broadcast events/state changes */ public void setListener(Listener listener) { @@ -216,7 +216,7 @@ public abstract class AudioBroadcaster implements IAudioPacketListener } /** - * Removes the listener from receiving broadcastAudio state changes + * Removes the listener from receiving broadcast events/state changes */ public void removeListener() { diff --git a/src/audio/broadcast/BroadcastConfiguration.java b/src/audio/broadcast/BroadcastConfiguration.java index 07161912..312dca96 100644 --- a/src/audio/broadcast/BroadcastConfiguration.java +++ b/src/audio/broadcast/BroadcastConfiguration.java @@ -18,17 +18,24 @@ ******************************************************************************/ package audio.broadcast; +import audio.broadcast.broadcastify.BroadcastifyConfiguration; +import audio.broadcast.icecast.IcecastHTTPConfiguration; import audio.broadcast.icecast.IcecastTCPConfiguration; +import audio.broadcast.shoutcast.v1.ShoutcastV1Configuration; +import audio.broadcast.shoutcast.v2.ShoutcastV2Configuration; import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.bind.annotation.XmlTransient; import java.net.InetSocketAddress; import java.net.SocketAddress; -@XmlSeeAlso({IcecastTCPConfiguration.class}) +@XmlSeeAlso({BroadcastifyConfiguration.class, + IcecastTCPConfiguration.class, + IcecastHTTPConfiguration.class, + ShoutcastV1Configuration.class, + ShoutcastV2Configuration.class}) @XmlRootElement(name = "stream") public abstract class BroadcastConfiguration { diff --git a/src/audio/broadcast/BroadcastFactory.java b/src/audio/broadcast/BroadcastFactory.java index 8feca393..8aa2b9f3 100644 --- a/src/audio/broadcast/BroadcastFactory.java +++ b/src/audio/broadcast/BroadcastFactory.java @@ -24,6 +24,7 @@ import audio.broadcast.broadcastify.BroadcastifyConfiguration; import audio.broadcast.broadcastify.BroadcastifyConfigurationEditor; import audio.broadcast.icecast.IcecastHTTPAudioBroadcaster; import audio.broadcast.icecast.IcecastHTTPConfiguration; +import audio.broadcast.icecast.IcecastHTTPConfigurationEditor; import audio.broadcast.icecast.IcecastTCPAudioBroadcaster; import audio.broadcast.icecast.IcecastTCPConfiguration; import audio.broadcast.icecast.IcecastTCPConfigurationEditor; @@ -75,12 +76,13 @@ public class BroadcastFactory { case BROADCASTIFY: return new IcecastTCPAudioBroadcaster(defaultAsyncHttpClient, threadPoolManager, - (BroadcastifyConfiguration)configuration); + (BroadcastifyConfiguration)configuration); case ICECAST_TCP: return new IcecastTCPAudioBroadcaster(defaultAsyncHttpClient, threadPoolManager, - (IcecastTCPConfiguration)configuration); + (IcecastTCPConfiguration)configuration); case ICECAST_HTTP: - return new IcecastHTTPAudioBroadcaster(threadPoolManager, (IcecastHTTPConfiguration)configuration); + return new IcecastHTTPAudioBroadcaster(defaultAsyncHttpClient, threadPoolManager, + (IcecastHTTPConfiguration)configuration); case SHOUTCAST_V1: return new ShoutcastV1AudioBroadcaster(threadPoolManager, (ShoutcastV1Configuration)configuration); case SHOUTCAST_V2: @@ -165,6 +167,9 @@ public class BroadcastFactory case ICECAST_TCP: editor = new IcecastTCPConfigurationEditor(broadcastModel, aliasModel, settingsManager); break; + case ICECAST_HTTP: + editor = new IcecastHTTPConfigurationEditor(broadcastModel, aliasModel, settingsManager); + break; default: editor = new EmptyEditor(); break; diff --git a/src/audio/broadcast/BroadcastModel.java b/src/audio/broadcast/BroadcastModel.java index 53b47978..8d744a5e 100644 --- a/src/audio/broadcast/BroadcastModel.java +++ b/src/audio/broadcast/BroadcastModel.java @@ -242,26 +242,18 @@ public class BroadcastModel extends AbstractTableModel implements Listener