/* * Copyright (c) 2022 Samsung Electronics Co., Ltd All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "hal-device-input-interface.h" #include "common.h" static hal_backend_device_input_funcs *hal_device_input_funcs = NULL; int hal_device_input_get_backend(void) { int ret; if (hal_device_input_funcs) return 0; ret = hal_common_get_backend(HAL_MODULE_DEVICE_INPUT, (void **)&hal_device_input_funcs); if (ret < 0) { _E("Failed to get input backend"); return ret; } return 0; } int hal_device_input_put_backend(void) { int ret; if (!hal_device_input_funcs) return 0; ret = hal_common_put_backend(HAL_MODULE_DEVICE_INPUT, (void *)hal_device_input_funcs); if(ret < 0) { _E("Failed to put input backend"); return ret; } hal_device_input_funcs = NULL; return 0; } int hal_device_input_set_event_state(int input_device_id, int on) { int ret; if (!hal_device_input_funcs) { if ((ret = hal_device_input_get_backend()) < 0) return ret; } if (!hal_device_input_funcs || !hal_device_input_funcs->set_event_state) return -ENODEV; return hal_device_input_funcs->set_event_state(input_device_id, on); } int hal_device_input_get_event_state(int input_device_id, int* on) { int ret; if (!hal_device_input_funcs) { if ((ret = hal_device_input_get_backend()) < 0) return ret; } if (!hal_device_input_funcs || !hal_device_input_funcs->get_event_state) return -ENODEV; return hal_device_input_funcs->get_event_state(input_device_id, on); }