1c29fa5a6Sopenharmony_ci/* 2c29fa5a6Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3c29fa5a6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c29fa5a6Sopenharmony_ci * you may not use this file except in compliance with the License. 5c29fa5a6Sopenharmony_ci * You may obtain a copy of the License at 6c29fa5a6Sopenharmony_ci * 7c29fa5a6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c29fa5a6Sopenharmony_ci * 9c29fa5a6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c29fa5a6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c29fa5a6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c29fa5a6Sopenharmony_ci * See the License for the specific language governing permissions and 13c29fa5a6Sopenharmony_ci * limitations under the License. 14c29fa5a6Sopenharmony_ci */ 15c29fa5a6Sopenharmony_ci 16c29fa5a6Sopenharmony_ci#ifndef SWITCH_EVENT_H 17c29fa5a6Sopenharmony_ci#define SWITCH_EVENT_H 18c29fa5a6Sopenharmony_ci 19c29fa5a6Sopenharmony_ci#include "nocopyable.h" 20c29fa5a6Sopenharmony_ci 21c29fa5a6Sopenharmony_ci#include "input_event.h" 22c29fa5a6Sopenharmony_ci 23c29fa5a6Sopenharmony_cinamespace OHOS { 24c29fa5a6Sopenharmony_cinamespace MMI { 25c29fa5a6Sopenharmony_ciclass SwitchEvent : public InputEvent { 26c29fa5a6Sopenharmony_cipublic: 27c29fa5a6Sopenharmony_ci static constexpr int32_t SWITCH_ON = 0; 28c29fa5a6Sopenharmony_ci static constexpr int32_t SWITCH_OFF = 1; 29c29fa5a6Sopenharmony_ci 30c29fa5a6Sopenharmony_ci /** 31c29fa5a6Sopenharmony_ci * @brief Enumerated values of switch type. 32c29fa5a6Sopenharmony_ci * 33c29fa5a6Sopenharmony_ci * @since 12 34c29fa5a6Sopenharmony_ci */ 35c29fa5a6Sopenharmony_ci enum SwitchType { 36c29fa5a6Sopenharmony_ci /** Default, used to be compatible with calls to previously none switch type parameter */ 37c29fa5a6Sopenharmony_ci SWITCH_DEFAULT = 0, 38c29fa5a6Sopenharmony_ci /** Lid switch type */ 39c29fa5a6Sopenharmony_ci SWITCH_LID, 40c29fa5a6Sopenharmony_ci /** Tablet switch type */ 41c29fa5a6Sopenharmony_ci SWITCH_TABLET, 42c29fa5a6Sopenharmony_ci /** Privacy switch type */ 43c29fa5a6Sopenharmony_ci SWITCH_PRIVACY 44c29fa5a6Sopenharmony_ci }; 45c29fa5a6Sopenharmony_ci 46c29fa5a6Sopenharmony_cipublic: 47c29fa5a6Sopenharmony_ci int32_t GetSwitchType() const 48c29fa5a6Sopenharmony_ci { 49c29fa5a6Sopenharmony_ci return switchType_; 50c29fa5a6Sopenharmony_ci } 51c29fa5a6Sopenharmony_ci 52c29fa5a6Sopenharmony_ci int32_t GetSwitchValue() const 53c29fa5a6Sopenharmony_ci { 54c29fa5a6Sopenharmony_ci return switchValue_; 55c29fa5a6Sopenharmony_ci } 56c29fa5a6Sopenharmony_ci 57c29fa5a6Sopenharmony_ci int32_t GetSwitchMask() const 58c29fa5a6Sopenharmony_ci { 59c29fa5a6Sopenharmony_ci return updateSwitchMask_; 60c29fa5a6Sopenharmony_ci } 61c29fa5a6Sopenharmony_ci 62c29fa5a6Sopenharmony_ci void SetSwitchType(int32_t type) 63c29fa5a6Sopenharmony_ci { 64c29fa5a6Sopenharmony_ci switchType_ = type; 65c29fa5a6Sopenharmony_ci } 66c29fa5a6Sopenharmony_ci 67c29fa5a6Sopenharmony_ci void SetSwitchValue(int32_t value) 68c29fa5a6Sopenharmony_ci { 69c29fa5a6Sopenharmony_ci switchValue_ = value; 70c29fa5a6Sopenharmony_ci } 71c29fa5a6Sopenharmony_ci 72c29fa5a6Sopenharmony_ci void SetSwitchMask(int32_t switchMask) 73c29fa5a6Sopenharmony_ci { 74c29fa5a6Sopenharmony_ci updateSwitchMask_ = switchMask; 75c29fa5a6Sopenharmony_ci } 76c29fa5a6Sopenharmony_ci 77c29fa5a6Sopenharmony_ci virtual std::string ToString() override 78c29fa5a6Sopenharmony_ci { 79c29fa5a6Sopenharmony_ci std::string eventStr = InputEvent::ToString(); 80c29fa5a6Sopenharmony_ci eventStr += ",switchValue:" + std::to_string(switchValue_); 81c29fa5a6Sopenharmony_ci eventStr += ",updateSwitchMask:" + std::to_string(updateSwitchMask_); 82c29fa5a6Sopenharmony_ci eventStr += ",switchType:" + std::to_string(switchType_); 83c29fa5a6Sopenharmony_ci return eventStr; 84c29fa5a6Sopenharmony_ci } 85c29fa5a6Sopenharmony_ci 86c29fa5a6Sopenharmony_ci explicit SwitchEvent(int32_t value) 87c29fa5a6Sopenharmony_ci : InputEvent(value), 88c29fa5a6Sopenharmony_ci switchValue_(value), 89c29fa5a6Sopenharmony_ci updateSwitchMask_(0), 90c29fa5a6Sopenharmony_ci switchType_(SwitchType::SWITCH_DEFAULT) {} 91c29fa5a6Sopenharmony_ciprivate: 92c29fa5a6Sopenharmony_ci int32_t switchValue_ { 0 }; 93c29fa5a6Sopenharmony_ci int32_t updateSwitchMask_ { 0 }; 94c29fa5a6Sopenharmony_ci int32_t switchType_ { SwitchType::SWITCH_DEFAULT }; 95c29fa5a6Sopenharmony_ci}; 96c29fa5a6Sopenharmony_ci} // namespace MMI 97c29fa5a6Sopenharmony_ci} // namespace OHOS 98c29fa5a6Sopenharmony_ci#endif // SWITCH_EVENT_H