X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2Fsink%2FIcecast2Sink.java;h=36413f96b6ae6e1b859cb4778e5cbf4ab54f07ef;hb=09f8bd2297dc864e24baa67c65be97104e00c320;hp=0a5d22d79740da440e8b4671623a9700b19f04a7;hpb=7188da95cfb6dc2bf140eb8ac7e4dc99a0761a97;p=sonitus.git diff --git a/src/main/java/net/pterodactylus/sonitus/data/sink/Icecast2Sink.java b/src/main/java/net/pterodactylus/sonitus/data/sink/Icecast2Sink.java index 0a5d22d..36413f9 100644 --- a/src/main/java/net/pterodactylus/sonitus/data/sink/Icecast2Sink.java +++ b/src/main/java/net/pterodactylus/sonitus/data/sink/Icecast2Sink.java @@ -24,9 +24,12 @@ import java.io.UnsupportedEncodingException; import java.net.Socket; import java.net.URLEncoder; import java.util.Arrays; +import java.util.Collections; +import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; +import net.pterodactylus.sonitus.data.Controller; import net.pterodactylus.sonitus.data.Metadata; import net.pterodactylus.sonitus.data.Sink; import net.pterodactylus.sonitus.io.InputStreamDrainer; @@ -108,6 +111,20 @@ public class Icecast2Sink implements Sink { } // + // CONTROLLED METHODS + // + + @Override + public String name() { + return String.format("icecast://%s:%d/%s", server, port, mountPoint); + } + + @Override + public List> controllers() { + return Collections.emptyList(); + } + + // // SINK METHODS // @@ -227,8 +244,8 @@ public class Icecast2Sink implements Sink { } /** - * Returns a MIME type for the given metadata. Currently only Vorbis, MP3, and - * PCM formats are recognized. + * Returns a MIME type for the given metadata. Currently only Vorbis, MP3, PCM, + * Ogg Vorbis, Opus, and FLAC formats are recognized. * * @param metadata * The metadata to get a MIME type for @@ -245,6 +262,15 @@ public class Icecast2Sink implements Sink { if ("PCM".equalsIgnoreCase(encoding)) { return "audio/vnd.wave"; } + if ("Vorbis".equalsIgnoreCase(encoding)) { + return "application/ogg"; + } + if ("Opus".equalsIgnoreCase(encoding)) { + return "audio/ogg; codecs=opus"; + } + if ("FLAC".equalsIgnoreCase(encoding)) { + return "audio/flac"; + } return "application/octet-stream"; }