158ec469eSopenharmony_ci/*
258ec469eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
358ec469eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
458ec469eSopenharmony_ci * you may not use this file except in compliance with the License.
558ec469eSopenharmony_ci * You may obtain a copy of the License at
658ec469eSopenharmony_ci *
758ec469eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
858ec469eSopenharmony_ci *
958ec469eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1058ec469eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1158ec469eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1258ec469eSopenharmony_ci * See the License for the specific language governing permissions and
1358ec469eSopenharmony_ci * limitations under the License.
1458ec469eSopenharmony_ci */
1558ec469eSopenharmony_ci
1658ec469eSopenharmony_ci#include "light_animation_ipc.h"
1758ec469eSopenharmony_ci
1858ec469eSopenharmony_ci#include "sensors_errors.h"
1958ec469eSopenharmony_ci
2058ec469eSopenharmony_ci#undef LOG_TAG
2158ec469eSopenharmony_ci#define LOG_TAG "LightAnimationIPC"
2258ec469eSopenharmony_ci
2358ec469eSopenharmony_cinamespace OHOS {
2458ec469eSopenharmony_cinamespace Sensors {
2558ec469eSopenharmony_ciint32_t LightAnimationIPC::GetMode() const
2658ec469eSopenharmony_ci{
2758ec469eSopenharmony_ci    return mode_;
2858ec469eSopenharmony_ci}
2958ec469eSopenharmony_ci
3058ec469eSopenharmony_civoid LightAnimationIPC::SetMode(int32_t mode)
3158ec469eSopenharmony_ci{
3258ec469eSopenharmony_ci    mode_ = mode;
3358ec469eSopenharmony_ci}
3458ec469eSopenharmony_ci
3558ec469eSopenharmony_ciint32_t LightAnimationIPC::GetOnTime() const
3658ec469eSopenharmony_ci{
3758ec469eSopenharmony_ci    return onTime_;
3858ec469eSopenharmony_ci}
3958ec469eSopenharmony_ci
4058ec469eSopenharmony_civoid LightAnimationIPC::SetOnTime(int32_t onTime)
4158ec469eSopenharmony_ci{
4258ec469eSopenharmony_ci    onTime_ = onTime;
4358ec469eSopenharmony_ci}
4458ec469eSopenharmony_ci
4558ec469eSopenharmony_ciint32_t LightAnimationIPC::GetOffTime() const
4658ec469eSopenharmony_ci{
4758ec469eSopenharmony_ci    return offTime_;
4858ec469eSopenharmony_ci}
4958ec469eSopenharmony_ci
5058ec469eSopenharmony_civoid LightAnimationIPC::SetOffTime(int32_t offTime)
5158ec469eSopenharmony_ci{
5258ec469eSopenharmony_ci    offTime_ = offTime;
5358ec469eSopenharmony_ci}
5458ec469eSopenharmony_ci
5558ec469eSopenharmony_cibool LightAnimationIPC::Marshalling(Parcel &parcel) const
5658ec469eSopenharmony_ci{
5758ec469eSopenharmony_ci    if (!parcel.WriteInt32(mode_)) {
5858ec469eSopenharmony_ci        MISC_HILOGE("Failed, write mode failed");
5958ec469eSopenharmony_ci        return false;
6058ec469eSopenharmony_ci    }
6158ec469eSopenharmony_ci    if (!parcel.WriteInt32(onTime_)) {
6258ec469eSopenharmony_ci        MISC_HILOGE("Failed, write onTime failed");
6358ec469eSopenharmony_ci        return false;
6458ec469eSopenharmony_ci    }
6558ec469eSopenharmony_ci    if (!parcel.WriteInt32(offTime_)) {
6658ec469eSopenharmony_ci        MISC_HILOGE("Failed, write offTime failed");
6758ec469eSopenharmony_ci        return false;
6858ec469eSopenharmony_ci    }
6958ec469eSopenharmony_ci    return true;
7058ec469eSopenharmony_ci}
7158ec469eSopenharmony_ci
7258ec469eSopenharmony_cistd::unique_ptr<LightAnimationIPC> LightAnimationIPC::Unmarshalling(Parcel &parcel)
7358ec469eSopenharmony_ci{
7458ec469eSopenharmony_ci    auto lightAnimation = std::make_unique<LightAnimationIPC>();
7558ec469eSopenharmony_ci    if (!lightAnimation->ReadFromParcel(parcel)) {
7658ec469eSopenharmony_ci        MISC_HILOGE("ReadFromParcel is failed");
7758ec469eSopenharmony_ci        return nullptr;
7858ec469eSopenharmony_ci    }
7958ec469eSopenharmony_ci    return lightAnimation;
8058ec469eSopenharmony_ci}
8158ec469eSopenharmony_ci
8258ec469eSopenharmony_cibool LightAnimationIPC::ReadFromParcel(Parcel &parcel)
8358ec469eSopenharmony_ci{
8458ec469eSopenharmony_ci    return (parcel.ReadInt32(mode_)) && (parcel.ReadInt32(onTime_)) && (parcel.ReadInt32(offTime_));
8558ec469eSopenharmony_ci}
8658ec469eSopenharmony_ci} // namespace Sensors
8758ec469eSopenharmony_ci} // namespace OHOS