/* * SPDX-License-Identifier: AGPL-3.0-only * Copyright (c) Camden Dixie O'Brien */ #ifndef DISPLAY_DRIVER_H #define DISPLAY_DRIVER_H #include typedef enum { DISPLAY_SEGMENT_A, DISPLAY_SEGMENT_B, DISPLAY_SEGMENT_C, DISPLAY_SEGMENT_D, DISPLAY_SEGMENT_E, DISPLAY_SEGMENT_F, DISPLAY_SEGMENT_G, DISPLAY_SEGMENT_DP, DISPLAY_SEGMENT_COUNT, } DisplaySegment; typedef enum { DISPLAY_DIGIT_1, DISPLAY_DIGIT_2, DISPLAY_DIGIT_3, DISPLAY_DIGIT_4, DISPLAY_DIGIT_COUNT, } DisplayDigit; typedef bool DisplayDigitState[DISPLAY_SEGMENT_COUNT]; typedef DisplayDigitState DisplayState[DISPLAY_DIGIT_COUNT]; /** * The current state of the display. */ extern DisplayState display_state; /** * Initialize the display driver. */ void display_driver_init(); /** * Driver update task; should be ran regularly with a short period. */ void display_driver_task(void *arg); #endif