mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
[PJLinkDevice] audio/video mute (#16504)
* audio/video mute Signed-off-by: Nils Schnabel <github@to.nilsschnabel.de> Co-authored-by: Leo Siepel <leosiepel@gmail.com> Signed-off-by: Ciprian Pascu <contact@ciprianpascu.ro>
This commit is contained in:
parent
703f62937e
commit
ec8353ebb4
@ -36,6 +36,7 @@ public class PJLinkDeviceBindingConstants {
|
||||
public static final String CHANNEL_TYPE_INPUT = "input";
|
||||
public static final String CHANNEL_TYPE_AUDIO_MUTE = "audioMute";
|
||||
public static final String CHANNEL_TYPE_VIDEO_MUTE = "videoMute";
|
||||
public static final String CHANNEL_TYPE_AUDIO_AND_VIDEO_MUTE = "audioAndVideoMute";
|
||||
public static final String CHANNEL_TYPE_LAMP_HOURS = "lampHours";
|
||||
public static final String CHANNEL_TYPE_LAMP_ACTIVE = "lampActive";
|
||||
|
||||
|
@ -181,9 +181,12 @@ public class PJLinkDeviceHandler extends BaseThingHandler {
|
||||
break;
|
||||
case CHANNEL_TYPE_AUDIO_MUTE:
|
||||
case CHANNEL_TYPE_VIDEO_MUTE:
|
||||
case CHANNEL_TYPE_AUDIO_AND_VIDEO_MUTE:
|
||||
boolean isAudioMute = channelTypeId.equals(PJLinkDeviceBindingConstants.CHANNEL_TYPE_AUDIO_MUTE);
|
||||
boolean isVideoMute = channelTypeId.equals(PJLinkDeviceBindingConstants.CHANNEL_TYPE_VIDEO_MUTE);
|
||||
if (isVideoMute || isAudioMute) {
|
||||
boolean isAudioAndVideoMute = channelTypeId
|
||||
.equals(PJLinkDeviceBindingConstants.CHANNEL_TYPE_AUDIO_AND_VIDEO_MUTE);
|
||||
if (isVideoMute || isAudioMute || isAudioAndVideoMute) {
|
||||
if (command == RefreshType.REFRESH) {
|
||||
// refresh both video and audio mute, as it's one request
|
||||
MuteQueryResponseValue muteStatus = device.getMuteStatus();
|
||||
@ -191,6 +194,8 @@ public class PJLinkDeviceHandler extends BaseThingHandler {
|
||||
OnOffType.from(muteStatus.isAudioMuted()));
|
||||
updateState(PJLinkDeviceBindingConstants.CHANNEL_VIDEO_MUTE,
|
||||
OnOffType.from(muteStatus.isVideoMuted()));
|
||||
updateState(PJLinkDeviceBindingConstants.CHANNEL_TYPE_AUDIO_AND_VIDEO_MUTE,
|
||||
OnOffType.from(muteStatus.isAudioAndVideoMuted()));
|
||||
} else {
|
||||
if (isAudioMute) {
|
||||
logger.trace("Received audio mute command {}", command);
|
||||
@ -202,6 +207,11 @@ public class PJLinkDeviceHandler extends BaseThingHandler {
|
||||
boolean muteOn = command == OnOffType.ON;
|
||||
device.setMute(MuteInstructionChannel.VIDEO, muteOn);
|
||||
}
|
||||
if (isAudioAndVideoMute) {
|
||||
logger.trace("Received video mute command {}", command);
|
||||
boolean muteOn = command == OnOffType.ON;
|
||||
device.setMute(MuteInstructionChannel.AUDIO_AND_VIDEO, muteOn);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.debug("Received unknown audio/video mute command {}", command);
|
||||
|
@ -29,21 +29,24 @@ import org.openhab.binding.pjlinkdevice.internal.device.command.ResponseExceptio
|
||||
public class MuteQueryResponse extends PrefixedResponse<MuteQueryResponse.MuteQueryResponseValue> {
|
||||
|
||||
public enum MuteQueryResponseValue {
|
||||
OFF("Mute off", "30", false, false),
|
||||
VIDEO_MUTE_ON("Video muted", "11", false, true),
|
||||
AUDIO_MUTE_ON("Audio muted", "21", true, false),
|
||||
AUDIO_AND_VIDEO_MUTE_ON("Audio and video muted", "31", true, true);
|
||||
OFF("Mute off", "30", false, false, false),
|
||||
VIDEO_MUTE_ON("Video muted", "11", false, true, false),
|
||||
AUDIO_MUTE_ON("Audio muted", "21", true, false, false),
|
||||
AUDIO_AND_VIDEO_MUTE_ON("Audio and video muted", "31", true, true, true);
|
||||
|
||||
private String text;
|
||||
private String code;
|
||||
private boolean audioMuted;
|
||||
private boolean videoMuted;
|
||||
private boolean audioAndVideoMuted;
|
||||
|
||||
private MuteQueryResponseValue(String text, String code, boolean audioMuted, boolean videoMuted) {
|
||||
private MuteQueryResponseValue(String text, String code, boolean audioMuted, boolean videoMuted,
|
||||
boolean audioAndVideoMuted) {
|
||||
this.text = text;
|
||||
this.code = code;
|
||||
this.audioMuted = audioMuted;
|
||||
this.videoMuted = videoMuted;
|
||||
this.audioAndVideoMuted = audioAndVideoMuted;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
@ -67,6 +70,10 @@ public class MuteQueryResponse extends PrefixedResponse<MuteQueryResponse.MuteQu
|
||||
public boolean isVideoMuted() {
|
||||
return this.videoMuted;
|
||||
}
|
||||
|
||||
public boolean isAudioAndVideoMuted() {
|
||||
return this.audioAndVideoMuted;
|
||||
}
|
||||
}
|
||||
|
||||
private static final HashSet<ErrorCode> SPECIFIED_ERRORCODES = new HashSet<>(
|
||||
|
@ -34,6 +34,8 @@ thing-type.config.pjLinkDevice.pjLinkDevice.tcpPort.description = The TCP port o
|
||||
|
||||
# channel types
|
||||
|
||||
channel-type.pjLinkDevice.audioAndVideoMute.label = Audio and Video Mute
|
||||
channel-type.pjLinkDevice.audioAndVideoMute.description = Select the audio and video mute status
|
||||
channel-type.pjLinkDevice.audioMute.label = Audio Mute
|
||||
channel-type.pjLinkDevice.audioMute.description = Select the audio mute status
|
||||
channel-type.pjLinkDevice.input.label = Input
|
||||
|
@ -13,10 +13,15 @@
|
||||
<channel id="input" typeId="input"/>
|
||||
<channel id="audioMute" typeId="audioMute"/>
|
||||
<channel id="videoMute" typeId="videoMute"/>
|
||||
<channel id="audioAndVideoMute" typeId="audioAndVideoMute"/>
|
||||
<channel id="lamp1Hours" typeId="lampHours"/>
|
||||
<channel id="lamp1Active" typeId="lampActive"/>
|
||||
</channels>
|
||||
|
||||
<properties>
|
||||
<property name="thingTypeVersion">1</property>
|
||||
</properties>
|
||||
|
||||
<config-description>
|
||||
<parameter-group name="basic">
|
||||
<context>basic</context>
|
||||
@ -103,6 +108,12 @@
|
||||
<description>Select the video mute status</description>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="audioAndVideoMute">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Audio and Video Mute</label>
|
||||
<description>Select the audio and video mute status</description>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="lampHours">
|
||||
<item-type>Number</item-type>
|
||||
<label>Lamp Hours</label>
|
||||
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<update:update-descriptions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:update="https://openhab.org/schemas/update-description/v1.0.0"
|
||||
xsi:schemaLocation="https://openhab.org/schemas/update-description/v1.0.0 https://openhab.org/schemas/update-description-1.0.0.xsd">
|
||||
<thing-type uid="pjLinkDevice:pjLinkDevice">
|
||||
<instruction-set targetVersion="1">
|
||||
<add-channel id="audioAndVideoMute">
|
||||
<type>pjLinkDevice:audioAndVideoMute</type>
|
||||
</add-channel>
|
||||
</instruction-set>
|
||||
</thing-type>
|
||||
|
||||
</update:update-descriptions>
|
Loading…
Reference in New Issue
Block a user