• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "audio_observer.h"
16 
17 #include "ressched_utils.h"
18 #include "res_sched_log.h"
19 #include "res_type.h"
20 
21 namespace OHOS {
22 namespace ResourceSchedule {
OnRendererStateChange(const std::vector<std::unique_ptr<AudioStandard::AudioRendererChangeInfo>> & audioRendererChangeInfos)23 void AudioObserver::OnRendererStateChange(
24     const std::vector<std::unique_ptr<AudioStandard::AudioRendererChangeInfo>> &audioRendererChangeInfos)
25 {
26     for (const auto &audioRendererChangeInfo : audioRendererChangeInfos) {
27         RESSCHED_LOGD("enter AudioRenderStateObserver::OnRendererStateChange, state: %{public}d",
28             audioRendererChangeInfo->rendererState);
29         nlohmann::json payload;
30         payload["uid"] = std::to_string(audioRendererChangeInfo->clientUID);
31         payload["sessionId"] = std::to_string(audioRendererChangeInfo->sessionId);
32         ResSchedUtils::GetInstance().ReportDataInProcess(ResType::RES_TYPE_AUDIO_RENDER_STATE_CHANGE,
33             audioRendererChangeInfo->rendererState, payload);
34     }
35 }
36 
OnRingerModeUpdated(const AudioStandard::AudioRingerMode & ringerMode)37 void AudioObserver::OnRingerModeUpdated(const AudioStandard::AudioRingerMode &ringerMode)
38 {
39     if (ringerMode != mode_) {
40         RESSCHED_LOGD("enter AudioRingModeObserver::OnRingerModeUpdated, ringerMode: %{public}d", ringerMode);
41         mode_ = ringerMode;
42         const nlohmann::json payload = nlohmann::json::object();
43         ResSchedUtils::GetInstance().ReportDataInProcess(ResType::RES_TYPE_AUDIO_RING_MODE_CHANGE, ringerMode, payload);
44     }
45 }
46 
OnVolumeKeyEvent(AudioStandard::VolumeEvent volumeEvent)47 void AudioObserver::OnVolumeKeyEvent(AudioStandard::VolumeEvent volumeEvent)
48 {
49     RESSCHED_LOGD("enter AudioVolumeKeyObserver::OnVolumeKeyEvent, streamType: %{public}d, volumeLevel: %{public}d",
50         volumeEvent.volumeType, volumeEvent.volume);
51     nlohmann::json payload;
52     payload["volumeType"] = std::to_string(volumeEvent.volumeType);
53     ResSchedUtils::GetInstance().ReportDataInProcess(ResType::RES_TYPE_AUDIO_VOLUME_KEY_CHANGE,
54         volumeEvent.volume, payload);
55 }
56 } // namespace ResourceSchedule
57 } // namespace OHOS
58