1 /*
2 * Copyright (c) 2023 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
16 #include "hgm_config_change_callback_proxy.h"
17
18 #include <message_option.h>
19 #include <message_parcel.h>
20
21 #include "platform/common/rs_log.h"
22
23 namespace OHOS {
24 namespace Rosen {
RSHgmConfigChangeCallbackProxy(const sptr<IRemoteObject> & impl)25 RSHgmConfigChangeCallbackProxy::RSHgmConfigChangeCallbackProxy(const sptr<IRemoteObject>& impl)
26 : IRemoteProxy<RSIHgmConfigChangeCallback>(impl)
27 {
28 }
29
OnHgmConfigChanged(std::shared_ptr<RSHgmConfigData> configData)30 void RSHgmConfigChangeCallbackProxy::OnHgmConfigChanged(std::shared_ptr<RSHgmConfigData> configData)
31 {
32 MessageParcel data;
33 MessageParcel reply;
34 MessageOption option;
35
36 if (!data.WriteInterfaceToken(RSIHgmConfigChangeCallback::GetDescriptor())) {
37 return;
38 }
39
40 option.SetFlags(MessageOption::TF_ASYNC);
41 data.WriteParcelable(configData.get());
42 uint32_t code = static_cast<uint32_t>(RSIHgmConfigChangeCallbackInterfaceCode::ON_HGM_CONFIG_CHANGED);
43 int32_t err = Remote()->SendRequest(code, data, reply, option);
44 if (err != NO_ERROR) {
45 ROSEN_LOGE("RSHgmConfigChangeCallbackProxy::OnHgmConfigChanged error = %{public}d", err);
46 }
47 }
48
OnHgmRefreshRateModeChanged(int32_t refreshRateMode)49 void RSHgmConfigChangeCallbackProxy::OnHgmRefreshRateModeChanged(int32_t refreshRateMode)
50 {
51 MessageParcel data;
52 MessageParcel reply;
53 MessageOption option;
54
55 if (!data.WriteInterfaceToken(RSIHgmConfigChangeCallback::GetDescriptor())) {
56 return;
57 }
58
59 option.SetFlags(MessageOption::TF_ASYNC);
60 data.WriteInt32(refreshRateMode);
61 uint32_t code =
62 static_cast<uint32_t>(RSIHgmConfigChangeCallbackInterfaceCode::ON_HGM_REFRESH_RATE_MODE_CHANGED);
63 int32_t err = Remote()->SendRequest(code, data, reply, option);
64 if (err != NO_ERROR) {
65 ROSEN_LOGE("RSHgmRefreshRateModeChangeCallbackProxy::OnHgmRefreshRateModeChanged error = %{public}d", err);
66 }
67 }
68
OnHgmRefreshRateUpdate(int32_t refreshRate)69 void RSHgmConfigChangeCallbackProxy::OnHgmRefreshRateUpdate(int32_t refreshRate)
70 {
71 MessageParcel data;
72 MessageParcel reply;
73 MessageOption option;
74
75 if (!data.WriteInterfaceToken(RSIHgmConfigChangeCallback::GetDescriptor())) {
76 return;
77 }
78
79 option.SetFlags(MessageOption::TF_ASYNC);
80 data.WriteInt32(refreshRate);
81 uint32_t code =
82 static_cast<uint32_t>(RSIHgmConfigChangeCallbackInterfaceCode::ON_HGM_REFRESH_RATE_CHANGED);
83 int32_t err = Remote()->SendRequest(code, data, reply, option);
84 if (err != NO_ERROR) {
85 ROSEN_LOGE("RSHgmRefreshRateModeChangeCallbackProxy::OnHgmRefreshRateUpdate error = %{public}d", err);
86 }
87 }
88 } // namespace Rosen
89 } // namespace OHOS
90