From 11512a9db999ca92e2dbd8a86d32402b6245efea Mon Sep 17 00:00:00 2001 From: Gwendal Roulleau Date: Thu, 6 Jul 2023 20:07:18 +0200 Subject: [PATCH] [doorbird] Support for more audio streams (#15189) * [doorbird] Support for more audio streams And proper use of a synchronous base class. --------- Signed-off-by: Gwendal Roulleau --- .../internal/audio/DoorbirdAudioSink.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/bundles/org.openhab.binding.doorbird/src/main/java/org/openhab/binding/doorbird/internal/audio/DoorbirdAudioSink.java b/bundles/org.openhab.binding.doorbird/src/main/java/org/openhab/binding/doorbird/internal/audio/DoorbirdAudioSink.java index d6c82b5c01..5a87f4664d 100644 --- a/bundles/org.openhab.binding.doorbird/src/main/java/org/openhab/binding/doorbird/internal/audio/DoorbirdAudioSink.java +++ b/bundles/org.openhab.binding.doorbird/src/main/java/org/openhab/binding/doorbird/internal/audio/DoorbirdAudioSink.java @@ -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 SUPPORTED_FORMATS = new HashSet<>(); - private static final HashSet> SUPPORTED_STREAMS = new HashSet<>(); + private static final Set SUPPORTED_FORMATS = Set.of(AudioFormat.WAV); + private static final Set> 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"); } } -- 2.47.3