1a69a01cdSopenharmony_ci/* 2a69a01cdSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3a69a01cdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4a69a01cdSopenharmony_ci * you may not use this file except in compliance with the License. 5a69a01cdSopenharmony_ci * You may obtain a copy of the License at 6a69a01cdSopenharmony_ci * 7a69a01cdSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8a69a01cdSopenharmony_ci * 9a69a01cdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10a69a01cdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11a69a01cdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a69a01cdSopenharmony_ci * See the License for the specific language governing permissions and 13a69a01cdSopenharmony_ci * limitations under the License. 14a69a01cdSopenharmony_ci */ 15a69a01cdSopenharmony_ci 16a69a01cdSopenharmony_ci#include "input_factory.h" 17a69a01cdSopenharmony_ci 18a69a01cdSopenharmony_ci#include "appswitch_input.h" 19a69a01cdSopenharmony_ci#include "component_input.h" 20a69a01cdSopenharmony_ci#include "keyboard_input.h" 21a69a01cdSopenharmony_ci#include "swap_input.h" 22a69a01cdSopenharmony_ci#include "mouse_input.h" 23a69a01cdSopenharmony_ci#include "hardkey_input.h" 24a69a01cdSopenharmony_ci#include "touch_input.h" 25a69a01cdSopenharmony_ci#include "record_input.h" 26a69a01cdSopenharmony_ci#include "rotate_input.h" 27a69a01cdSopenharmony_ci 28a69a01cdSopenharmony_cinamespace OHOS { 29a69a01cdSopenharmony_cinamespace WuKong { 30a69a01cdSopenharmony_cistd::shared_ptr<InputAction> InputFactory::GetInputAction(InputType type) 31a69a01cdSopenharmony_ci{ 32a69a01cdSopenharmony_ci std::shared_ptr<InputAction> input_action = nullptr; 33a69a01cdSopenharmony_ci switch (type) { 34a69a01cdSopenharmony_ci case INPUTTYPE_TOUCHINPUT: { 35a69a01cdSopenharmony_ci input_action = std::make_shared<TouchInput>(); 36a69a01cdSopenharmony_ci break; 37a69a01cdSopenharmony_ci } 38a69a01cdSopenharmony_ci case INPUTTYPE_SWAPINPUT: { 39a69a01cdSopenharmony_ci input_action = std::make_shared<SwapInput>(); 40a69a01cdSopenharmony_ci break; 41a69a01cdSopenharmony_ci } 42a69a01cdSopenharmony_ci case INPUTTYPE_MOUSEINPUT: { 43a69a01cdSopenharmony_ci input_action = std::make_shared<MouseInput>(); 44a69a01cdSopenharmony_ci break; 45a69a01cdSopenharmony_ci } 46a69a01cdSopenharmony_ci case INPUTTYPE_KEYBOARDINPUT: { 47a69a01cdSopenharmony_ci input_action = std::make_shared<KeyboardInput>(); 48a69a01cdSopenharmony_ci break; 49a69a01cdSopenharmony_ci } 50a69a01cdSopenharmony_ci case INPUTTYPE_APPSWITCHINPUT: { 51a69a01cdSopenharmony_ci input_action = std::make_shared<AppswitchInput>(); 52a69a01cdSopenharmony_ci break; 53a69a01cdSopenharmony_ci } 54a69a01cdSopenharmony_ci case INPUTTYPE_ELEMENTINPUT: { 55a69a01cdSopenharmony_ci input_action = std::make_shared<ComponentInput>(); 56a69a01cdSopenharmony_ci break; 57a69a01cdSopenharmony_ci } 58a69a01cdSopenharmony_ci case INPUTTYPE_HARDKEYINPUT: { 59a69a01cdSopenharmony_ci input_action = std::make_shared<HardkeyInput>(); 60a69a01cdSopenharmony_ci break; 61a69a01cdSopenharmony_ci } 62a69a01cdSopenharmony_ci case INPUTTYPE_RECORDINPUT: { 63a69a01cdSopenharmony_ci input_action = std::make_shared<RecordInput>(); 64a69a01cdSopenharmony_ci break; 65a69a01cdSopenharmony_ci } 66a69a01cdSopenharmony_ci case INPUTTYPE_REPPLAYINPUT: { 67a69a01cdSopenharmony_ci input_action = std::make_shared<RecordInput>(); 68a69a01cdSopenharmony_ci break; 69a69a01cdSopenharmony_ci } 70a69a01cdSopenharmony_ci case INPUTTYPE_ROTATEINPUT: { 71a69a01cdSopenharmony_ci input_action = std::make_shared<RotateInput>(); 72a69a01cdSopenharmony_ci break; 73a69a01cdSopenharmony_ci } 74a69a01cdSopenharmony_ci default: { 75a69a01cdSopenharmony_ci break; 76a69a01cdSopenharmony_ci } 77a69a01cdSopenharmony_ci } 78a69a01cdSopenharmony_ci return input_action; 79a69a01cdSopenharmony_ci} 80a69a01cdSopenharmony_ci} // namespace WuKong 81a69a01cdSopenharmony_ci} // namespace OHOS 82