[Core] Quantum Painter - LVGL Integration (#18499)
Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
		
							parent
							
								
									2d19e59d78
								
							
						
					
					
						commit
						102f22f7e9
					
				
					 24 changed files with 1140 additions and 3 deletions
				
			
		
							
								
								
									
										50
									
								
								keyboards/handwired/onekey/keymaps/lvgl/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								keyboards/handwired/onekey/keymaps/lvgl/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
// Copyright 2022 Jose Pablo Ramirez (@jpe230)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
#include "qp.h"
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    LAYOUT_ortho_1x1(JS_BUTTON0)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
painter_device_t lcd;
 | 
			
		||||
 | 
			
		||||
void lv_example_arc_2(void);
 | 
			
		||||
 | 
			
		||||
void keyboard_post_init_user(void) {
 | 
			
		||||
    lcd = qp_gc9a01_make_spi_device(240, 240, LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN, 4, 0);
 | 
			
		||||
    qp_init(lcd, QP_ROTATION_0);
 | 
			
		||||
    qp_rect(lcd, 0, 0, 239, 319, 0, 255, 255, true);
 | 
			
		||||
 | 
			
		||||
    if (qp_lvgl_attach(lcd)) {
 | 
			
		||||
        lv_example_arc_2();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void set_angle(void* obj, int32_t v) {
 | 
			
		||||
    lv_arc_set_value(obj, v);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Create an arc which acts as a loader.
 | 
			
		||||
 */
 | 
			
		||||
void lv_example_arc_2(void) {
 | 
			
		||||
    /*Create an Arc*/
 | 
			
		||||
    lv_obj_t* arc = lv_arc_create(lv_scr_act());
 | 
			
		||||
    lv_arc_set_rotation(arc, 270);
 | 
			
		||||
    lv_arc_set_bg_angles(arc, 0, 360);
 | 
			
		||||
    lv_obj_remove_style(arc, NULL, LV_PART_KNOB);  /*Be sure the knob is not displayed*/
 | 
			
		||||
    lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE); /*To not allow adjusting by click*/
 | 
			
		||||
    lv_obj_center(arc);
 | 
			
		||||
 | 
			
		||||
    static lv_anim_t a;
 | 
			
		||||
    lv_anim_init(&a);
 | 
			
		||||
    lv_anim_set_var(&a, arc);
 | 
			
		||||
    lv_anim_set_exec_cb(&a, set_angle);
 | 
			
		||||
    lv_anim_set_time(&a, 1000);
 | 
			
		||||
    lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); /*Just for the demo*/
 | 
			
		||||
    lv_anim_set_repeat_delay(&a, 500);
 | 
			
		||||
    lv_anim_set_values(&a, 0, 100);
 | 
			
		||||
    lv_anim_start(&a);
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue