 fae8d8f23c
			
		
	
	
		fae8d8f23c
		
			
		
	
	
	
	
		
			
			* Gui: code input module * Gui: fix size to fit frame * Desktop: PIN config and lock option * Gui: code input: cleanup, offset input fields if no header present * Desktop: move code unlock to desktop_locked scene * Desktop: fix unlock with back key * Desktop: bump settings version * Desktop: correct scene usage. Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|  * @file code_input.h
 | |
|  * GUI: CodeInput keyboard view module API
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <gui/view.h>
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /** Code input anonymous structure  */
 | |
| typedef struct CodeInput CodeInput;
 | |
| 
 | |
| /** callback that is executed when entered code matches ext buffer */
 | |
| typedef void (*CodeInputOkCallback)(void* context);
 | |
| 
 | |
| /** callback that is executed when entered code does not matches ext buffer */
 | |
| typedef void (*CodeInputFailCallback)(void* context);
 | |
| 
 | |
| /** Allocate and initialize code input. This code input is used to enter codes.
 | |
|  *
 | |
|  * @return     CodeInput instance pointer
 | |
|  */
 | |
| CodeInput* code_input_alloc();
 | |
| 
 | |
| /** Deinitialize and free code input
 | |
|  *
 | |
|  * @param      code_input  Code input instance
 | |
|  */
 | |
| void code_input_free(CodeInput* code_input);
 | |
| 
 | |
| /** Get code input view
 | |
|  *
 | |
|  * @param      code_input  code input instance
 | |
|  *
 | |
|  * @return     View instance that can be used for embedding
 | |
|  */
 | |
| View* code_input_get_view(CodeInput* code_input);
 | |
| 
 | |
| /** Set code input result callback
 | |
|  *
 | |
|  * @param      code_input        code input instance
 | |
|  * @param      ok_callback    ok callback fn
 | |
|  * @param      fail_callback  fail callback fn
 | |
|  * @param      callback_context  callback context
 | |
|  * @param      buffer       buffer to use
 | |
|  * @param      buffer_length       buffer length
 | |
|  * @param      update  set true to update buffer 
 | |
|  */
 | |
| void code_input_set_result_callback(
 | |
|     CodeInput* code_input,
 | |
|     CodeInputOkCallback ok_callback,
 | |
|     CodeInputFailCallback fail_callback,
 | |
|     void* callback_context,
 | |
|     uint8_t* buffer,
 | |
|     uint8_t* buffer_length,
 | |
|     bool update);
 | |
| 
 | |
| /** Set code input header text
 | |
|  *
 | |
|  * @param      code_input  code input instance
 | |
|  * @param      text        text to be shown
 | |
|  */
 | |
| void code_input_set_header_text(CodeInput* code_input, const char* text);
 | |
| 
 | |
| /** Compare two buffers
 | |
|  *
 | |
|  * @param      in       buffer to compare to source
 | |
|  * @param      len_in   length of input buffer
 | |
|  * @param      src      source buffer
 | |
|  * @param      len_src  length of insourceput buffer
 | |
|  * @return     true if buffers match
 | |
|  */
 | |
| 
 | |
| bool code_input_compare(uint8_t* in, size_t len_in, uint8_t* src, size_t len_src);
 | |
| 
 | |
| /** Push input into the end of array
 | |
|  *
 | |
|  * @param      buffer   buffer
 | |
|  * @param      length   length of buffer
 | |
|  * @param      key      input key
 | |
|  * @return     new length of input buffer
 | |
|  */
 | |
| size_t code_input_push(uint8_t* buffer, size_t length, InputKey key);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif |