diff options
Diffstat (limited to 'quantum/painter/qp_internal_driver.h')
| -rw-r--r-- | quantum/painter/qp_internal_driver.h | 29 | 
1 files changed, 17 insertions, 12 deletions
| diff --git a/quantum/painter/qp_internal_driver.h b/quantum/painter/qp_internal_driver.h index 82a0178a73..69da966f8c 100644 --- a/quantum/painter/qp_internal_driver.h +++ b/quantum/painter/qp_internal_driver.h @@ -1,4 +1,4 @@ -// Copyright 2021 Nick Brassel (@tzarc) +// Copyright 2021-2023 Nick Brassel (@tzarc)  // SPDX-License-Identifier: GPL-2.0-or-later  #pragma once @@ -19,7 +19,7 @@ typedef bool (*painter_driver_append_pixels)(painter_device_t device, uint8_t *t  typedef bool (*painter_driver_append_pixdata)(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte);  // Driver vtable definition -struct painter_driver_vtable_t { +typedef struct painter_driver_vtable_t {      painter_driver_init_func            init;      painter_driver_power_func           power;      painter_driver_clear_func           clear; @@ -29,7 +29,7 @@ struct painter_driver_vtable_t {      painter_driver_convert_palette_func palette_convert;      painter_driver_append_pixels        append_pixels;      painter_driver_append_pixdata       append_pixdata; -}; +} painter_driver_vtable_t;  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  // Comms callbacks @@ -39,28 +39,28 @@ typedef bool (*painter_driver_comms_start_func)(painter_device_t device);  typedef void (*painter_driver_comms_stop_func)(painter_device_t device);  typedef uint32_t (*painter_driver_comms_send_func)(painter_device_t device, const void *data, uint32_t byte_count); -struct painter_comms_vtable_t { +typedef struct painter_comms_vtable_t {      painter_driver_comms_init_func  comms_init;      painter_driver_comms_start_func comms_start;      painter_driver_comms_stop_func  comms_stop;      painter_driver_comms_send_func  comms_send; -}; +} painter_comms_vtable_t;  typedef void (*painter_driver_comms_send_command_func)(painter_device_t device, uint8_t cmd);  typedef void (*painter_driver_comms_bulk_command_sequence)(painter_device_t device, const uint8_t *sequence, size_t sequence_len); -struct painter_comms_with_command_vtable_t { -    struct painter_comms_vtable_t              base; // must be first, so this object can be cast from the painter_comms_vtable_t* type +typedef struct painter_comms_with_command_vtable_t { +    painter_comms_vtable_t                     base; // must be first, so this object can be cast from the painter_comms_vtable_t* type      painter_driver_comms_send_command_func     send_command;      painter_driver_comms_bulk_command_sequence bulk_command_sequence; -}; +} painter_comms_with_command_vtable_t;  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  // Driver base definition -struct painter_driver_t { -    const struct painter_driver_vtable_t *driver_vtable; -    const struct painter_comms_vtable_t * comms_vtable; +typedef struct painter_driver_t { +    const painter_driver_vtable_t *driver_vtable; +    const painter_comms_vtable_t * comms_vtable;      // Flag signifying if validation was successful      bool validate_ok; @@ -81,4 +81,9 @@ struct painter_driver_t {      // Comms config pointer -- needs to point to an appropriate comms config if the comms driver requires it.      void *comms_config; -}; +} painter_driver_t; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Device internals + +bool qp_internal_register_device(painter_device_t driver); | 
