now
This commit is contained in:
parent
426f9e9f24
commit
a89abf859a
5
.gitmodules
vendored
5
.gitmodules
vendored
@ -1,6 +1,3 @@
|
|||||||
[submodule "lib/lvgl"]
|
[submodule "lib/lvgl"]
|
||||||
path = lib/lvgl
|
path = lib/lvgl
|
||||||
url = https://github.com/lvgl/lvgl.git
|
url = https://github.com/lvgl/lvgl.git
|
||||||
[submodule "lib/sdl-cmake"]
|
|
||||||
path = lib/sdl-cmake
|
|
||||||
url = https://gitlab.com/aminosbh/sdl2-cmake-modules.git
|
|
@ -12,14 +12,10 @@ add_compile_definitions(MAIN_MESSAGE="Hello for main.c from cmake.")
|
|||||||
|
|
||||||
# For LVGL
|
# For LVGL
|
||||||
add_compile_definitions(DLV_CONF_PATH="${CMAKE_CURRENT_SOURCE_DIR}/include/lv_conf.h")
|
add_compile_definitions(DLV_CONF_PATH="${CMAKE_CURRENT_SOURCE_DIR}/include/lv_conf.h")
|
||||||
add_compile_definitions(DLV_CONF_PATH="${CMAKE_CURRENT_SOURCE_DIR}/include/lv_drv_conf.h")
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/)
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib/sdl-cmake)
|
|
||||||
|
|
||||||
|
|
||||||
# set 1 to compile static (Standalone)
|
# set 1 to compile static (Standalone)
|
||||||
set(BIN_STATIC 1)
|
set(BIN_STATIC 0)
|
||||||
|
|
||||||
# Set binary suffix based on the operating system
|
# Set binary suffix based on the operating system
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
@ -64,12 +60,21 @@ foreach(Project IN LISTS SubProjects)
|
|||||||
|
|
||||||
# Link the subproject to the main project executable
|
# Link the subproject to the main project executable
|
||||||
if(BIN_STATIC)
|
if(BIN_STATIC)
|
||||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${Project} -static)
|
target_link_libraries(${PROJECT_NAME} ${Project} -static)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${Project})
|
target_link_libraries(${PROJECT_NAME} ${Project})
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
# For SDL
|
||||||
|
find_package(SDL2 REQUIRED)
|
||||||
|
include_directories(${SDL2_INCLUDE_DIRS})
|
||||||
|
if(BIN_STATIC)
|
||||||
|
target_link_libraries(${PROJECT_NAME} ${SDL2_LIBRARIES} -static)
|
||||||
|
else()
|
||||||
|
target_link_libraries(${PROJECT_NAME} ${SDL2_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all core's for compiling
|
# Add all core's for compiling
|
||||||
include(ProcessorCount)
|
include(ProcessorCount)
|
||||||
ProcessorCount(N)
|
ProcessorCount(N)
|
||||||
|
@ -1,504 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file lv_drv_conf.h
|
|
||||||
* Configuration file for v9.0.0-dev
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* COPY THIS FILE AS lv_drv_conf.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* clang-format off */
|
|
||||||
#if 1 /*Set it to "1" to enable the content*/
|
|
||||||
|
|
||||||
#ifndef LV_DRV_CONF_H
|
|
||||||
#define LV_DRV_CONF_H
|
|
||||||
|
|
||||||
#include "lv_conf.h"
|
|
||||||
|
|
||||||
/*********************
|
|
||||||
* DELAY INTERFACE
|
|
||||||
*********************/
|
|
||||||
#define LV_DRV_DELAY_INCLUDE <stdint.h> /*Dummy include by default*/
|
|
||||||
#define LV_DRV_DELAY_US(us) /*delay_us(us)*/ /*Delay the given number of microseconds*/
|
|
||||||
#define LV_DRV_DELAY_MS(ms) /*delay_ms(ms)*/ /*Delay the given number of milliseconds*/
|
|
||||||
|
|
||||||
/*********************
|
|
||||||
* DISPLAY INTERFACE
|
|
||||||
*********************/
|
|
||||||
|
|
||||||
/*------------
|
|
||||||
* Common
|
|
||||||
*------------*/
|
|
||||||
#define LV_DRV_DISP_INCLUDE <stdint.h> /*Dummy include by default*/
|
|
||||||
#define LV_DRV_DISP_CMD_DATA(val) /*pin_x_set(val)*/ /*Set the command/data pin to 'val'*/
|
|
||||||
#define LV_DRV_DISP_RST(val) /*pin_x_set(val)*/ /*Set the reset pin to 'val'*/
|
|
||||||
|
|
||||||
/*---------
|
|
||||||
* SPI
|
|
||||||
*---------*/
|
|
||||||
#define LV_DRV_DISP_SPI_CS(val) /*spi_cs_set(val)*/ /*Set the SPI's Chip select to 'val'*/
|
|
||||||
#define LV_DRV_DISP_SPI_WR_BYTE(data) /*spi_wr(data)*/ /*Write a byte the SPI bus*/
|
|
||||||
#define LV_DRV_DISP_SPI_WR_ARRAY(adr, n) /*spi_wr_mem(adr, n)*/ /*Write 'n' bytes to SPI bus from 'adr'*/
|
|
||||||
|
|
||||||
/*------------------
|
|
||||||
* Parallel port
|
|
||||||
*-----------------*/
|
|
||||||
#define LV_DRV_DISP_PAR_CS(val) /*par_cs_set(val)*/ /*Set the Parallel port's Chip select to 'val'*/
|
|
||||||
#define LV_DRV_DISP_PAR_SLOW /*par_slow()*/ /*Set low speed on the parallel port*/
|
|
||||||
#define LV_DRV_DISP_PAR_FAST /*par_fast()*/ /*Set high speed on the parallel port*/
|
|
||||||
#define LV_DRV_DISP_PAR_WR_WORD(data) /*par_wr(data)*/ /*Write a word to the parallel port*/
|
|
||||||
#define LV_DRV_DISP_PAR_WR_ARRAY(adr, n) /*par_wr_mem(adr,n)*/ /*Write 'n' bytes to Parallel ports from 'adr'*/
|
|
||||||
|
|
||||||
/***************************
|
|
||||||
* INPUT DEVICE INTERFACE
|
|
||||||
***************************/
|
|
||||||
|
|
||||||
/*----------
|
|
||||||
* Common
|
|
||||||
*----------*/
|
|
||||||
#define LV_DRV_INDEV_INCLUDE <stdint.h> /*Dummy include by default*/
|
|
||||||
#define LV_DRV_INDEV_RST(val) /*pin_x_set(val)*/ /*Set the reset pin to 'val'*/
|
|
||||||
#define LV_DRV_INDEV_IRQ_READ 0 /*pn_x_read()*/ /*Read the IRQ pin*/
|
|
||||||
|
|
||||||
/*---------
|
|
||||||
* SPI
|
|
||||||
*---------*/
|
|
||||||
#define LV_DRV_INDEV_SPI_CS(val) /*spi_cs_set(val)*/ /*Set the SPI's Chip select to 'val'*/
|
|
||||||
#define LV_DRV_INDEV_SPI_XCHG_BYTE(data) 0 /*spi_xchg(val)*/ /*Write 'val' to SPI and give the read value*/
|
|
||||||
|
|
||||||
/*---------
|
|
||||||
* I2C
|
|
||||||
*---------*/
|
|
||||||
#define LV_DRV_INDEV_I2C_START /*i2c_start()*/ /*Make an I2C start*/
|
|
||||||
#define LV_DRV_INDEV_I2C_STOP /*i2c_stop()*/ /*Make an I2C stop*/
|
|
||||||
#define LV_DRV_INDEV_I2C_RESTART /*i2c_restart()*/ /*Make an I2C restart*/
|
|
||||||
#define LV_DRV_INDEV_I2C_WR(data) /*i2c_wr(data)*/ /*Write a byte to the I1C bus*/
|
|
||||||
#define LV_DRV_INDEV_I2C_READ(last_read) 0 /*i2c_rd()*/ /*Read a byte from the I2C bud*/
|
|
||||||
|
|
||||||
|
|
||||||
/*********************
|
|
||||||
* DISPLAY DRIVERS
|
|
||||||
*********************/
|
|
||||||
|
|
||||||
/*-------------------
|
|
||||||
* SDL
|
|
||||||
*-------------------*/
|
|
||||||
|
|
||||||
/* SDL based drivers for display, mouse, mousewheel and keyboard*/
|
|
||||||
#ifndef USE_SDL
|
|
||||||
# define USE_SDL 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Hardware accelerated SDL driver */
|
|
||||||
#ifndef USE_SDL_GPU
|
|
||||||
# define USE_SDL_GPU 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_SDL || USE_SDL_GPU
|
|
||||||
# define SDL_HOR_RES 480
|
|
||||||
# define SDL_VER_RES 320
|
|
||||||
|
|
||||||
/* Scale window by this factor (useful when simulating small screens) */
|
|
||||||
# define SDL_ZOOM 1
|
|
||||||
|
|
||||||
/* Used to test true double buffering with only address changing.
|
|
||||||
* Use 2 draw buffers, bith with SDL_HOR_RES x SDL_VER_RES size*/
|
|
||||||
# define SDL_DOUBLE_BUFFERED 0
|
|
||||||
|
|
||||||
/*Eclipse: <SDL2/SDL.h> Visual Studio: <SDL.h>*/
|
|
||||||
# define SDL_INCLUDE_PATH <SDL2/SDL.h>
|
|
||||||
|
|
||||||
/*Open two windows to test multi display support*/
|
|
||||||
# define SDL_DUAL_DISPLAY 0
|
|
||||||
|
|
||||||
/* Window Title */
|
|
||||||
# define SDL_WINDOW_TITLE "TFT Simulator"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*-------------------
|
|
||||||
* Monitor of PC
|
|
||||||
*-------------------*/
|
|
||||||
|
|
||||||
/*DEPRECATED: Use the SDL driver instead. */
|
|
||||||
#ifndef USE_MONITOR
|
|
||||||
# define USE_MONITOR 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_MONITOR
|
|
||||||
# define MONITOR_HOR_RES 480
|
|
||||||
# define MONITOR_VER_RES 320
|
|
||||||
|
|
||||||
/* Scale window by this factor (useful when simulating small screens) */
|
|
||||||
# define MONITOR_ZOOM 1
|
|
||||||
|
|
||||||
/* Used to test true double buffering with only address changing.
|
|
||||||
* Use 2 draw buffers, bith with MONITOR_HOR_RES x MONITOR_VER_RES size*/
|
|
||||||
# define MONITOR_DOUBLE_BUFFERED 0
|
|
||||||
|
|
||||||
/*Eclipse: <SDL2/SDL.h> Visual Studio: <SDL.h>*/
|
|
||||||
# define MONITOR_SDL_INCLUDE_PATH <SDL2/SDL.h>
|
|
||||||
|
|
||||||
/*Open two windows to test multi display support*/
|
|
||||||
# define MONITOR_DUAL 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*-----------------------------------
|
|
||||||
* Native Windows (including mouse)
|
|
||||||
*----------------------------------*/
|
|
||||||
#ifndef USE_WINDOWS
|
|
||||||
# define USE_WINDOWS 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_WINDOWS
|
|
||||||
# define WINDOW_HOR_RES 480
|
|
||||||
# define WINDOW_VER_RES 320
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*----------------------------
|
|
||||||
* Native Windows (win32drv)
|
|
||||||
*---------------------------*/
|
|
||||||
#ifndef USE_WIN32DRV
|
|
||||||
# define USE_WIN32DRV 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_WIN32DRV
|
|
||||||
/* Scale window by this factor (useful when simulating small screens) */
|
|
||||||
# define WIN32DRV_MONITOR_ZOOM 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*----------------------------------------
|
|
||||||
* GTK drivers (monitor, mouse, keyboard
|
|
||||||
*---------------------------------------*/
|
|
||||||
#ifndef USE_GTK
|
|
||||||
# define USE_GTK 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*----------------------------------------
|
|
||||||
* Wayland drivers (monitor, mouse, keyboard, touchscreen)
|
|
||||||
*---------------------------------------*/
|
|
||||||
#ifndef USE_WAYLAND
|
|
||||||
# define USE_WAYLAND 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_WAYLAND
|
|
||||||
/* Support for client-side decorations */
|
|
||||||
# ifndef LV_WAYLAND_CLIENT_SIDE_DECORATIONS
|
|
||||||
# define LV_WAYLAND_CLIENT_SIDE_DECORATIONS 1
|
|
||||||
# endif
|
|
||||||
/* Support for (deprecated) wl-shell protocol */
|
|
||||||
# ifndef LV_WAYLAND_WL_SHELL
|
|
||||||
# define LV_WAYLAND_WL_SHELL 1
|
|
||||||
# endif
|
|
||||||
/* Support for xdg-shell protocol */
|
|
||||||
# ifndef LV_WAYLAND_XDG_SHELL
|
|
||||||
# define LV_WAYLAND_XDG_SHELL 0
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*----------------------------------------
|
|
||||||
* X11 drivers (monitor, mouse, keyboard)
|
|
||||||
*---------------------------------------*/
|
|
||||||
#ifndef USE_X11
|
|
||||||
# define USE_X11 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*----------------
|
|
||||||
* SSD1963
|
|
||||||
*--------------*/
|
|
||||||
#ifndef USE_SSD1963
|
|
||||||
# define USE_SSD1963 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_SSD1963
|
|
||||||
# define SSD1963_HOR_RES LV_HOR_RES
|
|
||||||
# define SSD1963_VER_RES LV_VER_RES
|
|
||||||
# define SSD1963_HT 531
|
|
||||||
# define SSD1963_HPS 43
|
|
||||||
# define SSD1963_LPS 8
|
|
||||||
# define SSD1963_HPW 10
|
|
||||||
# define SSD1963_VT 288
|
|
||||||
# define SSD1963_VPS 12
|
|
||||||
# define SSD1963_FPS 4
|
|
||||||
# define SSD1963_VPW 10
|
|
||||||
# define SSD1963_HS_NEG 0 /*Negative hsync*/
|
|
||||||
# define SSD1963_VS_NEG 0 /*Negative vsync*/
|
|
||||||
# define SSD1963_ORI 0 /*0, 90, 180, 270*/
|
|
||||||
# define SSD1963_COLOR_DEPTH 16
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*----------------
|
|
||||||
* R61581
|
|
||||||
*--------------*/
|
|
||||||
#ifndef USE_R61581
|
|
||||||
# define USE_R61581 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_R61581
|
|
||||||
# define R61581_HOR_RES LV_HOR_RES
|
|
||||||
# define R61581_VER_RES LV_VER_RES
|
|
||||||
# define R61581_HSPL 0 /*HSYNC signal polarity*/
|
|
||||||
# define R61581_HSL 10 /*HSYNC length (Not Implemented)*/
|
|
||||||
# define R61581_HFP 10 /*Horitontal Front poarch (Not Implemented)*/
|
|
||||||
# define R61581_HBP 10 /*Horitontal Back poarch (Not Implemented */
|
|
||||||
# define R61581_VSPL 0 /*VSYNC signal polarity*/
|
|
||||||
# define R61581_VSL 10 /*VSYNC length (Not Implemented)*/
|
|
||||||
# define R61581_VFP 8 /*Vertical Front poarch*/
|
|
||||||
# define R61581_VBP 8 /*Vertical Back poarch */
|
|
||||||
# define R61581_DPL 0 /*DCLK signal polarity*/
|
|
||||||
# define R61581_EPL 1 /*ENABLE signal polarity*/
|
|
||||||
# define R61581_ORI 0 /*0, 180*/
|
|
||||||
# define R61581_LV_COLOR_DEPTH 16 /*Fix 16 bit*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*------------------------------
|
|
||||||
* ST7565 (Monochrome, low res.)
|
|
||||||
*-----------------------------*/
|
|
||||||
#ifndef USE_ST7565
|
|
||||||
# define USE_ST7565 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_ST7565
|
|
||||||
/*No settings*/
|
|
||||||
#endif /*USE_ST7565*/
|
|
||||||
|
|
||||||
/*------------------------------
|
|
||||||
* GC9A01 (color, low res.)
|
|
||||||
*-----------------------------*/
|
|
||||||
#ifndef USE_GC9A01
|
|
||||||
# define USE_GC9A01 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_GC9A01
|
|
||||||
/*No settings*/
|
|
||||||
#endif /*USE_GC9A01*/
|
|
||||||
|
|
||||||
/*------------------------------------------
|
|
||||||
* UC1610 (4 gray 160*[104|128])
|
|
||||||
* (EA DOGXL160 160x104 tested)
|
|
||||||
*-----------------------------------------*/
|
|
||||||
#ifndef USE_UC1610
|
|
||||||
# define USE_UC1610 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_UC1610
|
|
||||||
# define UC1610_HOR_RES LV_HOR_RES
|
|
||||||
# define UC1610_VER_RES LV_VER_RES
|
|
||||||
# define UC1610_INIT_CONTRAST 33 /* init contrast, values in [%] */
|
|
||||||
# define UC1610_INIT_HARD_RST 0 /* 1 : hardware reset at init, 0 : software reset */
|
|
||||||
# define UC1610_TOP_VIEW 0 /* 0 : Bottom View, 1 : Top View */
|
|
||||||
#endif /*USE_UC1610*/
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
|
||||||
* SHARP memory in pixel monochrome display series
|
|
||||||
* LS012B7DD01 (184x38 pixels.)
|
|
||||||
* LS013B7DH03 (128x128 pixels.)
|
|
||||||
* LS013B7DH05 (144x168 pixels.)
|
|
||||||
* LS027B7DH01 (400x240 pixels.) (tested)
|
|
||||||
* LS032B7DD02 (336x536 pixels.)
|
|
||||||
* LS044Q7DH01 (320x240 pixels.)
|
|
||||||
*------------------------------------------------*/
|
|
||||||
#ifndef USE_SHARP_MIP
|
|
||||||
# define USE_SHARP_MIP 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_SHARP_MIP
|
|
||||||
# define SHARP_MIP_HOR_RES LV_HOR_RES
|
|
||||||
# define SHARP_MIP_VER_RES LV_VER_RES
|
|
||||||
# define SHARP_MIP_SOFT_COM_INVERSION 0
|
|
||||||
# define SHARP_MIP_REV_BYTE(b) /*((uint8_t) __REV(__RBIT(b)))*/ /*Architecture / compiler dependent byte bits order reverse*/
|
|
||||||
#endif /*USE_SHARP_MIP*/
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
|
||||||
* ILI9341 240X320 TFT LCD
|
|
||||||
*------------------------------------------------*/
|
|
||||||
#ifndef USE_ILI9341
|
|
||||||
# define USE_ILI9341 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_ILI9341
|
|
||||||
# define ILI9341_HOR_RES LV_HOR_RES
|
|
||||||
# define ILI9341_VER_RES LV_VER_RES
|
|
||||||
# define ILI9341_GAMMA 1
|
|
||||||
# define ILI9341_TEARING 0
|
|
||||||
#endif /*USE_ILI9341*/
|
|
||||||
|
|
||||||
/*-----------------------------------------
|
|
||||||
* Linux frame buffer device (/dev/fbx)
|
|
||||||
*-----------------------------------------*/
|
|
||||||
#ifndef USE_FBDEV
|
|
||||||
# define USE_FBDEV 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_FBDEV
|
|
||||||
# define FBDEV_PATH "/dev/fb0"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*-----------------------------------------
|
|
||||||
* FreeBSD frame buffer device (/dev/fbx)
|
|
||||||
*.........................................*/
|
|
||||||
#ifndef USE_BSD_FBDEV
|
|
||||||
# define USE_BSD_FBDEV 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_BSD_FBDEV
|
|
||||||
# define FBDEV_PATH "/dev/fb0"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*-----------------------------------------
|
|
||||||
* DRM/KMS device (/dev/dri/cardX)
|
|
||||||
*-----------------------------------------*/
|
|
||||||
#ifndef USE_DRM
|
|
||||||
# define USE_DRM 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_DRM
|
|
||||||
# define DRM_CARD "/dev/dri/card0"
|
|
||||||
# define DRM_CONNECTOR_ID -1 /* -1 for the first connected one */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*********************
|
|
||||||
* INPUT DEVICES
|
|
||||||
*********************/
|
|
||||||
|
|
||||||
/*--------------
|
|
||||||
* XPT2046
|
|
||||||
*--------------*/
|
|
||||||
#ifndef USE_XPT2046
|
|
||||||
# define USE_XPT2046 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_XPT2046
|
|
||||||
# define XPT2046_HOR_RES 480
|
|
||||||
# define XPT2046_VER_RES 320
|
|
||||||
# define XPT2046_X_MIN 200
|
|
||||||
# define XPT2046_Y_MIN 200
|
|
||||||
# define XPT2046_X_MAX 3800
|
|
||||||
# define XPT2046_Y_MAX 3800
|
|
||||||
# define XPT2046_AVG 4
|
|
||||||
# define XPT2046_X_INV 0
|
|
||||||
# define XPT2046_Y_INV 0
|
|
||||||
# define XPT2046_XY_SWAP 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*-----------------
|
|
||||||
* FT5406EE8
|
|
||||||
*-----------------*/
|
|
||||||
#ifndef USE_FT5406EE8
|
|
||||||
# define USE_FT5406EE8 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_FT5406EE8
|
|
||||||
# define FT5406EE8_I2C_ADR 0x38 /*7 bit address*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*---------------
|
|
||||||
* AD TOUCH
|
|
||||||
*--------------*/
|
|
||||||
#ifndef USE_AD_TOUCH
|
|
||||||
# define USE_AD_TOUCH 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_AD_TOUCH
|
|
||||||
/*No settings*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------
|
|
||||||
* Mouse or touchpad on PC (using SDL)
|
|
||||||
*-------------------------------------*/
|
|
||||||
/*DEPRECATED: Use the SDL driver instead. */
|
|
||||||
#ifndef USE_MOUSE
|
|
||||||
# define USE_MOUSE 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_MOUSE
|
|
||||||
/*No settings*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*-------------------------------------------
|
|
||||||
* Mousewheel as encoder on PC (using SDL)
|
|
||||||
*------------------------------------------*/
|
|
||||||
/*DEPRECATED: Use the SDL driver instead. */
|
|
||||||
#ifndef USE_MOUSEWHEEL
|
|
||||||
# define USE_MOUSEWHEEL 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_MOUSEWHEEL
|
|
||||||
/*No settings*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
|
||||||
* Touchscreen, mouse/touchpad or keyboard as libinput interface (for Linux based systems)
|
|
||||||
*------------------------------------------------*/
|
|
||||||
#ifndef USE_LIBINPUT
|
|
||||||
# define USE_LIBINPUT 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef USE_BSD_LIBINPUT
|
|
||||||
# define USE_BSD_LIBINPUT 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_LIBINPUT || USE_BSD_LIBINPUT
|
|
||||||
/*If only a single device of the same type is connected, you can also auto detect it, e.g.:
|
|
||||||
*#define LIBINPUT_NAME libinput_find_dev(LIBINPUT_CAPABILITY_TOUCH, false)*/
|
|
||||||
# define LIBINPUT_NAME "/dev/input/event0" /*You can use the "evtest" Linux tool to get the list of devices and test them*/
|
|
||||||
|
|
||||||
#endif /*USE_LIBINPUT || USE_BSD_LIBINPUT*/
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
|
||||||
* Mouse or touchpad as evdev interface (for Linux based systems)
|
|
||||||
*------------------------------------------------*/
|
|
||||||
#ifndef USE_EVDEV
|
|
||||||
# define USE_EVDEV 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef USE_BSD_EVDEV
|
|
||||||
# define USE_BSD_EVDEV 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_EVDEV || USE_BSD_EVDEV
|
|
||||||
# define EVDEV_NAME "/dev/input/event0" /*You can use the "evtest" Linux tool to get the list of devices and test them*/
|
|
||||||
# define EVDEV_SWAP_AXES 0 /*Swap the x and y axes of the touchscreen*/
|
|
||||||
|
|
||||||
# define EVDEV_CALIBRATE 0 /*Scale and offset the touchscreen coordinates by using maximum and minimum values for each axis*/
|
|
||||||
|
|
||||||
# if EVDEV_CALIBRATE
|
|
||||||
# define EVDEV_HOR_MIN 0 /*to invert axis swap EVDEV_XXX_MIN by EVDEV_XXX_MAX*/
|
|
||||||
# define EVDEV_HOR_MAX 4096 /*"evtest" Linux tool can help to get the correct calibraion values>*/
|
|
||||||
# define EVDEV_VER_MIN 0
|
|
||||||
# define EVDEV_VER_MAX 4096
|
|
||||||
# endif /*EVDEV_CALIBRATE*/
|
|
||||||
#endif /*USE_EVDEV*/
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
|
||||||
* Full keyboard support for evdev and libinput interface
|
|
||||||
*------------------------------------------------*/
|
|
||||||
# ifndef USE_XKB
|
|
||||||
# define USE_XKB 0
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#if USE_LIBINPUT || USE_BSD_LIBINPUT || USE_EVDEV || USE_BSD_EVDEV
|
|
||||||
# if USE_XKB
|
|
||||||
# define XKB_KEY_MAP { .rules = NULL, \
|
|
||||||
.model = "pc101", \
|
|
||||||
.layout = "us", \
|
|
||||||
.variant = NULL, \
|
|
||||||
.options = NULL } /*"setxkbmap -query" can help find the right values for your keyboard*/
|
|
||||||
# endif /*USE_XKB*/
|
|
||||||
#endif /*USE_LIBINPUT || USE_BSD_LIBINPUT || USE_EVDEV || USE_BSD_EVDEV*/
|
|
||||||
|
|
||||||
/*-------------------------------
|
|
||||||
* Keyboard of a PC (using SDL)
|
|
||||||
*------------------------------*/
|
|
||||||
/*DEPRECATED: Use the SDL driver instead. */
|
|
||||||
#ifndef USE_KEYBOARD
|
|
||||||
# define USE_KEYBOARD 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if USE_KEYBOARD
|
|
||||||
/*No settings*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*LV_DRV_CONF_H*/
|
|
||||||
|
|
||||||
#endif /*End of "Content enable"*/
|
|
169
src/main.c
169
src/main.c
@ -7,93 +7,118 @@
|
|||||||
#ifndef MAIN_MESSAGE
|
#ifndef MAIN_MESSAGE
|
||||||
#define MAIN_MESSAGE "Hello from main!"
|
#define MAIN_MESSAGE "Hello from main!"
|
||||||
#endif
|
#endif
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
// Functie voor de scherminitialisatie
|
#include <SDL.h>
|
||||||
void lvgl_init(SDL_Window **window, SDL_Renderer **renderer, int width, int height) {
|
|
||||||
// SDL2 initialisatie
|
// Define MAX and MIN macros
|
||||||
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
|
#define MAX(X, Y) (((X) > (Y)) ? (X) : (Y))
|
||||||
printf("SDL init failed: %s\n", SDL_GetError());
|
#define MIN(X, Y) (((X) < (Y)) ? (X) : (Y))
|
||||||
exit(1);
|
|
||||||
}
|
// Define screen dimensions
|
||||||
*window = SDL_CreateWindow("LVGL with SDL2", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, SDL_WINDOW_OPENGL);
|
#define SCREEN_WIDTH 800
|
||||||
if (*window == NULL) {
|
#define SCREEN_HEIGHT 600
|
||||||
printf("Failed to create window: %s\n", SDL_GetError());
|
|
||||||
exit(1);
|
int main(int argc, char* argv[])
|
||||||
}
|
{
|
||||||
*renderer = SDL_CreateRenderer(*window, -1, SDL_RENDERER_ACCELERATED);
|
// Unused argc, argv
|
||||||
if (*renderer == NULL) {
|
(void) argc;
|
||||||
printf("Failed to create renderer: %s\n", SDL_GetError());
|
(void) argv;
|
||||||
exit(1);
|
|
||||||
|
// Initialize SDL
|
||||||
|
if(SDL_Init(SDL_INIT_VIDEO) < 0)
|
||||||
|
{
|
||||||
|
printf("SDL could not be initialized!\n"
|
||||||
|
"SDL_Error: %s\n", SDL_GetError());
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialisatie LVGL
|
#if defined linux && SDL_VERSION_ATLEAST(2, 0, 8)
|
||||||
lv_init();
|
// Disable compositor bypass
|
||||||
|
if(!SDL_SetHint(SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, "0"))
|
||||||
|
{
|
||||||
|
printf("SDL can not disable compositor bypass!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Koppelen van SDL2 als de display buffer
|
// Create window
|
||||||
lv_disp_draw_buf_t draw_buf;
|
SDL_Window *window = SDL_CreateWindow("Basic C SDL project",
|
||||||
static lv_color_t buf1[LV_HOR_RES_MAX * 10];
|
SDL_WINDOWPOS_UNDEFINED,
|
||||||
lv_disp_draw_buf_init(&draw_buf, buf1, NULL, LV_HOR_RES_MAX * 10);
|
SDL_WINDOWPOS_UNDEFINED,
|
||||||
|
SCREEN_WIDTH, SCREEN_HEIGHT,
|
||||||
lv_disp_drv_t disp_drv;
|
SDL_WINDOW_SHOWN);
|
||||||
lv_disp_drv_init(&disp_drv);
|
if(!window)
|
||||||
disp_drv.draw_buf = &draw_buf;
|
{
|
||||||
disp_drv.flush_cb = sdl_flush;
|
printf("Window could not be created!\n"
|
||||||
disp_drv.hor_res = width;
|
"SDL_Error: %s\n", SDL_GetError());
|
||||||
disp_drv.ver_res = height;
|
}
|
||||||
lv_disp_drv_register(&disp_drv);
|
else
|
||||||
}
|
{
|
||||||
|
// Create renderer
|
||||||
// Functie voor het tekenen naar het SDL-scherm
|
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
|
||||||
void sdl_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p) {
|
if(!renderer)
|
||||||
SDL_Renderer *renderer = (SDL_Renderer*) disp->user_data;
|
{
|
||||||
|
printf("Renderer could not be created!\n"
|
||||||
// Zet het gebied waar we gaan tekenen
|
"SDL_Error: %s\n", SDL_GetError());
|
||||||
SDL_Rect rect = {area->x1, area->y1, area->x2 - area->x1 + 1, area->y2 - area->y1 + 1};
|
|
||||||
for (int y = 0; y <= rect.h; y++) {
|
|
||||||
for (int x = 0; x <= rect.w; x++) {
|
|
||||||
lv_color_t color = color_p[(y * rect.w) + x];
|
|
||||||
SDL_SetRenderDrawColor(renderer, color.ch.red, color.ch.green, color.ch.blue, 255);
|
|
||||||
SDL_RenderDrawPoint(renderer, rect.x + x, rect.y + y);
|
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
SDL_RenderPresent(renderer);
|
{
|
||||||
|
// Declare rect of square
|
||||||
|
SDL_Rect squareRect;
|
||||||
|
|
||||||
lv_disp_flush_ready(disp);
|
// Square dimensions: Half of the min(SCREEN_WIDTH, SCREEN_HEIGHT)
|
||||||
}
|
squareRect.w = MIN(SCREEN_WIDTH, SCREEN_HEIGHT) / 2;
|
||||||
|
squareRect.h = MIN(SCREEN_WIDTH, SCREEN_HEIGHT) / 2;
|
||||||
|
|
||||||
// Hoofdfunctie
|
// Square position: In the middle of the screen
|
||||||
int main(void) {
|
squareRect.x = SCREEN_WIDTH / 2 - squareRect.w / 2;
|
||||||
SDL_Window *window;
|
squareRect.y = SCREEN_HEIGHT / 2 - squareRect.h / 2;
|
||||||
SDL_Renderer *renderer;
|
|
||||||
int width = 800;
|
|
||||||
int height = 480;
|
|
||||||
|
|
||||||
lvgl_init(&window, &renderer, width, height);
|
|
||||||
|
|
||||||
// Maak een eenvoudige knop aan
|
// Event loop exit flag
|
||||||
lv_obj_t *btn = lv_btn_create(lv_scr_act(), NULL);
|
bool quit = false;
|
||||||
lv_obj_align(btn, NULL, LV_ALIGN_CENTER, 0, 0);
|
|
||||||
lv_obj_t *label = lv_label_create(btn, NULL);
|
|
||||||
lv_label_set_text(label, "Klik hier!");
|
|
||||||
|
|
||||||
// Event loop
|
// Event loop
|
||||||
SDL_Event e;
|
while(!quit)
|
||||||
int quit = 0;
|
{
|
||||||
while (!quit) {
|
SDL_Event e;
|
||||||
while (SDL_PollEvent(&e)) {
|
|
||||||
if (e.type == SDL_QUIT) {
|
// Wait indefinitely for the next available event
|
||||||
quit = 1;
|
SDL_WaitEvent(&e);
|
||||||
|
|
||||||
|
// User requests quit
|
||||||
|
if(e.type == SDL_QUIT)
|
||||||
|
{
|
||||||
|
quit = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize renderer color white for the background
|
||||||
|
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
|
||||||
|
|
||||||
|
// Clear screen
|
||||||
|
SDL_RenderClear(renderer);
|
||||||
|
|
||||||
|
// Set renderer color red to draw the square
|
||||||
|
SDL_SetRenderDrawColor(renderer, 0xFF, 0x00, 0x00, 0xFF);
|
||||||
|
|
||||||
|
// Draw filled square
|
||||||
|
SDL_RenderFillRect(renderer, &squareRect);
|
||||||
|
|
||||||
|
// Update screen
|
||||||
|
SDL_RenderPresent(renderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Destroy renderer
|
||||||
|
SDL_DestroyRenderer(renderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// LVGL taakverwerking
|
// Destroy window
|
||||||
lv_task_handler();
|
SDL_DestroyWindow(window);
|
||||||
SDL_Delay(5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Opruimen en afsluiten
|
// Quit SDL
|
||||||
SDL_DestroyRenderer(renderer);
|
|
||||||
SDL_DestroyWindow(window);
|
|
||||||
SDL_Quit();
|
SDL_Quit();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user