1 /*
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 #ifndef LOG_TAG
16 #define LOG_TAG "AudioManagerListenerStub"
17 #endif
18
19 #include "audio_manager_listener_stub.h"
20 #include "audio_service_log.h"
21
22 using namespace std;
23
24 namespace OHOS {
25 namespace AudioStandard {
AudioManagerListenerStub()26 AudioManagerListenerStub::AudioManagerListenerStub()
27 {
28 }
~AudioManagerListenerStub()29 AudioManagerListenerStub::~AudioManagerListenerStub()
30 {
31 }
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)32 int AudioManagerListenerStub::OnRemoteRequest(
33 uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option)
34 {
35 CHECK_AND_RETURN_RET_LOG(data.ReadInterfaceToken() == GetDescriptor(),
36 -1, "AudioManagerStub: ReadInterfaceToken failed");
37
38 switch (code) {
39 case ON_PARAMETER_CHANGED: {
40 string networkId = data.ReadString();
41 AudioParamKey key = static_cast<AudioParamKey>(data.ReadInt32());
42 string condition = data.ReadString();
43 string value = data.ReadString();
44 OnAudioParameterChange(networkId, key, condition, value);
45 return AUDIO_OK;
46 }
47 case ON_WAKEUP_CLOSE: {
48 OnWakeupClose();
49 return AUDIO_OK;
50 }
51 case ON_CAPTURER_STATE: {
52 bool isActive = data.ReadBool();
53 OnCapturerState(isActive);
54 return AUDIO_OK;
55 }
56 default: {
57 AUDIO_ERR_LOG("default case, need check AudioManagerStub");
58 return IPCObjectStub::OnRemoteRequest(code, data, reply, option);
59 }
60 }
61 }
62
SetParameterCallback(const std::weak_ptr<AudioParameterCallback> & callback)63 void AudioManagerListenerStub::SetParameterCallback(const std::weak_ptr<AudioParameterCallback>& callback)
64 {
65 callback_ = callback;
66 }
67
SetWakeupSourceCallback(const std::weak_ptr<WakeUpSourceCallback> & callback)68 void AudioManagerListenerStub::SetWakeupSourceCallback(const std::weak_ptr<WakeUpSourceCallback>& callback)
69 {
70 wakeUpCallback_ = callback;
71 }
72
OnAudioParameterChange(const std::string networkId,const AudioParamKey key,const std::string & condition,const std::string & value)73 void AudioManagerListenerStub::OnAudioParameterChange(const std::string networkId, const AudioParamKey key,
74 const std::string& condition, const std::string& value)
75 {
76 std::shared_ptr<AudioParameterCallback> cb = callback_.lock();
77 if (cb != nullptr) {
78 cb->OnAudioParameterChange(networkId, key, condition, value);
79 } else {
80 AUDIO_WARNING_LOG("AudioRingerModeUpdateListenerStub: callback_ is nullptr");
81 }
82 }
83
OnCapturerState(bool isActive)84 void AudioManagerListenerStub::OnCapturerState(bool isActive)
85 {
86 std::shared_ptr<WakeUpSourceCallback> cb = wakeUpCallback_.lock();
87 if (cb != nullptr) {
88 cb->OnCapturerState(isActive);
89 } else {
90 AUDIO_WARNING_LOG("AudioManagerListenerStub: OnWakeupClose error");
91 }
92 }
93
OnWakeupClose()94 void AudioManagerListenerStub::OnWakeupClose()
95 {
96 std::shared_ptr<WakeUpSourceCallback> cb = wakeUpCallback_.lock();
97 if (cb != nullptr) {
98 cb->OnWakeupClose();
99 } else {
100 AUDIO_WARNING_LOG("AudioManagerListenerStub: OnWakeupClose error");
101 }
102 }
103
104 } // namespace AudioStandard
105 } // namespace OHOS
106