|
|
1行目: |
1行目: |
− | https://docs.lvgl.io/8.2/porting/indev.html
| |
− | __NOTOC__
| |
− | {| class="wikitable"
| |
− | !英文
| |
− | !自動翻訳
| |
− | |-
| |
− | |
| |
− | |
| |
− | |-
| |
− | |
| |
− | |
| |
− | |-
| |
− | |
| |
− | |
| |
− | |-
| |
− | |
| |
− | |
| |
− | |-
| |
− | |
| |
− | |
| |
− | |-
| |
− | |
| |
− | |
| |
− | |-
| |
− | |
| |
− | |
| |
− | |-
| |
− | |
| |
− | |
| |
− | |}
| |
− |
| |
− |
| |
− |
| |
− | = Input device interface =
| |
− |
| |
− | == Types of input devices ==
| |
− | To register an input device an <code style="color: #bb0000;">lv_indev_drv_t</code> variable has to be initialized.
| |
− |
| |
− | '''Be sure to register at least one display before you register any input devices.'''
| |
− | <syntaxhighlight lang="C++">
| |
− | lv_disp_drv_register(&disp_drv);
| |
− |
| |
− | static lv_indev_drv_t indev_drv;
| |
− | lv_indev_drv_init(&indev_drv); /*Basic initialization*/
| |
− | indev_drv.type =... /*See below.*/
| |
− | indev_drv.read_cb =... /*See below.*/
| |
− | /*Register the driver in LVGL and save the created input device object*/
| |
− | lv_indev_t * my_indev = lv_indev_drv_register(&indev_drv);
| |
− | </syntaxhighlight>
| |
− | The <code style="color: #bb0000;">type</code> member can be:
| |
− |
| |
− | * <code style="color: #bb0000;">LV_INDEV_TYPE_POINTER</code> touchpad or mouse
| |
− | * <code style="color: #bb0000;">LV_INDEV_TYPE_KEYPAD</code> keyboard or keypad
| |
− | * <code style="color: #bb0000;">LV_INDEV_TYPE_ENCODER</code> encoder with left/right turn and push options
| |
− | * <code style="color: #bb0000;">LV_INDEV_TYPE_BUTTON</code> external buttons virtually pressing the screen
| |
− |
| |
− |
| |
− | <code style="color: #bb0000;">read_cb</code> is a function pointer which will be called periodically to report the current state of an input device.
| |
− |
| |
− | Visit [https://docs.lvgl.io/8.2/overview/indev.html '''Input devices to'''] learn more about input devices in general.
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
− | === Touchpad, mouse or any pointer ===
| |
− | Input devices that can click points on the screen belong to this category.
| |
− | <syntaxhighlight lang="C++">
| |
− | indev_drv.type = LV_INDEV_TYPE_POINTER;
| |
− | indev_drv.read_cb = my_input_read;
| |
− |
| |
− | ...
| |
− |
| |
− | void my_input_read(lv_indev_drv_t * drv, lv_indev_data_t*data)
| |
− | {
| |
− | if(touchpad_pressed) {
| |
− | data->point.x = touchpad_x;
| |
− | data->point.y = touchpad_y;
| |
− | data->state = LV_INDEV_STATE_PRESSED;
| |
− | } else {
| |
− | data->state = LV_INDEV_STATE_RELEASED;
| |
− | }
| |
− | }
| |
− | </syntaxhighlight>
| |
− | To set a mouse cursor use <code style="color: #bb0000;">lv_indev_set_cursor(my_indev, &img_cursor)</code>. (<code style="color: #bb0000;">my_indev</code> is the return value of <code style="color: #bb0000;">lv_indev_drv_register</code>)
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
| https://docs.lvgl.io/8.2/porting/indev.html | | https://docs.lvgl.io/8.2/porting/indev.html |
| __NOTOC__ | | __NOTOC__ |
607行目: |
521行目: |
| |} | | |} |
| :[[App:Library:LVGL:docs:Porting|戻る : Previous]] | | :[[App:Library:LVGL:docs:Porting|戻る : Previous]] |
− |
| |
− | === Encoder ===
| |
− | With an encoder you can do the following:
| |
− |
| |
− | # Press its button
| |
− | # Long-press its button
| |
− | # Turn left
| |
− | # Turn right
| |
− |
| |
− |
| |
− | In short, the Encoder input devices work like this:
| |
− |
| |
− | * By turning the encoder you can focus on the next/previous object.
| |
− | * When you press the encoder on a simple object (like a button), it will be clicked.
| |
− | * If you press the encoder on a complex object (like a list, message box, etc.) the object will go to edit mode whereby you can navigate inside the object by turning the encoder.
| |
− | * To leave edit mode, long press the button.
| |
− |
| |
− |
| |
− | To use an ''Encoder'' (similarly to the ''Keypads'') the objects should be added to groups.
| |
− | <syntaxhighlight lang="C++">
| |
− | indev_drv.type = LV_INDEV_TYPE_ENCODER;
| |
− | indev_drv.read_cb = encoder_read;
| |
− |
| |
− | ...
| |
− |
| |
− | void encoder_read(lv_indev_drv_t * drv, lv_indev_data_t*data){
| |
− | data->enc_diff = enc_get_new_moves();
| |
− |
| |
− | if(enc_pressed()) data->state = LV_INDEV_STATE_PRESSED;
| |
− | else data->state = LV_INDEV_STATE_RELEASED;
| |
− | }
| |
− | </syntaxhighlight>
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
− | ==== Using buttons with Encoder logic ====
| |
− | In addition to standard encoder behavior, you can also utilize its logic to navigate(focus) and edit widgets using buttons. This is especially handy if you have only few buttons available, or you want to use other buttons in addition to encoder wheel.
| |
− |
| |
− |
| |
− | You need to have 3 buttons available:
| |
− |
| |
− | * <code style="color: #bb0000;">LV_KEY_ENTER</code> will simulate press or pushing of the encoder button
| |
− | * <code style="color: #bb0000;">LV_KEY_LEFT</code> will simulate turning encoder left
| |
− | * <code style="color: #bb0000;">LV_KEY_RIGHT</code> will simulate turning encoder right
| |
− | * other keys will be passed to the focused widget
| |
− |
| |
− |
| |
− | If you hold the keys it will simulate an encoder advance with period specified in <code style="color: #bb0000;">indev_drv.long_press_rep_time</code>.
| |
− | <syntaxhighlight lang="C++">
| |
− | indev_drv.type = LV_INDEV_TYPE_ENCODER;
| |
− | indev_drv.read_cb = encoder_with_keys_read;
| |
− |
| |
− | ...
| |
− |
| |
− | void encoder_with_keys_read(lv_indev_drv_t * drv, lv_indev_data_t*data){
| |
− | data->key = last_key(); /*Get the last pressed or released key*/
| |
− | /* use LV_KEY_ENTER for encoder press */
| |
− | if(key_pressed()) data->state = LV_INDEV_STATE_PRESSED;
| |
− | else {
| |
− | data->state = LV_INDEV_STATE_RELEASED;
| |
− | /* Optionally you can also use enc_diff, if you have encoder*/
| |
− | data->enc_diff = enc_get_new_moves();
| |
− | }
| |
− | }
| |
− | </syntaxhighlight>
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
− | === Button ===
| |
− | ''Buttons'' mean external "hardware" buttons next to the screen which are assigned to specific coordinates of the screen. If a button is pressed it will simulate the pressing on the assigned coordinate. (Similarly to a touchpad)
| |
− |
| |
− |
| |
− | To assign buttons to coordinates use <code style="color: #bb0000;">lv_indev_set_button_points(my_indev, points_array)</code>.
| |
− |
| |
− | <code style="color: #bb0000;">points_array</code> should look like <code style="color: #bb0000;">const lv_point_t points_array[] = { {12,30},{60,90}, ...}</code>
| |
− |
| |
− | <span style="background-color: #dbfaf4;>'''Important''': The points_array can't go out of scope. Either declare it as a global variable or as a static variable inside a function. </span>
| |
− | <syntaxhighlight lang="C++">
| |
− | indev_drv.type = LV_INDEV_TYPE_BUTTON;
| |
− | indev_drv.read_cb = button_read;
| |
− |
| |
− | ...
| |
− |
| |
− | void button_read(lv_indev_drv_t * drv, lv_indev_data_t*data){
| |
− | static uint32_t last_btn = 0; /*Store the last pressed button*/
| |
− | int btn_pr = my_btn_read(); /*Get the ID (0,1,2...) of the pressed button*/
| |
− | if(btn_pr >= 0) { /*Is there a button press? (E.g. -1 indicated no button was pressed)*/
| |
− | last_btn = btn_pr; /*Save the ID of the pressed button*/
| |
− | data->state = LV_INDEV_STATE_PRESSED; /*Set the pressed state*/
| |
− | } else {
| |
− | data->state = LV_INDEV_STATE_RELEASED; /*Set the released state*/
| |
− | }
| |
− |
| |
− | data->btn = last_btn; /*Save the last button*/
| |
− | }
| |
− | </syntaxhighlight>
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
− | == Other features ==
| |
− |
| |
− | === Parameters ===
| |
− | The default value of the following parameters can be changed in <code style="color: #bb0000;">lv_indev_drv_t</code>:
| |
− |
| |
− | * <code style="color: #bb0000;">scroll_limit</code> Number of pixels to slide before actually scrolling the object.
| |
− | * <code style="color: #bb0000;">scroll_throw</code> Scroll throw (momentum) slow-down in [%]. Greater value means faster slow-down.
| |
− | * <code style="color: #bb0000;">long_press_time</code> Press time to send <code style="color: #bb0000;">LV_EVENT_LONG_PRESSED</code> (in milliseconds)
| |
− | * <code style="color: #bb0000;">long_press_rep_time</code> Interval of sending <code style="color: #bb0000;">LV_EVENT_LONG_PRESSED_REPEAT</code> (in milliseconds)
| |
− | * <code style="color: #bb0000;">read_timer</code> pointer to the <code style="color: #bb0000;">lv_timer</code> which reads the input device. Its parameters can be changed by <code style="color: #bb0000;">lv_timer_...()</code> functions. <code style="color: #bb0000;">LV_INDEV_DEF_READ_PERIOD</code> in <code style="color: #bb0000;">lv_conf.h</code> sets the default read period.
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
− | === Feedback ===
| |
− | Besides <code style="color: #bb0000;">read_cb</code> a <code style="color: #bb0000;">feedback_cb</code> callback can be also specified in <code style="color: #bb0000;">lv_indev_drv_t</code>. <code style="color: #bb0000;">feedback_cb</code> is called when any type of event is sent by the input devices (independently of its type). This allows generating feedback for the user, e.g. to play a sound on <code style="color: #bb0000;">LV_EVENT_CLICKED</code>.
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
− | === Associating with a display ===
| |
− | Every input device is associated with a display. By default, a new input device is added to the last display created or explicitly selected (using <code style="color: #bb0000;">lv_disp_set_default()</code>). The associated display is stored and can be changed in <code style="color: #bb0000;">disp</code> field of the driver.
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
− | === Buffered reading ===
| |
− | By default, LVGL calls <code style="color: #bb0000;">read_cb</code> periodically. Because of this intermittent polling there is a chance that some user gestures are missed.
| |
− |
| |
− |
| |
− | To solve this you can write an event driven driver for your input device that buffers measured data. In <code style="color: #bb0000;">read_cb</code> you can report the buffered data instead of directly reading the input device. Setting the <code style="color: #bb0000;">data->continue_reading</code> flag will tell LVGL there is more data to read and it should call <code style="color: #bb0000;">read_cb</code> again.
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
− | == Further reading ==
| |
− |
| |
− | * [https://github.com/lvgl/lvgl/blob/master/examples/porting/lv_port_indev_template.c '''lv_port_indev_template.c'''] for a template for your own driver.
| |
− | * [https://docs.lvgl.io/8.2/overview/display.html '''INdev features'''] to learn more about higher level input device features.
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |
− |
| |
− |
| |
− | == API ==
| |
− | @description Input Device HAL interface layer header file
| |
− |
| |
− | Typedefs
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">typedef struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415_lv_indev_drv_t lv_indev_drv_t] lv_indev_drv_t</span>
| |
− | : Initialized by the user and registered by 'lv_indev_add()'
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">typedef struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv416_lv_indev_proc_t lv_indev_proc_t] _lv_indev_proc_t</span>
| |
− | : Run time data of input devices Internally used by the library, you should not need to touch it.
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">typedef struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv411_lv_indev_t lv_indev_t] lv_indev_t</span>
| |
− | : The main input device descriptor with driver, runtime data ('proc') and some additional information
| |
− |
| |
− | === Enums ===
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">enum lv_indev_type_t </span>
| |
− | : Possible input device types ''Values:''
| |
− | : <span style="background-color: #eeeeee;">enumerator LV_INDEV_TYPE_NONE </span>
| |
− | :: Uninitialized state
| |
− | : <span style="background-color: #eeeeee;">enumerator LV_INDEV_TYPE_POINTER </span>
| |
− | :: Touch pad, mouse, external button
| |
− | : <span style="background-color: #eeeeee;">enumerator LV_INDEV_TYPE_KEYPAD </span>
| |
− | :: Keypad or keyboard
| |
− | : <span style="background-color: #eeeeee;">enumerator LV_INDEV_TYPE_BUTTON </span>
| |
− | :: External (hardware button) which is assigned to a specific point of the screen
| |
− | : <span style="background-color: #eeeeee;">enumerator LV_INDEV_TYPE_ENCODER </span>
| |
− | :: Encoder with only Left, Right turn and a Button
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">enum lv_indev_state_t </span>
| |
− | : States for input devices
| |
− | :''Values:''
| |
− | : <span style="background-color: #eeeeee;">enumerator LV_INDEV_STATE_RELEASED </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">enumerator LV_INDEV_STATE_PRESSED </span>
| |
− | ::
| |
− |
| |
− | === Functions ===
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">void lv_indev_drv_init(struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415_lv_indev_drv_t lv_indev_drv_t] *driver) </span>
| |
− | : Initialize an input device driver with default values. It is used to surely have known values in the fields and not memory junk. After it you can set the fields.
| |
− | : '''Parameters'''
| |
− | :: '''driver''' -- pointer to driver variable to initialize
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv410lv_indev_t '''lv_indev_t'''] *lv_indev_drv_register(struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415_lv_indev_drv_t lv_indev_drv_t] *driver) </span>
| |
− | : Register an initialized input device driver.
| |
− | : '''Parameters'''
| |
− | :: '''driver''' -- pointer to an initialized 'lv_indev_drv_t' variable (can be local variable)
| |
− | : '''Returns'''
| |
− | :: pointer to the new input device or NULL on error
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">void lv_indev_drv_update([https://docs.lvgl.io/8.2/porting/indev.html#_CPPv410lv_indev_t '''lv_indev_t'''] *indev, struct [https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415_lv_indev_drv_t _lv_indev_drv_t] *new_drv) </span>
| |
− | : Update the driver in run time.
| |
− | : '''Parameters'''
| |
− | ::* '''indev''' -- pointer to an input device. (return value of <code style="color: #bb0000;">lv_indev_drv_register</code>)
| |
− | ::* '''new_drv''' -- pointer to the new driver
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">void lv_indev_delete([https://docs.lvgl.io/8.2/porting/indev.html#_CPPv410lv_indev_t '''lv_indev_t'''] *indev) </span>
| |
− | : Remove the provided input device. Make sure not to use the provided input device afterwards anymore.
| |
− | : '''Parameters'''
| |
− | :: '''indev''' -- pointer to delete
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv410lv_indev_t '''lv_indev_t'''] *lv_indev_get_next([https://docs.lvgl.io/8.2/porting/indev.html#_CPPv410lv_indev_t '''lv_indev_t'''] *indev) </span>
| |
− | : Get the next input device.
| |
− | : '''Parameters'''
| |
− | :: '''indev''' -- pointer to the current input device. NULL to initialize.
| |
− | : '''Returns'''
| |
− | :: the next input device or NULL if there are no more. Provide the first input device when the parameter is NULL
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">void _lv_indev_read([https://docs.lvgl.io/8.2/porting/indev.html#_CPPv410lv_indev_t '''lv_indev_t'''] *indev, [https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415lv_indev_data_t '''lv_indev_data_t'''] *data) </span>
| |
− | : Read data from an input device.
| |
− | : '''Parameters'''
| |
− | ::* '''indev''' -- pointer to an input device
| |
− | ::* '''data''' -- input device will write its data here
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">struct lv_indev_data_t </span>
| |
− | : ''#include <lv_hal_i'ndev.h>''
| |
− | : Data structure passed to an input driver to fill
| |
− | : '''Public Members'''
| |
− | : <span style="background-color: #eeeeee;">lv_point_t point </span>
| |
− | :: For LV_INDEV_TYPE_POINTER the currently pressed point
| |
− | : <span style="background-color: #eeeeee;">uint32_t key </span>
| |
− | :: For LV_INDEV_TYPE_KEYPAD the currently pressed key
| |
− | : <span style="background-color: #eeeeee;">uint32_t btn_id </span>
| |
− | :: For LV_INDEV_TYPE_BUTTON the currently pressed button
| |
− | : <span style="background-color: #eeeeee;">int16_t enc_diff </span>
| |
− | :: For LV_INDEV_TYPE_ENCODER number of steps since the previous read
| |
− | : <span style="background-color: #eeeeee;">[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv416lv_indev_state_t '''lv_indev_state_t'''] state </span>
| |
− | :: LV_INDEV_STATE_REL or LV_INDEV_STATE_PR
| |
− | : <span style="background-color: #eeeeee;">bool continue_reading </span>
| |
− | :: If set to true, the read callback is invoked again
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">struct _lv_indev_drv_t </span>
| |
− | : ''#include <lv_hal_i'ndev.h>''
| |
− | : Initialized by the user and registered by 'lv_indev_add()'
| |
− | :
| |
− | : '''Public Members'''
| |
− | : <span style="background-color: #eeeeee;">[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415lv_indev_type_t '''lv_indev_type_t'''] type</span>
| |
− | :: < Input device type Function pointer to read input device data.
| |
− | : <span style="background-color: #eeeeee;">void (*read_cb)(struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415_lv_indev_drv_t '''lv_indev_drv_t'''] *indev_drv, [https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415lv_indev_data_t '''lv_indev_data_t'''] *data)</span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">void (*feedback_cb)(struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415_lv_indev_drv_t '''lv_indev_drv_t''']*, uint8_t)</span>
| |
− | :: Called when an action happened on the input device.
| |
− | :: The second parameter is the event from <code style="color: #bb0000;">lv_event_t</code>
| |
− | : <span style="background-color: #eeeeee;">void *user_data </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/porting/display.html#_CPPv410_lv_disp_t '''lv_disp_t'''] *disp</span>
| |
− | :: < Pointer to the assigned display Timer to periodically read the input device
| |
− | : <span style="background-color: #eeeeee;">[https://docs.lvgl.io/8.2/overview/timer.html#_CPPv410lv_timer_t '''lv_timer_t'''] *read_timer</span>
| |
− | :: Number of pixels to slide before actually drag the object
| |
− | : <span style="background-color: #eeeeee;">uint8_t scroll_limit </span>
| |
− | :: Drag throw slow-down in [%].
| |
− | :: Greater value means faster slow-down
| |
− | : <span style="background-color: #eeeeee;">uint8_t scroll_throw </span>
| |
− | :: At least this difference should be between two points to evaluate as gesture
| |
− | : <span style="background-color: #eeeeee;">uint8_t gesture_min_velocity </span>
| |
− | :: At least this difference should be to send a gesture
| |
− | : <span style="background-color: #eeeeee;">uint8_t gesture_limit </span>
| |
− | :: Long press time in milliseconds
| |
− | : <span style="background-color: #eeeeee;">uint16_t long_press_time </span>
| |
− | :: Repeated trigger period in long press [ms]
| |
− | : <span style="background-color: #eeeeee;">uint16_t long_press_repeat_time </span>
| |
− | ::
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">struct _lv_indev_proc_t </span>
| |
− | : ''#include <lv_hal_indev.h>'' Run time data of input devices Internally used by the library, you should not need to touch it.
| |
− | :
| |
− | : '''Public Members'''
| |
− | :<span style="background-color: #eeeeee;">[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv416lv_indev_state_t '''lv_indev_state_t'''] state</span>
| |
− | :: Current state of the input device.
| |
− | : <span style="background-color: #eeeeee;">uint8_t long_pr_sent </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">uint8_t reset_query </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">uint8_t disabled </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">uint8_t wait_until_release </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">lv_point_t act_point </span>
| |
− | :: Current point of input device.
| |
− | : <span style="background-color: #eeeeee;">lv_point_t last_point </span>
| |
− | :: Last point of input device.
| |
− | : <span style="background-color: #eeeeee;">lv_point_t last_raw_point </span>
| |
− | :: Last point read from read_cb.
| |
− | : <span style="background-color: #eeeeee;">lv_point_t vect </span>
| |
− | :: Difference between <code style="color: #bb0000;">act_point</code> and <code style="color: #bb0000;">last_point</code>.
| |
− | : <span style="background-color: #eeeeee;">lv_point_t scroll_sum </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">lv_point_t scroll_throw_vect </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">lv_point_t scroll_throw_vect_ori </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49_lv_obj_t '''lv_obj_t'''] *act_obj</span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49_lv_obj_t '''lv_obj_t'''] *last_obj</span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49_lv_obj_t '''lv_obj_t'''] *scroll_obj</span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49_lv_obj_t '''lv_obj_t'''] *last_pressed</span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">lv_area_t scroll_area </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">lv_point_t gesture_sum </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">lv_dir_t scroll_dir </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">lv_dir_t gesture_dir </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">uint8_t gesture_sent </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv416_lv_indev_proc_t '''lv_indev_proc_t''']<nowiki>::[anonymous]::[anonymous] pointer</nowiki></span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv416lv_indev_state_t '''lv_indev_state_t'''] last_state </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">uint32_t last_key </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv416_lv_indev_proc_t lv_indev_proc_t]<nowiki>::[anonymous]::[anonymous] keypad</nowiki></span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">union _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv416_lv_indev_proc_t lv_indev_proc_t]<nowiki>::[anonymous] types</nowiki> </span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">uint32_t pr_timestamp </span>
| |
− | :: Pressed time stamp
| |
− | : <span style="background-color: #eeeeee;">uint32_t longpr_rep_timestamp </span>
| |
− | :: Long press repeat time stamp
| |
− |
| |
− | <span style="background-color: #e7f2fa; color: #2980b9;">struct _lv_indev_t </span>
| |
− | : ''#include <lv_h''''al_indev.h>'' The main input device descriptor with driver, runtime data ('proc') and some additional information Public Members
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv415_lv_indev_drv_t '''lv_indev_drv_t'''] *driver</span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">[https://docs.lvgl.io/8.2/porting/indev.html#_CPPv416_lv_indev_proc_t '''_lv_indev_proc_t'''] proc</span>
| |
− | ::
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/widgets/obj.html#_CPPv49_lv_obj_t '''lv_obj_t'''] *cursor</span>
| |
− | :: Cursor for LV_INPUT_TYPE_POINTER
| |
− | : <span style="background-color: #eeeeee;">struct _[https://docs.lvgl.io/8.2/overview/indev.html#_CPPv411_lv_group_t '''lv_group_t'''] *group</span>
| |
− | :: Keypad destination group
| |
− | : <span style="background-color: #eeeeee;">const lv_point_t *btn_points </span>
| |
− | :: Array points assigned to the button ()screen will be pressed here by the buttons
| |
− |
| |
− | :[https://robot-jp.com/wiki/index.php/App:Library:LVGL:docs:Porting 戻る : Previous]
| |