diff --git a/HdmiCecSink/HdmiCecSink.cpp b/HdmiCecSink/HdmiCecSink.cpp index a1ac6a75..4a52123b 100644 --- a/HdmiCecSink/HdmiCecSink.cpp +++ b/HdmiCecSink/HdmiCecSink.cpp @@ -58,6 +58,7 @@ #define HDMICECSINK_METHOD_REQUEST_SHORT_AUDIO_DESCRIPTOR "requestShortAudioDescriptor" #define HDMICECSINK_METHOD_SEND_STANDBY_MESSAGE "sendStandbyMessage" #define HDMICECSINK_METHOD_SEND_AUDIO_DEVICE_POWER_ON "sendAudioDevicePowerOnMessage" +#define HDMICECSINK_METHOD_SEND_AUDIO_DEVICE_MUTE "sendAudioDeviceMuteMessage" #define HDMICECSINK_METHOD_SEND_KEY_PRESS "sendKeyPressEvent" #define HDMICECSINK_METHOD_SEND_USER_CONTROL_PRESSED "sendUserControlPressed" #define HDMICECSINK_METHOD_SEND_USER_CONTROL_RELEASED "sendUserControlReleased" @@ -739,6 +740,7 @@ namespace WPEFramework Register(HDMICECSINK_METHOD_REQUEST_SHORT_AUDIO_DESCRIPTOR, &HdmiCecSink::requestShortAudioDescriptorWrapper, this); Register(HDMICECSINK_METHOD_SEND_STANDBY_MESSAGE, &HdmiCecSink::sendStandbyMessageWrapper, this); Register(HDMICECSINK_METHOD_SEND_AUDIO_DEVICE_POWER_ON, &HdmiCecSink::sendAudioDevicePowerOnMsgWrapper, this); + Register(HDMICECSINK_METHOD_SEND_AUDIO_DEVICE_MUTE, &HdmiCecSink::sendAVRMuteMsgWrapper, this); Register(HDMICECSINK_METHOD_SEND_KEY_PRESS,&HdmiCecSink::sendRemoteKeyPressWrapper,this); Register(HDMICECSINK_METHOD_SEND_USER_CONTROL_PRESSED,&HdmiCecSink::sendUserControlPressedWrapper,this); Register(HDMICECSINK_METHOD_SEND_USER_CONTROL_RELEASED,&HdmiCecSink::sendUserControlReleasedWrapper,this); @@ -1388,6 +1390,30 @@ namespace WPEFramework } } + void HdmiCecSink::systemAVRAudioMuteRequest() + { + if ( cecEnableStatus != true ) + { + LOGINFO("systemAVRAudioMuteRequest: Cec is disabled-> EnableCEC first"); + return; + } + + if(!HdmiCecSink::_instance) + return; + if(!(_instance->smConnection)) + return; + LOGINFO(" Send systemAVRAudioMuteRequest "); + _instance->smConnection->sendTo(LogicalAddress::AUDIO_SYSTEM,MessageEncoder().encode(UserControlPressed(UICommand::UI_COMMAND_MUTE)), 1000); + + } + + uint32_t HdmiCecSink::sendAVRMuteMsgWrapper(const JsonObject& parameters, JsonObject& response) + { + LOGINFO("%s invoked. \n",__FUNCTION__); + systemAVRAudioMuteRequest(); + returnResponse(true); + } + void HdmiCecSink::SendStandbyMsgEvent(const int logicalAddress) { JsonObject params; diff --git a/HdmiCecSink/HdmiCecSink.h b/HdmiCecSink/HdmiCecSink.h index 2bc6d7c6..ac9edf7c 100644 --- a/HdmiCecSink/HdmiCecSink.h +++ b/HdmiCecSink/HdmiCecSink.h @@ -563,6 +563,7 @@ namespace WPEFramework { void sendFeatureAbort(const LogicalAddress logicalAddress, const OpCode feature, const AbortReason reason); void reportFeatureAbortEvent(const LogicalAddress logicalAddress, const OpCode feature, const AbortReason reason); void systemAudioModeRequest(); + void systemAVRAudioMuteRequest(); void SendStandbyMsgEvent(const int logicalAddress); void requestAudioDevicePowerStatus(); void reportAudioDevicePowerStatusInfo(const int logicalAddress, const int powerStatus); @@ -642,6 +643,7 @@ namespace WPEFramework { uint32_t requestShortAudioDescriptorWrapper(const JsonObject& parameters, JsonObject& response); uint32_t sendStandbyMessageWrapper(const JsonObject& parameters, JsonObject& response); uint32_t sendAudioDevicePowerOnMsgWrapper(const JsonObject& parameters, JsonObject& response); + uint32_t sendAVRMuteMsgWrapper(const JsonObject& parameters, JsonObject& response); uint32_t sendRemoteKeyPressWrapper(const JsonObject& parameters, JsonObject& response); uint32_t sendUserControlPressedWrapper(const JsonObject& parameters, JsonObject& response); uint32_t sendUserControlReleasedWrapper(const JsonObject& parameters, JsonObject& response);