LCOV - code coverage report
Current view: top level - zephyr/drivers/misc/ft8xx - ft8xx_copro.h Hit Total Coverage
Test: new.info Lines: 23 23 100.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2020 Hubert Miś
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief FT8XX coprocessor functions
      10             :  */
      11             : 
      12             : #ifndef ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_COPRO_H_
      13             : #define ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_COPRO_H_
      14             : 
      15             : #include <stdint.h>
      16             : 
      17             : #ifdef __cplusplus
      18             : extern "C" {
      19             : #endif
      20             : 
      21             : /**
      22             :  * @brief FT8xx co-processor engine functions
      23             :  * @defgroup ft8xx_copro FT8xx co-processor
      24             :  * @ingroup ft8xx_interface
      25             :  * @{
      26             :  */
      27             : 
      28             : /** Co-processor widget is drawn in 3D effect */
      29           1 : #define FT8XX_OPT_3D        0
      30             : /** Co-processor option to decode the JPEG image to RGB565 format */
      31           1 : #define FT8XX_OPT_RGB565    0
      32             : /** Co-processor option to decode the JPEG image to L8 format, i.e., monochrome */
      33           1 : #define FT8XX_OPT_MONO      1
      34             : /** No display list commands generated for bitmap decoded from JPEG image */
      35           1 : #define FT8XX_OPT_NODL      2
      36             : /** Co-processor widget is drawn without 3D effect */
      37           1 : #define FT8XX_OPT_FLAT      256
      38             : /** The number is treated as 32 bit signed integer */
      39           1 : #define FT8XX_OPT_SIGNED    256
      40             : /** Co-processor widget centers horizontally */
      41           1 : #define FT8XX_OPT_CENTERX   512
      42             : /** Co-processor widget centers vertically */
      43           1 : #define FT8XX_OPT_CENTERY   1024
      44             : /** Co-processor widget centers horizontally and vertically */
      45           1 : #define FT8XX_OPT_CENTER    1536
      46             : /** The label on the Coprocessor widget is right justified */
      47           1 : #define FT8XX_OPT_RIGHTX    2048
      48             : /** Co-processor widget has no background drawn */
      49           1 : #define FT8XX_OPT_NOBACK    4096
      50             : /** Co-processor clock widget is drawn without hour ticks.
      51             :  *  Gauge widget is drawn without major and minor ticks.
      52             :  */
      53           1 : #define FT8XX_OPT_NOTICKS   8192
      54             : /** Co-processor clock widget is drawn without hour and minutes hands,
      55             :  * only seconds hand is drawn
      56             :  */
      57           1 : #define FT8XX_OPT_NOHM      16384
      58             : /** The Co-processor gauge has no pointer */
      59           1 : #define FT8XX_OPT_NOPOINTER 16384
      60             : /** Co-processor clock widget is drawn without seconds hand */
      61           1 : #define FT8XX_OPT_NOSECS    32768
      62             : /** Co-processor clock widget is drawn without hour, minutes and seconds hands */
      63           1 : #define FT8XX_OPT_NOHANDS   49152
      64             : 
      65             : /**
      66             :  * @brief Execute a display list command by co-processor engine
      67             :  *
      68             :  * @param cmd Display list command to execute
      69             :  */
      70           1 : void ft8xx_copro_cmd(uint32_t cmd);
      71             : 
      72             : /**
      73             :  * @brief Start a new display list
      74             :  */
      75           1 : void ft8xx_copro_cmd_dlstart(void);
      76             : 
      77             : /**
      78             :  * @brief Swap the current display list
      79             :  */
      80           1 : void ft8xx_copro_cmd_swap(void);
      81             : 
      82             : /**
      83             :  * @brief Draw text
      84             :  *
      85             :  * By default (@p x, @p y) is the top-left pixel of the text and the value of
      86             :  * @p options is zero. @ref FT8XX_OPT_CENTERX centers the text horizontally,
      87             :  * @ref FT8XX_OPT_CENTERY centers it vertically. @ref FT8XX_OPT_CENTER centers
      88             :  * the text in both directions. @ref FT8XX_OPT_RIGHTX right-justifies the text,
      89             :  * so that the @p x is the rightmost pixel.
      90             :  *
      91             :  * @param x x-coordinate of text base, in pixels
      92             :  * @param y y-coordinate of text base, in pixels
      93             :  * @param font Font to use for text, 0-31. 16-31 are ROM fonts
      94             :  * @param options Options to apply
      95             :  * @param s Character string to display, terminated with a null character
      96             :  */
      97           1 : void ft8xx_copro_cmd_text(int16_t x,
      98             :                            int16_t y,
      99             :                            int16_t font,
     100             :                            uint16_t options,
     101             :                            const char *s);
     102             : 
     103             : /**
     104             :  * @brief Draw a decimal number
     105             :  *
     106             :  * By default (@p x, @p y) is the top-left pixel of the text.
     107             :  * @ref FT8XX_OPT_CENTERX centers the text horizontally, @ref FT8XX_OPT_CENTERY
     108             :  * centers it vertically. @ref FT8XX_OPT_CENTER centers the text in both
     109             :  * directions. @ref FT8XX_OPT_RIGHTX right-justifies the text, so that the @p x
     110             :  * is the rightmost pixel. By default the number is displayed with no leading
     111             :  * zeroes, but if a width 1-9 is specified in the @p options, then the number
     112             :  * is padded if necessary with leading zeroes so that it has the given width.
     113             :  * If @ref FT8XX_OPT_SIGNED is given, the number is treated as signed, and
     114             :  * prefixed by a minus sign if negative.
     115             :  *
     116             :  * @param x x-coordinate of text base, in pixels
     117             :  * @param y y-coordinate of text base, in pixels
     118             :  * @param font Font to use for text, 0-31. 16-31 are ROM fonts
     119             :  * @param options Options to apply
     120             :  * @param n The number to display.
     121             :  */
     122           1 : void ft8xx_copro_cmd_number(int16_t x,
     123             :                              int16_t y,
     124             :                              int16_t font,
     125             :                              uint16_t options,
     126             :                              int32_t n);
     127             : 
     128             : /**
     129             :  * @brief Execute the touch screen calibration routine
     130             :  *
     131             :  * The calibration procedure collects three touches from the touch screen, then
     132             :  * computes and loads an appropriate matrix into REG_TOUCH_TRANSFORM_A-F. To
     133             :  * use it, create a display list and then use CMD_CALIBRATE. The co-processor
     134             :  * engine overlays the touch targets on the current display list, gathers the
     135             :  * calibration input and updates REG_TOUCH_TRANSFORM_A-F.
     136             :  *
     137             :  * @param result Calibration result, written with 0 on failure of calibration
     138             :  */
     139           1 : void ft8xx_copro_cmd_calibrate(uint32_t *result);
     140             : 
     141             : /**
     142             :  * @}
     143             :  */
     144             : 
     145             : #ifdef __cplusplus
     146             : }
     147             : #endif
     148             : 
     149             : #endif /* ZEPHYR_DRIVERS_MISC_FT8XX_FT8XX_COPRO_H_ */

Generated by: LCOV version 1.14