Add service calls for enabling/disabling ActiveVoiceAmplifier and SpaceFitSound
This commit is contained in:
parent
4839f403e8
commit
97ae0615b3
|
@ -16,6 +16,8 @@
|
||||||
- "soundmode" feature
|
- "soundmode" feature
|
||||||
- "speaker_level"
|
- "speaker_level"
|
||||||
- "rear_speaker_mode"
|
- "rear_speaker_mode"
|
||||||
|
- "space_fit_sound"
|
||||||
|
- "active_voice_amplifier"
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
|
|
@ -14,15 +14,15 @@ log = logging.getLogger(__name__)
|
||||||
|
|
||||||
class SoundbarDevice:
|
class SoundbarDevice:
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
device: DeviceEntity,
|
device: DeviceEntity,
|
||||||
session,
|
session,
|
||||||
max_volume: int,
|
max_volume: int,
|
||||||
device_name: str,
|
device_name: str,
|
||||||
enable_eq: bool = False,
|
enable_eq: bool = False,
|
||||||
enable_soundmode: bool = False,
|
enable_soundmode: bool = False,
|
||||||
enable_advanced_audio: bool = False,
|
enable_advanced_audio: bool = False,
|
||||||
enable_woofer: bool = False,
|
enable_woofer: bool = False,
|
||||||
):
|
):
|
||||||
self.device = device
|
self.device = device
|
||||||
self._device_id = self.device.device_id
|
self._device_id = self.device.device_id
|
||||||
|
@ -91,8 +91,8 @@ class SoundbarDevice:
|
||||||
payload = await self.get_execute_status()
|
payload = await self.get_execute_status()
|
||||||
retry = 0
|
retry = 0
|
||||||
while (
|
while (
|
||||||
"x.com.samsung.networkaudio.supportedSoundmode" not in payload
|
"x.com.samsung.networkaudio.supportedSoundmode" not in payload
|
||||||
and retry < 10
|
and retry < 10
|
||||||
):
|
):
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
payload = await self.get_execute_status()
|
payload = await self.get_execute_status()
|
||||||
|
@ -420,6 +420,22 @@ class SoundbarDevice:
|
||||||
value=mode.value,
|
value=mode.value,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# ------------ OTHER FUNCTIONS ------------
|
||||||
|
|
||||||
|
async def set_active_voice_amplifier(self, enabled: bool):
|
||||||
|
await self.set_custom_execution_data(
|
||||||
|
href="/sec/networkaudio/activeVoiceAmplifier",
|
||||||
|
property="x.com.samsung.networkaudio.activeVoiceAmplifier",
|
||||||
|
value=1 if enabled else 0
|
||||||
|
)
|
||||||
|
|
||||||
|
async def set_space_fit_sound(self, enabled: bool):
|
||||||
|
await self.set_custom_execution_data(
|
||||||
|
href="/sec/networkaudio/spacefitSound",
|
||||||
|
property="x.com.samsung.networkaudio.spacefitSound",
|
||||||
|
value=1 if enabled else 0
|
||||||
|
)
|
||||||
|
|
||||||
# ------------ SUPPORT FUNCTIONS ------------
|
# ------------ SUPPORT FUNCTIONS ------------
|
||||||
|
|
||||||
async def update_execution_data(self, argument: str):
|
async def update_execution_data(self, argument: str):
|
||||||
|
|
|
@ -92,6 +92,20 @@ def addServices():
|
||||||
SmartThingsSoundbarMediaPlayer.async_set_rear_speaker_mode.__name__,
|
SmartThingsSoundbarMediaPlayer.async_set_rear_speaker_mode.__name__,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
platform.async_register_entity_service(
|
||||||
|
"set_active_voice_amplifier",
|
||||||
|
cv.make_entity_service_schema({vol.Required("enabled"): bool}),
|
||||||
|
SmartThingsSoundbarMediaPlayer.async_set_active_voice_amplifier.__name__,
|
||||||
|
)
|
||||||
|
|
||||||
|
platform.async_register_entity_service(
|
||||||
|
"set_space_fit_sound",
|
||||||
|
cv.make_entity_service_schema({vol.Required("enabled"): bool}),
|
||||||
|
SmartThingsSoundbarMediaPlayer.async_set_space_fit_sound.__name__,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(hass, config_entry, async_add_entities):
|
async def async_setup_entry(hass, config_entry, async_add_entities):
|
||||||
domain_data = hass.data[DOMAIN]
|
domain_data = hass.data[DOMAIN]
|
||||||
|
@ -267,6 +281,12 @@ class SmartThingsSoundbarMediaPlayer(MediaPlayerEntity):
|
||||||
async def async_set_rear_speaker_mode(self, speaker_mode: str):
|
async def async_set_rear_speaker_mode(self, speaker_mode: str):
|
||||||
await self.device.set_rear_speaker_mode(RearSpeakerMode(speaker_mode))
|
await self.device.set_rear_speaker_mode(RearSpeakerMode(speaker_mode))
|
||||||
|
|
||||||
|
async def async_set_active_voice_amplifier(self, enabled: bool):
|
||||||
|
await self.device.set_active_voice_amplifier(enabled)
|
||||||
|
|
||||||
|
async def async_set_space_fit_sound(self, enabled: bool):
|
||||||
|
await self.device.set_space_fit_sound(enabled)
|
||||||
|
|
||||||
# This property can be uncommented for some extra_attributes
|
# This property can be uncommented for some extra_attributes
|
||||||
# Still enabling this can cause side-effects.
|
# Still enabling this can cause side-effects.
|
||||||
# @property
|
# @property
|
||||||
|
|
|
@ -134,4 +134,34 @@ set_rear_speaker_mode:
|
||||||
translation_key: "speaker_identifier"
|
translation_key: "speaker_identifier"
|
||||||
options:
|
options:
|
||||||
- "Rear"
|
- "Rear"
|
||||||
- "Front"
|
- "Front"
|
||||||
|
|
||||||
|
set_active_voice_amplifier:
|
||||||
|
name: Set active voice amplifier
|
||||||
|
description: Activates / deactivates the active voice amplifier
|
||||||
|
target:
|
||||||
|
device:
|
||||||
|
integration: samsung_soundbar
|
||||||
|
fields:
|
||||||
|
enabled:
|
||||||
|
name: Enabled / Disabled
|
||||||
|
required: true
|
||||||
|
example: true
|
||||||
|
default: false
|
||||||
|
selector:
|
||||||
|
boolean:
|
||||||
|
|
||||||
|
set_space_fit_sound:
|
||||||
|
name: Set SpaceFitSound
|
||||||
|
description: Activates / deactivates the SpaceFitSound
|
||||||
|
target:
|
||||||
|
device:
|
||||||
|
integration: samsung_soundbar
|
||||||
|
fields:
|
||||||
|
enabled:
|
||||||
|
name: Enabled / Disabled
|
||||||
|
required: true
|
||||||
|
example: true
|
||||||
|
default: false
|
||||||
|
selector:
|
||||||
|
boolean:
|
Loading…
Reference in New Issue