[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 <gwendal.roulleau@gmail.com>
This commit is contained in:
Gwendal Roulleau 2023-07-06 20:07:18 +02:00 committed by GitHub
parent 94a761f84e
commit 11512a9db9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View 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");
}
}