#ifndef MODULE_LED_H_ #define MODULE_LED_H_ #define LED1A 0 #define LED1B 1 #define LED2 2 #define LED3 3 #define LED_OFF 0 #define LED_ON 1 #define LED_BLINK_ON 2 #define LED_BLINK_OFF 3 #define LED_DEFAULT 10 #define LED_STOP_THREAD 100 #define ARM_LED_TIMEOUT 3 // Don't blink for actions which are < ARM_LED_TIMEOUT seconds ago // QBOX led structures typedef struct { uint16_t H; // range 0-359 uint8_t S; // range 0-99 uint8_t V; // range 0-99 } qboxhd_led_color_struct; typedef struct { uint8_t red; // first 5 bit used (&0x1F) uint8_t green; // first 5 bit used (&0x1F) uint8_t blue; // first 5 bit used (&0x1F) } qboxhdmini_led_color_struct; #define QBOXHD_LED_DEVICE "/dev/sw0" #define QBOXHD_SET_LED_ALL_PANEL_COLOR _IO(0xBC, 13) // payload = 3byte [H][S][V] #define QBOXHD_LED_COLOR_RED 359 // only H value, S and V values are always == 99 #define QBOXHD_LED_COLOR_GREEN 120 #define QBOXHD_LED_COLOR_BLUE 230 #define QBOXHD_LED_COLOR_YELLOW 55 #define QBOXHD_LED_COLOR_MAGENTA 290 #define QBOXHDMINI_LED_DEVICE "/dev/lpc_0" #define QBOXHDMINI_IOSET_RGB _IOWR('L', 6, qboxhdmini_led_color_struct) #define QBOXHDMINI_LED_COLOR_RED 0x1F0000 // 3 bytes RGB, 5 bit used for each color #define QBOXHDMINI_LED_COLOR_GREEN 0x001F00 #define QBOXHDMINI_LED_COLOR_BLUE 0x00001F #define QBOXHDMINI_LED_COLOR_YELLOW 0x1F1F00 #define QBOXHDMINI_LED_COLOR_MAGENTA 0x1F001F #define QBOXHD_LED_COLOR_OFF -1 // all colors H, S, V and/or R, G, B == 0, 0, 0 #define QBOXHD_LED_BLINK_FAST 100 // blink milliseconds #define QBOXHD_LED_BLINK_MEDIUM 200 #define QBOXHD_LED_BLINK_SLOW 400 #ifdef LEDSUPPORT extern void led_init(void); extern void led_stop(void); extern void led_status_stopping(void); extern void led_status_cw_not_found(ECM_REQUEST *er); extern void led_status_default(void); extern void led_status_starting(void); extern void led_status_card_activation_error(void); extern void led_status_found_cardsystem(void); extern void led_status_unsupported_card_system(void); extern void led_status_emm_ok(void); extern void led_status_card_detected(void); extern void led_status_card_ejected(void); #else static inline void led_init(void) { } static inline void led_stop(void) { } static inline void led_status_stopping(void) { } static inline void led_status_cw_not_found(ECM_REQUEST *UNUSED(er)) { } static inline void led_status_default(void) { } static inline void led_status_starting(void) { } static inline void led_status_card_activation_error(void) { } static inline void led_status_found_cardsystem(void) { } static inline void led_status_unsupported_card_system(void) { } static inline void led_status_emm_ok(void) { } static inline void led_status_card_detected(void) { } static inline void led_status_card_ejected(void) { } #endif #endif