/**1* @file lv_lmeter.h2*3*/45#ifndef LV_LMETER_H6#define LV_LMETER_H78#ifdef __cplusplus9extern "C" {10#endif1112/*********************13* INCLUDES14*********************/15#ifdef LV_CONF_INCLUDE_SIMPLE16#include "lv_conf.h"17#else18#include "../../lv_conf.h"19#endif2021#if USE_LV_LMETER != 02223#include "../lv_core/lv_obj.h"2425/*********************26* DEFINES27*********************/2829/**********************30* TYPEDEFS31**********************/32/*Data of line meter*/33typedef struct34{35/*No inherited ext.*/ /*Ext. of ancestor*/36/*New data for this type */37uint16_t scale_angle; /*Angle of the scale in deg. (0..360)*/38uint8_t line_cnt; /*Count of lines */39int16_t cur_value;40int16_t min_value;41int16_t max_value;42} lv_lmeter_ext_t;4344/**********************45* GLOBAL PROTOTYPES46**********************/4748/**49* Create a line meter objects50* @param par pointer to an object, it will be the parent of the new line meter51* @param copy pointer to a line meter object, if not NULL then the new object will be copied from it52* @return pointer to the created line meter53*/54lv_obj_t * lv_lmeter_create(lv_obj_t * par, const lv_obj_t * copy);5556/*=====================57* Setter functions58*====================*/5960/**61* Set a new value on the line meter62* @param lmeter pointer to a line meter object63* @param value new value64*/65void lv_lmeter_set_value(lv_obj_t *lmeter, int16_t value);6667/**68* Set minimum and the maximum values of a line meter69* @param lmeter pointer to he line meter object70* @param min minimum value71* @param max maximum value72*/73void lv_lmeter_set_range(lv_obj_t *lmeter, int16_t min, int16_t max);7475/**76* Set the scale settings of a line meter77* @param lmeter pointer to a line meter object78* @param angle angle of the scale (0..360)79* @param line_cnt number of lines80*/81void lv_lmeter_set_scale(lv_obj_t * lmeter, uint16_t angle, uint8_t line_cnt);8283/**84* Set the styles of a line meter85* @param lmeter pointer to a line meter object86* @param bg set the style of the line meter87*/88static inline void lv_lmeter_set_style(lv_obj_t *lmeter, lv_style_t *bg)89{90lv_obj_set_style(lmeter, bg);91}9293/*=====================94* Getter functions95*====================*/9697/**98* Get the value of a line meter99* @param lmeter pointer to a line meter object100* @return the value of the line meter101*/102int16_t lv_lmeter_get_value(const lv_obj_t *lmeter);103104/**105* Get the minimum value of a line meter106* @param lmeter pointer to a line meter object107* @return the minimum value of the line meter108*/109int16_t lv_lmeter_get_min_value(const lv_obj_t * lmeter);110111/**112* Get the maximum value of a line meter113* @param lmeter pointer to a line meter object114* @return the maximum value of the line meter115*/116int16_t lv_lmeter_get_max_value(const lv_obj_t * lmeter);117118/**119* Get the scale number of a line meter120* @param lmeter pointer to a line meter object121* @return number of the scale units122*/123uint8_t lv_lmeter_get_line_count(const lv_obj_t * lmeter);124125/**126* Get the scale angle of a line meter127* @param lmeter pointer to a line meter object128* @return angle of the scale129*/130uint16_t lv_lmeter_get_scale_angle(const lv_obj_t * lmeter);131132/**133* Get the style of a line meter134* @param lmeter pointer to a line meter object135* @return pointer to the line meter's style136*/137static inline lv_style_t * lv_lmeter_get_style(const lv_obj_t * lmeter)138{139return lv_obj_get_style(lmeter);140}141142/**********************143* MACROS144**********************/145146#endif /*USE_LV_LMETER*/147148#ifdef __cplusplus149} /* extern "C" */150#endif151152#endif /*LV_LMETER_H*/153154155