]> git.basschouten.com Git - openhab-addons.git/commitdiff
[doorbird] Support for more audio streams (#15189)
authorGwendal Roulleau <dalgwen@users.noreply.github.com>
Thu, 6 Jul 2023 18:07:18 +0000 (20:07 +0200)
committerGitHub <noreply@github.com>
Thu, 6 Jul 2023 18:07:18 +0000 (20:07 +0200)
* [doorbird] Support for more audio streams

And proper use of a synchronous base class.

---------

Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
bundles/org.openhab.binding.doorbird/src/main/java/org/openhab/binding/doorbird/internal/audio/DoorbirdAudioSink.java

index d6c82b5c0111e8fdb062cf482eb3ecd54d4abff4..5a87f4664d505815f7d460aa4ef1f6f9ff4e1ede 100644 (file)
@@ -13,7 +13,6 @@
 package org.openhab.binding.doorbird.internal.audio;
 
 import java.io.IOException;
-import java.util.HashSet;
 import java.util.Locale;
 import java.util.Set;
 
@@ -23,9 +22,8 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 import org.openhab.binding.doorbird.internal.handler.DoorbellHandler;
 import org.openhab.core.audio.AudioFormat;
-import org.openhab.core.audio.AudioSink;
+import org.openhab.core.audio.AudioSinkSync;
 import org.openhab.core.audio.AudioStream;
-import org.openhab.core.audio.FixedLengthAudioStream;
 import org.openhab.core.audio.UnsupportedAudioFormatException;
 import org.openhab.core.audio.UnsupportedAudioStreamException;
 import org.openhab.core.library.types.PercentType;
@@ -37,18 +35,13 @@ import org.openhab.core.library.types.PercentType;
  *
  */
 @NonNullByDefault
-public class DoorbirdAudioSink implements AudioSink {
+public class DoorbirdAudioSink extends AudioSinkSync {
 
-    private static final HashSet<AudioFormat> SUPPORTED_FORMATS = new HashSet<>();
-    private static final HashSet<Class<? extends AudioStream>> SUPPORTED_STREAMS = new HashSet<>();
+    private static final Set<AudioFormat> SUPPORTED_FORMATS = Set.of(AudioFormat.WAV);
+    private static final Set<Class<? extends AudioStream>> SUPPORTED_STREAMS = Set.of(AudioStream.class);
 
     private DoorbellHandler doorbellHandler;
 
-    static {
-        SUPPORTED_FORMATS.add(AudioFormat.WAV);
-        SUPPORTED_STREAMS.add(FixedLengthAudioStream.class);
-    }
-
     public DoorbirdAudioSink(DoorbellHandler doorbellHandler) {
         this.doorbellHandler = doorbellHandler;
     }
@@ -64,7 +57,7 @@ public class DoorbirdAudioSink implements AudioSink {
     }
 
     @Override
-    public void process(@Nullable AudioStream audioStream)
+    protected void processSynchronously(@Nullable AudioStream audioStream)
             throws UnsupportedAudioFormatException, UnsupportedAudioStreamException {
         if (audioStream == null) {
             return;
@@ -93,6 +86,6 @@ public class DoorbirdAudioSink implements AudioSink {
 
     @Override
     public void setVolume(PercentType volume) {
-        // NOT IMPLEMENTED
+        throw new UnsupportedOperationException("Volume can not be set");
     }
 }