From 947c78887e791596d4a5ec2d1079f8b1a049628b Mon Sep 17 00:00:00 2001 From: takeshi_hoshina Date: Tue, 27 Oct 2020 11:16:21 +0900 Subject: basesystem 0.1 --- input_hal/hal_api/input_hal.h | 696 ++++++++++++++++++++++++ input_hal/hal_api/peripheral_service/aglinput.h | 536 ++++++++++++++++++ input_hal/hal_api/peripheral_service/extinput.h | 27 + 3 files changed, 1259 insertions(+) create mode 100644 input_hal/hal_api/input_hal.h create mode 100644 input_hal/hal_api/peripheral_service/aglinput.h create mode 100644 input_hal/hal_api/peripheral_service/extinput.h (limited to 'input_hal/hal_api') diff --git a/input_hal/hal_api/input_hal.h b/input_hal/hal_api/input_hal.h new file mode 100644 index 00000000..bfc9d592 --- /dev/null +++ b/input_hal/hal_api/input_hal.h @@ -0,0 +1,696 @@ +/* + * @copyright Copyright (c) 2017-2020 TOYOTA MOTOR CORPORATION. + * + * 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. + */ + +#ifndef HAL_API_INPUT_HAL_H_ +#define HAL_API_INPUT_HAL_H_ + +#include + +#include "peripheral_service/aglinput.h" + +/** + * @file input_hal.h + */ + +/** @addtogroup switchhandler + * @{ + */ +/** @addtogroup input_hal + * @ingroup switchhandler + * @{ + */ + +/************************************************************************ +* Macro definitions * +************************************************************************/ +/** + * \~english Return value type + */ +enum HalInputRetType { + /** + * \~english Success + */ + HAL_INPUT_RET_NORMAL = 0, + /** + * \~english Process abnormality + */ + HAL_INPUT_RET_ERROR, + /** + * \~english Not support + */ + HAL_INPUT_RET_NOT_SUPPORT, +}; +/** + * \~english Touch panel IC type + */ +enum HalInputTouchDeviceType { + /** + * \~english Touch panel IC is invalid + */ + HAL_INPUT_TOUCH_DEVICE_INVALID = 0, + /** + * \~english Touch panel IC is ILITEK + */ + HAL_INPUT_TOUCH_DEVICE_ILITEK, +}; + +/** + * \~english Radio band type + */ +enum HalInputBandType { + /** + * \~english Radio band is AM + */ + HAL_INPUT_BAND_TYPE_AM = 0, + /** + * \~english Radio band isn't AM + */ + HAL_INPUT_BAND_TYPE_NOT_AM, +}; + +/** + * \~english Radio reception status + */ +enum HalInputTuneStatus { + /** + * \~english Radio is in normal state + */ + HAL_INPUT_TUNE_STATUS_NORMAL = 0, + /** + * \~english Radio is in search state + */ + HAL_INPUT_TUNE_STATUS_SERACH, +}; + +/** + * \~english Sensitivity Level + */ +enum HalInputTouchSensitivityLevel { + /** + * \~english Sensitivity level low + */ + HAL_INPUT_TOUCH_SENSITIVITY_LEVEL_LOW = 1, + /** + * \~english Sensitivity level middle + */ + HAL_INPUT_TOUCH_SENSITIVITY_LEVEL_MIDDLE, + /** + * \~english Sensitivity level high + */ + HAL_INPUT_TOUCH_SENSITIVITY_LEVEL_HIGH, + /** + * \~english Sensitivity level none + */ + HAL_INPUT_TOUCH_SENSITIVITY_LEVEL_NONE, +}; + +/** + * \~english input device type + */ +enum HalInputDeviceType { + /** + * \~english The device type invalid + */ + HAL_INPUT_DEVICE_INVALID, + /** + * \~english The device is keyboard + */ + HAL_INPUT_DEVICE_KEYBOARD, + /** + * \~english The device is touch + */ + HAL_INPUT_DEVICE_TOUCH, + /** + * \~english The device is ESC-KEY + */ + HAL_INPUT_DEVICE_TOUCH_ESCKEY, + /** + * \~english The device is steering SW + */ + HAL_INPUT_DEVICE_STEERING, + /** + * \~english The device is tablet finger + */ + HAL_INPUT_DEVICE_TABLET_FINGER, + /** + * \~english The device is rotary key + */ + HAL_INPUT_DEVICE_ROTARY_KEY, +}; + +/** + * \~english Don't need to config touch panel + */ +#define HAL_INPUT_TOUCH_CONFIG_OFF (0) +/** + * \~english Touch panel configed + */ +#define HAL_INPUT_TOUCH_CONFIG_ON (1) + +/** + * \~english Touch panel touch press + */ +#define HAL_INPUT_TOUCH_PRESS (0) +/** + * \~english Touch panel touch release + */ +#define HAL_INPUT_TOUCH_RELEASE (1) + +/** + * \~english Don't report touch panel's touch event + */ +#define HAL_INPUT_TOUCH_UNREPORT (0) +/** + * \~english Report touch panel's touch event + */ +#define HAL_INPUT_TOUCH_REPORT (1) + +/** + * \~english Test all case + */ +#define HAL_INPUT_TOUCH_SELFTEST_ID_ALL (0xFE) +/** + * \~english Selftest data length + */ +#define HAL_INPUT_TOUCH_SELFTEST_DATA_LEN (5) +/** + * \~english Selftest mode not support + */ +#define HAL_INPUT_TOUCH_SELFTEST_NOT_SUPPORT (0xEE) + +/** + * \~english max number of input_event per package. + */ +#define HAL_INPUT_EVENT_COUNT 64 + +/** + * \~english Thread name defined + */ +#define HAL_INPUT_SOURCE_NAME "input_hal_mon" + +/** + * \~english Notify input event from touch panel, + * The data of the notification please refer the following two type.\n + * @ref HAL_INPUT_TOUCH_PRESS \n + * @ref HAL_INPUT_TOUCH_RELEASE \n + * Please use IF of NSFW as follows to receive this event. + * \~ @code + * l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(happ, HAL_INPUT_SOURCE_NAME, HAL_INPUT_NOTIFY_TOUCH, fpOnCmd); + * @endcode + * \~english note:FrameworkunifiedAttachCallbacksToDispatcher is available, too. + */ +#define HAL_INPUT_NOTIFY_TOUCH 100 +/** + * \~english Notify input event from touch panel ESC-KEY, + * The data format of the notification please refer to @ref EventsPackageInput.\n + * Please use IF of NSFW as follows to receive this event. + * \~ @code + * l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(happ, HAL_INPUT_SOURCE_NAME, HAL_INPUT_NOTIFY_ESC_KEY, fpOnCmd) + * @endcode + * \~english note:FrameworkunifiedAttachCallbacksToDispatcher is available, too. + */ +#define HAL_INPUT_NOTIFY_ESC_KEY 101 +/** + * \~english Notify input event from key board, + * The data format of the notification please refer to @ref EventsPackageInput.\n + * Please use IF of NSFW as follows to receive this event. + * \~ @code + * l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(happ, HAL_INPUT_SOURCE_NAME, HAL_INPUT_NOTIFY_KEY_BOARD, fpOnCmd) + * @endcode + * \~english note:FrameworkunifiedAttachCallbacksToDispatcher is available, too. + */ +#define HAL_INPUT_NOTIFY_KEY_BOARD 102 +/** + * \~english Notify input event from steering, + * The data format of the notification please refer to @ref EventsPackageInput.\n + * Please use IF of NSFW as follows to receive this event. + * \~ @code + * l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(happ, HAL_INPUT_SOURCE_NAME, HAL_INPUT_NOTIFY_STEERING, fpOnCmd) + * @endcode + * \~english note:FrameworkunifiedAttachCallbacksToDispatcher is available, too. + */ +#define HAL_INPUT_NOTIFY_STEERING 104 +/** + * \~english Notify input event from tablet finger, + * The data format of the notification please refer to @ref EventsPackageInput.\n + * Please use IF of NSFW as follows to receive this event. + * \~ @code + * l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(happ, HAL_INPUT_SOURCE_NAME, HAL_INPUT_NOTIFY_TABLET_FINGER, fpOnCmd) + * @endcode + * \~english note:FrameworkunifiedAttachCallbacksToDispatcher is available, too. + */ +#define HAL_INPUT_NOTIFY_TABLET_FINGER 105 +/** + * \~english Notify input event from rotary-key, + * The data format of the notification please refer to @ref EventsPackageInput.\n + * Please use IF of NSFW as follows to receive this event. + * \~ @code + * l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(happ, HAL_INPUT_SOURCE_NAME, HAL_INPUT_NOTIFY_ROTARY_KEY, fpOnCmd) + * @endcode + * \~english note:FrameworkunifiedAttachCallbacksToDispatcher is available, too. + */ +#define HAL_INPUT_NOTIFY_ROTARY_KEY 106 + +/** + * \~english Initialzing touch result notify, + * The data format of the notification please refer to @ref TouchInitFinishInput.\n + * Please use IF of NSFW as follows to receive this event. + * \~ @code + * l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(happ, HAL_INPUT_SOURCE_NAME, HAL_INPUT_NOTIFY_TOUCH_INIT_FINISH, fpOnCmd) + * @endcode + * \~english note:FrameworkunifiedAttachCallbacksToDispatcher is available, too. + */ +#define HAL_INPUT_NOTIFY_TOUCH_INIT_FINISH 120 + +/** + * @struct RadioInfoTouch + * \~english @par Brief + * Radio information + */ +struct RadioInfoTouch { + /** + * \~english Radio band type + * \~english Please ref to @ref HalInputBandType + */ + int16_t band; + /** + * \~english Frequency of the tuner[kHz] + * (Use only at the time of AM reception) + */ + uint16_t freq; + /** + * \~english Reception status (Use only at the time of AM reception) + * \~english Please refer to @ref HalInputBandType + */ + int32_t status; +}; + +/** + * @struct SelftestTouch + * \~english @par Brief + * Touch panel selftest mode result + */ +struct SelftestTouch { + /** + * \~english Touch panel selftest mode result + */ + unsigned char r_code; + /** + * \~english Touch panel selftest mode data. + * The datail info is depend on hardware spec. + */ + unsigned char r_data[HAL_INPUT_TOUCH_SELFTEST_DATA_LEN]; +}; + +/** + * @struct EventsPackageInput + * \~english @par Brief + * Input event package defined + */ +struct EventsPackageInput { + /** + * \~english device type + */ + int device_type; + /** + * \~english event count + */ + int count; + /** + * \~english input event data. + */ + struct input_event event[HAL_INPUT_EVENT_COUNT]; +}; + +/** + * @struct TouchInitFinishInput + * \~english @par Brief + * The result of initializing touch + */ +struct TouchInitFinishInput { + /** + * \~english If initializing the touch successful, the result was set HAL_INPUT_RET_NORMAL. + * If an error occurred, the result was set HAL_INPUT_RET_ERROR. + */ + int result; +}; +/************************************************************************ +* Function prototype * +************************************************************************/ + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// initializing input_hal. +/// \~english @param [in] app_name +/// const char* - the app name for receive input event. +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @retval HAL_INPUT_RET_ERROR : Process abnormality +/// \~english @par Prerequisite +/// - Have called @ref InitTouch() +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - Listen input devices and send input event. +/// - After initializing touch panel, the event(@ref HAL_INPUT_NOTIFY_TOUCH_INIT_FINISH) will be sent. +/// - The API can be used by 1 process. +/// \~english @see None. +//////////////////////////////////////////////////////////////////////////////// +int InitInput(const char* app_name); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// finalize input_hal +/// \~english @param none +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @par Prerequisite +/// - None +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - This API is to finalize input_hal. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int DeInitInput(); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// Init those operating function of touch panel driver +/// \~english @param none +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @par Prerequisite +/// - Touch panel function exist +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - None +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - The API is a block I/F which initializes those operating functions of touch panel driver. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int InitTouch(); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// Make touch panel start work +/// \~english @param none +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @retval HAL_INPUT_RET_ERROR : Process abnormality +/// \~english @par Prerequisite +/// - Have called @ref InitTouch() +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - Haven't called @ref InitTouch() +/// - @ref HAL_INPUT_RET_ERROR +/// - Inner io error +/// - @ref HAL_INPUT_RET_ERROR +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - This API is to prepare touch panel and make it start work. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int StartTouch(); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// Execute touch panel self test +/// \~english @param [in] id +/// int - selftest id(Pass HAL_INPUT_TOUCH_SELFTEST_ID_ALL : +/// Execute all test(disconnection check)) +/// \~english @param [out] result +/// void* - Touch panel selftest mode check result +/// \~english @note Result struct SelftestTouch depend on hardware spec +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @retval HAL_INPUT_RET_ERROR : Process abnormality +/// \~english @retval HAL_INPUT_RET_NOT_SUPPORT : Not support +/// \~english @par Prerequisite +/// - Have called @ref InitTouch() +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - Haven't called @ref InitTouch() +/// - @ref HAL_INPUT_RET_ERROR +/// - Not support this function +/// - @ref HAL_INPUT_RET_NOT_SUPPORT +/// - Param result is NULL +/// - @ref HAL_INPUT_RET_ERROR +/// - Inner io error +/// - @ref HAL_INPUT_RET_ERROR +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - This API is to execute touch panel self test and get test result. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int SelfTestTouch(int id, void *result); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// Set whether the driver sends touch panel data or not. +/// \~english @param [in] status +/// int - Touch panel whether report/unreport event\n +/// HAL_INPUT_TOUCH_REPORT : Report touch panel's touch event\n +/// HAL_INPUT_TOUCH_UNREPORT : Don't report touch panel's touch event\n +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @retval HAL_INPUT_RET_ERROR : Process abnormality +/// \~english @retval HAL_INPUT_RET_NOT_SUPPORT : Not support +/// \~english @note It means this API isn't support when return +/// @ref HAL_INPUT_RET_NOT_SUPPORT. +/// The user need to implement it +/// if don't need to report touch event. +/// \~english @par Prerequisite +/// - Have called @ref InitTouch() +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - Haven't called @ref InitTouch() +/// - @ref HAL_INPUT_RET_ERROR +/// - Not support this function +/// - @ref HAL_INPUT_RET_NOT_SUPPORT +/// - Status is none of @ref HAL_INPUT_TOUCH_REPORT / +/// @ref HAL_INPUT_TOUCH_UNREPORT +/// - @ref HAL_INPUT_RET_ERROR +/// - Inner io error +/// - @ref HAL_INPUT_RET_ERROR +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - This API is to set whether the driver sends touch panel data or not. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int LockTouch(int status); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// Suspend touch panel +/// \~english @param none +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @retval HAL_INPUT_RET_ERROR : Process abnormality +/// \~english @retval HAL_INPUT_RET_NOT_SUPPORT : Not support +/// \~english @note It means this API isn't support when return +/// @ref HAL_INPUT_RET_NOT_SUPPORT. +/// The user need to implement it +/// if don't need to report touch event. +/// \~english @par Prerequisite +/// - Have called @ref InitTouch() +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - Haven't called @ref InitTouch() +/// - @ref HAL_INPUT_RET_ERROR +/// - Not support this function +/// - @ref HAL_INPUT_RET_NOT_SUPPORT +/// - Inner io error +/// - @ref HAL_INPUT_RET_ERROR +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - This API is to suspend touch panel. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int SuspendTouch(); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// Set touch panel sensitivity level +/// \~english @param [in] level +/// int - Sensitivity level. +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @retval HAL_INPUT_RET_ERROR : Process abnormality +/// \~english @retval HAL_INPUT_RET_NOT_SUPPORT : Not support +/// \~english @par Prerequisite +/// - Have called @ref InitTouch() +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - Haven't called @ref InitTouch() +/// - @ref HAL_INPUT_RET_ERROR +/// - Not support this function +/// - @ref HAL_INPUT_RET_NOT_SUPPORT +/// - Sensitivity level is none of @ref HalInputTouchSensitivityLevel +/// - @ref HAL_INPUT_RET_ERROR +/// - Inner io error +/// - @ref HAL_INPUT_RET_ERROR +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - This API is to set touch panel sensitivity level. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int SetSensitivityLevelTouch(int level); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// Get touch panel sensitivity level +/// \~english @param [out] level +/// int* - Sensitivity level. +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @retval HAL_INPUT_RET_ERROR : Process abnormality +/// \~english @retval HAL_INPUT_RET_NOT_SUPPORT : Not support +/// \~english @par Prerequisite +/// - Have called @ref InitTouch() +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - Haven't called @ref InitTouch() +/// - @ref HAL_INPUT_RET_ERROR +/// - Not support this function +/// - @ref HAL_INPUT_RET_NOT_SUPPORT +/// - Param level is NULL +/// - @ref HAL_INPUT_RET_ERROR +/// - Inner io error +/// - @ref HAL_INPUT_RET_ERROR +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - This API is to get touch panel sensitivity level. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int GetSensitivityLevelTouch(int *level); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// Notify radio scan frequency +/// \~english @param [in] info +/// RadioInfoTouch* - SCAN frequence info +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @retval HAL_INPUT_RET_ERROR : Process abnormality +/// \~english @retval HAL_INPUT_RET_NOT_SUPPORT : Not support +/// \~english @par Prerequisite +/// - Have called @ref InitTouch() +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - Haven't called @ref InitTouch() +/// - @ref HAL_INPUT_RET_ERROR +/// - Not support this function +/// - @ref HAL_INPUT_RET_NOT_SUPPORT +/// - Param info is NULL +/// - @ref HAL_INPUT_RET_ERROR +/// - Inner io error +/// - @ref HAL_INPUT_RET_ERROR +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - This API is to notify radio scan frequency. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int NotifyRadioScanFreqTouch(struct RadioInfoTouch *info); + +//////////////////////////////////////////////////////////////////////////////// +/// \ingroup input_hal +/// \~english @par Brief +/// Get panel resolution +/// \~english @param [in] reso_h +/// int* - horizontal resolution +/// \~english @param [in] reso_v +/// int* - vertical resolution +/// \~english @retval HAL_INPUT_RET_NORMAL : Success +/// \~english @retval HAL_INPUT_RET_ERROR : Process abnormality +/// \~english @par Prerequisite +/// - Have called @ref InitTouch() +/// \~english @par Change of internal state +/// - Change of internal state according to the API does not occur +/// \~english @par Conditions of processing failure +/// - Param reso_h or reso_v is NULL +/// - @ref HAL_INPUT_RET_ERROR +/// - Inner io error +/// - @ref HAL_INPUT_RET_ERROR +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync +/// \~english @par Detail +/// - This API is to get horizontal and vertical resolution. +/// - The API can be used by 1 process. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////// +int GetPanelSpecResolutionInput(int *reso_h, int *reso_v); + +/** @}*/ // end of input_hal +/** @}*/ // end of switchhandler + +#endif // HAL_API_INPUT_HAL_H_ diff --git a/input_hal/hal_api/peripheral_service/aglinput.h b/input_hal/hal_api/peripheral_service/aglinput.h new file mode 100644 index 00000000..aa5f6ed8 --- /dev/null +++ b/input_hal/hal_api/peripheral_service/aglinput.h @@ -0,0 +1,536 @@ +/* + * @copyright Copyright (c) 2019-2020 TOYOTA MOTOR CORPORATION. + * + * 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. + */ +#ifndef HAL_API_PERIPHERAL_SERVICE_AGLINPUT_H_ +#define HAL_API_PERIPHERAL_SERVICE_AGLINPUT_H_ + +#include + +/* + * Extended Area for AGL + * In this file the Key definition based on the specification + * Redefine with '#undef/#define + */ +enum{ + /** + * FP Switch : 0x0001 - 0x0064 + * */ + KEY_FP_TOP = 0x001, + KEY_FP_SW1 = KEY_FP_TOP, + KEY_FP_SW2 , + KEY_FP_SW3 , + KEY_FP_SW4 , + KEY_FP_SW5 , + KEY_FP_SW6 , + KEY_FP_SW7 , + KEY_FP_SW8 , + KEY_FP_SW9 , + KEY_FP_SW10 , + KEY_FP_SW11 , + KEY_FP_SW12 , + KEY_FP_SW13 , + KEY_FP_SW14 , + KEY_FP_SW15 , + KEY_FP_SW16 , + KEY_FP_SW17 , + KEY_FP_SW18 , + KEY_FP_SW19 , + KEY_FP_SW20 , + KEY_FP_SW21 , + KEY_FP_SW22 , + KEY_FP_SW23 , + KEY_FP_SW24 , + KEY_FP_SW25 , + KEY_FP_SW26 , + KEY_FP_SW27 , + KEY_FP_SW28 , + KEY_FP_SW29 , + KEY_FP_SW30 , + KEY_FP_SW31 , + KEY_FP_SW32 , + KEY_FP_SW33 , + KEY_FP_SW34 , + KEY_FP_SW35 , + KEY_FP_SW36 , + KEY_FP_SW37 , + KEY_FP_SW38 , + KEY_FP_SW39 , + KEY_FP_SW40 , + KEY_FP_SW41 , + KEY_FP_SW42 , + KEY_FP_SW43 , + KEY_FP_SW44 , + KEY_FP_SW45 , + KEY_FP_SW46 , + KEY_FP_SW47 , + KEY_FP_SW48 , + KEY_FP_SW49 , + KEY_FP_SW50 , + KEY_FP_SW51 , + KEY_FP_SW52 , + KEY_FP_SW53 , + KEY_FP_SW54 , + KEY_FP_SW55 , + KEY_FP_SW56 , + KEY_FP_SW57 , + KEY_FP_SW58 , + KEY_FP_SW59 , + KEY_FP_SW60 , + KEY_FP_SW61 , + KEY_FP_SW62 , + KEY_FP_SW63 , + KEY_FP_SW64 , + KEY_FP_SW65 , + KEY_FP_SW66 , + KEY_FP_SW67 , + KEY_FP_SW68 , + KEY_FP_SW69 , + KEY_FP_SW70 , + KEY_FP_SW71 , + KEY_FP_SW72 , + KEY_FP_SW73 , + KEY_FP_SW74 , + KEY_FP_SW75 , + KEY_FP_SW76 , + KEY_FP_SW77 , + KEY_FP_SW78 , + KEY_FP_SW79 , + KEY_FP_SW80 , + KEY_FP_SW81 , + KEY_FP_SW82 , + KEY_FP_SW83 , + KEY_FP_SW84 , + KEY_FP_SW85 , + KEY_FP_SW86 , + KEY_FP_SW87 , + KEY_FP_SW88 , + KEY_FP_SW89 , + KEY_FP_SW90 , + KEY_FP_SW91 , + KEY_FP_SW92 , + KEY_FP_SW93 , + KEY_FP_SW94 , + KEY_FP_SW95 , + KEY_FP_SW96 , + KEY_FP_SW97 , + KEY_FP_SW98 , + KEY_FP_SW99 , + KEY_FP_SW100 , + KEY_FP_BOTTOM = KEY_FP_SW100, + + /** + * RC Switch : 0x065 - 0x094 + * */ + KEY_RC_TOP = 0x0065, + KEY_RC_SW1 = KEY_RC_TOP, + KEY_RC_SW2 , + KEY_RC_SW3 , + KEY_RC_SW4 , + KEY_RC_SW5 , + KEY_RC_SW6 , + KEY_RC_SW7 , + KEY_RC_SW8 , + KEY_RC_SW9 , + KEY_RC_SW10 , + KEY_RC_SW11 , + KEY_RC_SW12 , + KEY_RC_SW13 , + KEY_RC_SW14 , + KEY_RC_SW15 , + KEY_RC_SW16 , + KEY_RC_SW17 , + KEY_RC_SW18 , + KEY_RC_SW19 , + KEY_RC_SW20 , + KEY_RC_SW21 , + KEY_RC_SW22 , + KEY_RC_SW23 , + KEY_RC_SW24 , + KEY_RC_SW25 , + KEY_RC_SW26 , + KEY_RC_SW27 , + KEY_RC_SW28 , + KEY_RC_SW29 , + KEY_RC_SW30 , + KEY_RC_SW31 , + KEY_RC_SW32 , + KEY_RC_SW33 , + KEY_RC_SW34 , + KEY_RC_SW35 , + KEY_RC_SW36 , + KEY_RC_SW37 , + KEY_RC_SW38 , + KEY_RC_SW39 , + KEY_RC_SW40 , + KEY_RC_SW41 , + KEY_RC_SW42 , + KEY_RC_SW43 , + KEY_RC_SW44 , + KEY_RC_SW45 , + KEY_RC_SW46 , + KEY_RC_SW47 , + KEY_RC_SW48 , + KEY_RC_BOTTOM = KEY_RC_SW48, + + /** + * R Switch : 0x0095 - 0x0096 + * */ + KEY_ROT_TOP = 0x0095, + KEY_ROT_SW1 = KEY_ROT_TOP, + KEY_ROT_SW2 , + KEY_ROT_BOTTOM = KEY_ROT_SW2, + + /** + * FSAC Switch : 0x0097 - 0x00D2 + * */ + KEY_FSAC_TOP = 0x0097, + KEY_FSAC_SW1 = KEY_FSAC_TOP, + KEY_FSAC_SW2 , + KEY_FSAC_SW3 , + KEY_FSAC_SW4 , + KEY_FSAC_SW5 , + KEY_FSAC_SW6 , + KEY_FSAC_SW7 , + KEY_FSAC_SW8 , + KEY_FSAC_SW9 , + KEY_FSAC_SW10 , + KEY_FSAC_SW11 , + KEY_FSAC_SW12 , + KEY_FSAC_SW13 , + KEY_FSAC_SW14 , + KEY_FSAC_SW15 , + KEY_FSAC_SW16 , + KEY_FSAC_SW17 , + KEY_FSAC_SW18 , + KEY_FSAC_SW19 , + KEY_FSAC_SW20 , + KEY_FSAC_SW21 , + KEY_FSAC_SW22 , + KEY_FSAC_SW23 , + KEY_FSAC_SW24 , + KEY_FSAC_SW25 , + KEY_FSAC_SW26 , + KEY_FSAC_SW27 , + KEY_FSAC_SW28 , + KEY_FSAC_SW29 , + KEY_FSAC_SW30 , + KEY_FSAC_SW31 , + KEY_FSAC_SW32 , + KEY_FSAC_SW33 , + KEY_FSAC_SW34 , + KEY_FSAC_SW35 , + KEY_FSAC_SW36 , + KEY_FSAC_SW37 , + KEY_FSAC_SW38 , + KEY_FSAC_SW39 , + KEY_FSAC_SW40 , + KEY_FSAC_SW41 , + KEY_FSAC_SW42 , + KEY_FSAC_SW43 , + KEY_FSAC_SW44 , + KEY_FSAC_SW45 , + KEY_FSAC_SW46 , + KEY_FSAC_SW47 , + KEY_FSAC_SW48 , + KEY_FSAC_SW49 , + KEY_FSAC_SW50 , + KEY_FSAC_SW51 , + KEY_FSAC_SW52 , + KEY_FSAC_SW53 , + KEY_FSAC_SW54 , + KEY_FSAC_SW55 , + KEY_FSAC_SW56 , + KEY_FSAC_SW57 , + KEY_FSAC_SW58 , + KEY_FSAC_SW59 , + KEY_FSAC_BOTTOM = KEY_FSAC_SW59, + + /** + * Ste Switch : 0x00D3 - 0x00E6 + * */ + KEY_STE_TOP = 0x00D3, + KEY_STE_SW1 = KEY_STE_TOP, + KEY_STE_SW2 , + KEY_STE_SW3 , + KEY_STE_SW4 , + KEY_STE_SW5 , + KEY_STE_SW6 , + KEY_STE_SW7 , + KEY_STE_SW8 , + KEY_STE_SW9 , + KEY_STE_SW10 , + KEY_STE_SW11 , + KEY_STE_SW12 , + KEY_STE_SW13 , + KEY_STE_SW14 , + KEY_STE_SW15 , + KEY_STE_SW16 , + KEY_STE_SW18 , + KEY_STE_SW19 , + KEY_STE_BOTTOM = KEY_STE_SW19, + + /** + * RCP Switch : 0x00F0 - 0x00F8 + * */ + KEY_RCP_TOP = 0x00F0, + KEY_RCP_SW1 = KEY_RCP_TOP, + KEY_RCP_SW2 , + KEY_RCP_SW3 , + KEY_RCP_SW4 , + KEY_RCP_SW5 , + KEY_RCP_SW6 , + KEY_RCP_SW7 , + KEY_RCP_SW8 , + KEY_RCP_BOTTOM = KEY_RCP_SW8, + + /** + * RSE_RC Switch : 0x0160 - 0x01CF + * */ + KEY_RSE_RC_TOP = 0x0160, + KEY_RSE_RC_SW1 = KEY_RSE_RC_TOP, + KEY_RSE_RC_SW2 , + KEY_RSE_RC_SW3 , + KEY_RSE_RC_SW4 , + KEY_RSE_RC_SW5 , + KEY_RSE_RC_SW6 , + KEY_RSE_RC_SW7 , + KEY_RSE_RC_SW8 , + KEY_RSE_RC_SW9 , + KEY_RSE_RC_SW10 , + KEY_RSE_RC_SW11 , + KEY_RSE_RC_SW12 , + KEY_RSE_RC_SW13 , + KEY_RSE_RC_SW14 , + KEY_RSE_RC_SW15 , + KEY_RSE_RC_SW16 , + KEY_RSE_RC_SW17 , + KEY_RSE_RC_SW18 , + KEY_RSE_RC_SW19 , + KEY_RSE_RC_SW20 , + KEY_RSE_RC_SW21 , + KEY_RSE_RC_SW22 , + KEY_RSE_RC_SW23 , + KEY_RSE_RC_SW24 , + KEY_RSE_RC_SW25 , + KEY_RSE_RC_SW26 , + KEY_RSE_RC_SW27 , + KEY_RSE_RC_SW28 , + KEY_RSE_RC_SW29 , + KEY_RSE_RC_SW30 , + KEY_RSE_RC_SW31 , + KEY_RSE_RC_SW32 , + KEY_RSE_RC_SW33 , + KEY_RSE_RC_SW34 , + KEY_RSE_RC_SW35 , + KEY_RSE_RC_SW36 , + KEY_RSE_RC_SW37 , + KEY_RSE_RC_SW38 , + KEY_RSE_RC_SW39 , + KEY_RSE_RC_SW40 , + KEY_RSE_RC_SW41 , + KEY_RSE_RC_SW42 , + KEY_RSE_RC_SW43 , + KEY_RSE_RC_SW44 , + KEY_RSE_RC_SW45 , + KEY_RSE_RC_SW46 , + KEY_RSE_RC_SW47 , + KEY_RSE_RC_SW48 , + KEY_RSE_RC_SW49 , + KEY_RSE_RC_SW50 , + KEY_RSE_RC_SW51 , + KEY_RSE_RC_SW52 , + KEY_RSE_RC_SW53 , + KEY_RSE_RC_SW54 , + KEY_RSE_RC_SW55 , + KEY_RSE_RC_SW56 , + KEY_RSE_RC_SW57 , + KEY_RSE_RC_SW58 , + KEY_RSE_RC_SW59 , + KEY_RSE_RC_SW60 , + KEY_RSE_RC_SW61 , + KEY_RSE_RC_SW65 , + KEY_RSE_RC_SW66 , + KEY_RSE_RC_SW67 , + KEY_RSE_RC_SW68 , + KEY_RSE_RC_SW69 , + KEY_RSE_RC_SW70 , + KEY_RSE_RC_SW71 , + KEY_RSE_RC_SW72 , + KEY_RSE_RC_SW73 , + KEY_RSE_RC_SW74 , + KEY_RSE_RC_SW75 , + KEY_RSE_RC_SW76 , + KEY_RSE_RC_SW77 , + KEY_RSE_RC_SW78 , + KEY_RSE_RC_SW79 , + KEY_RSE_RC_SW80 , + KEY_RSE_RC_SW81 , + KEY_RSE_RC_SW82 , + KEY_RSE_RC_SW83 , + KEY_RSE_RC_SW84 , + KEY_RSE_RC_SW85 , + KEY_RSE_RC_SW86 , + KEY_RSE_RC_SW87 , + KEY_RSE_RC_SW88 , + KEY_RSE_RC_SW89 , + KEY_RSE_RC_SW90 , + KEY_RSE_RC_SW91 , + KEY_RSE_RC_SW92 , + KEY_RSE_RC_SW93 , + KEY_RSE_RC_SW94 , + KEY_RSE_RC_SW95 , + KEY_RSE_RC_SW96 , + KEY_RSE_RC_SW97 , + KEY_RSE_RC_SW98 , + KEY_RSE_RC_SW99 , + KEY_RSE_RC_SW100 , + KEY_RSE_RC_SW101 , + KEY_RSE_RC_SW102 , + KEY_RSE_RC_SW62 , + KEY_RSE_RC_SW63 , + KEY_RSE_RC_SW64 , + KEY_RSE_RC_SW103 , + KEY_RSE_RC_SW104 , + KEY_RSE_RC_SW105 , + KEY_RSE_RC_SW106 , + KEY_RSE_RC_SW107 , + KEY_RSE_RC_SW108 , + KEY_RSE_RC_SW109 , + KEY_RSE_RC_SW110 , + KEY_RSE_RC_SW111 , + KEY_RSE_RC_SW112 , + KEY_RSE_RC_BOTTOM = KEY_RSE_RC_SW112, + + /** + * RTP Switch : 0x01D6 - 0x01DE + * */ + KEY_RTP_TOP = 0x01D6, + KEY_RTP_SW1 = KEY_RTP_TOP, + KEY_RTP_SW2 , + KEY_RTP_SW3 , + KEY_RTP_SW4 , + KEY_RTP_SW5 , + KEY_RTP_SW6 , + KEY_RTP_SW7 , + KEY_RTP_SW8 , + KEY_RTP_SW9 , + KEY_RTP_BOTTOM = KEY_RTP_SW9, + + /** + * RSP Switch : 0x01E0 - 0x0208 + * */ + KEY_RSP_TOP = 0x01E0, + KEY_RSP_SW1 = KEY_RSP_TOP, + KEY_RSP_SW2 , + KEY_RSP_SW3 , + KEY_RSP_SW4 , + KEY_RSP_SW5 , + KEY_RSP_SW6 , + KEY_RSP_SW7 , + KEY_RSP_SW8 , + KEY_RSP_SW9 , + KEY_RSP_SW10 , + KEY_RSP_SW11 , + KEY_RSP_SW12 , + KEY_RSP_SW13 , + KEY_RSP_SW14 , + KEY_RSP_SW15 , + KEY_RSP_SW16 , + KEY_RSP_SW17 , + KEY_RSP_SW18 , + KEY_RSP_SW19 , + KEY_RSP_SW20 , + KEY_RSP_SW21 , + KEY_RSP_SW22 , + KEY_RSP_SW23 , + KEY_RSP_SW24 , + KEY_RSP_SW25 , + KEY_RSP_SW26 , + KEY_RSP_SW27 , + KEY_RSP_SW28 , + KEY_RSP_SW29 , + KEY_RSP_SW30 , + KEY_RSP_SW31 , + KEY_RSP_SW32 , + KEY_RSP_SW33 , + KEY_RSP_SW34 , + KEY_RSP_SW35 , + KEY_RSP_SW36 , + KEY_RSP_SW37 , + KEY_RSP_SW38 , + KEY_RSP_SW39 , + KEY_RSP_SW40 , + KEY_RSP_SW41 , + KEY_RSP_BOTTOM = KEY_RSP_SW41, + + /** + * Original Define : 0x02A0 - 0x02CF + * */ + KEY_INPUTHAL_TOP = 0x02A0, + KEY_INPUTHAL_SW1 = KEY_INPUTHAL_TOP, + KEY_INPUTHAL_BTN_RIGHT, + KEY_INPUTHAL_BTN_MIDDLE, + KEY_INPUTHAL_BTN_SIDE, + KEY_INPUTHAL_BTN_EXTRA, + KEY_INPUTHAL_BTN_FORWARD, + KEY_INPUTHAL_BTN_BACK, + KEY_INPUTHAL_BTN_TASK, + KEY_INPUTHAL_SW9, + KEY_INPUTHAL_SW10, + KEY_INPUTHAL_BTN_JOYSTICK, + KEY_INPUTHAL_TOUCH, + KEY_INPUTHAL_SINGLE_TAP_UP, + KEY_INPUTHAL_DOUBLE_TOUCH_DOWN, + KEY_INPUTHAL_TOUCHPAD_DUMMY1, + KEY_INPUTHAL_TOUCHPAD_DUMMY2, + KEY_INPUTHAL_TOUCHPAD_DUMMY3, + KEY_INPUTHAL_TOUCHPAD_DUMMY4, + KEY_INPUTHAL_TOUCHPAD_DUMMY5, + KEY_INPUTHAL_TOUCHPAD_DUMMY6, + KEY_INPUTHAL_TOUCHPAD_DUMMY7, + KEY_INPUTHAL_TOUCHPAD_DUMMY8, + KEY_INPUTHAL_TOUCHPAD_DUMMY9, + KEY_INPUTHAL_TOUCHPAD_DUMMY10, + KEY_INPUTHAL_TOUCHPAD_DUMMY11, + KEY_INPUTHAL_TOUCHPAD_DUMMY12, + KEY_INPUTHAL_TOUCH_POINT_3, + KEY_INPUTHAL_TOUCH_POINT_2, + KEY_INPUTHAL_PUSH, + KEY_INPUTHAL_TAP_SINGLE, + KEY_INPUTHAL_TAP_DOUBLE, + KEY_INPUTHAL_SW16, + KEY_INPUTHAL_NAVI, + KEY_INPUTHAL_HOME, + KEY_INPUTHAL_MEM1, + KEY_INPUTHAL_MEM2, + KEY_INPUTHAL_RECENT_JP, + KEY_INPUTHAL_WEB, + KEY_INPUTHAL_DEST_ERACE, + KEY_INPUTHAL_MENU_SEARCH, + KEY_INPUTHAL_MENU_GO_HOME, + KEY_INPUTHAL_MENU_RECENT_NA, + KEY_INPUTHAL_MENU_FAVORITE, + KEY_INPUTHAL_MENU_CONTACT, + KEY_INPUTHAL_MENU_OTHERS, + KEY_INPUTHAL_MENU_SUBSCREEN_NAVI, + KEY_INPUTHAL_INVALID_SW , + KEY_INPUTHAL_BOTTOM = KEY_INPUTHAL_INVALID_SW, +}; + +#define BTN_TAP_DOUBLE KEY_INPUTHAL_SW10 + +#define REL_PINCH 0x0a + +#endif // HAL_API_PERIPHERAL_SERVICE_AGLINPUT_H_ diff --git a/input_hal/hal_api/peripheral_service/extinput.h b/input_hal/hal_api/peripheral_service/extinput.h new file mode 100644 index 00000000..0265a2dc --- /dev/null +++ b/input_hal/hal_api/peripheral_service/extinput.h @@ -0,0 +1,27 @@ +/* + * @copyright Copyright (c) 2019-2020 TOYOTA MOTOR CORPORATION. + * + * 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. + */ +#ifndef HAL_API_PERIPHERAL_SERVICE_EXTINPUT_H_ +#define HAL_API_PERIPHERAL_SERVICE_EXTINPUT_H_ + +#include + +/* + * Extended fields for each supplier + * If you want to modify the key definition at the supplier, + * redefine with '#undef/#define in this file. + */ + +#endif // HAL_API_PERIPHERAL_SERVICE_EXTINPUT_H_ -- cgit 1.2.3-korg