bedside-clock/components/display/display_driver.h

50 lines
896 B
C

/*
* SPDX-License-Identifier: AGPL-3.0-only
* Copyright (c) Camden Dixie O'Brien
*/
#ifndef DISPLAY_DRIVER_H
#define DISPLAY_DRIVER_H
#include <stdbool.h>
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