| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /*
- * Copyright (c) 2026, sakumisu
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #ifndef USBD_DISPLAY_H
- #define USBD_DISPLAY_H
- #define USBD_DISPLAY_TYPE_RGB565 0
- #define USBD_DISPLAY_TYPE_RGB888 1
- #define USBD_DISPLAY_TYPE_YUV420 2
- #define USBD_DISPLAY_TYPE_JPG 3
- struct usbd_disp_frame_header {
- uint16_t crc16; //payload crc16
- uint8_t type; //raw rgb,yuv,jpg,other
- uint8_t cmd;
- uint16_t x; //32bit
- uint16_t y;
- uint16_t width; //32bit
- uint16_t height;
- uint32_t frame_id : 10;
- uint32_t payload_total : 22; //payload max 4MB
- } __PACKED;
- struct usbd_display_frame {
- uint8_t *frame_buf;
- uint32_t frame_bufsize;
- uint32_t frame_format;
- uint32_t frame_size;
- };
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Init display interface driver */
- struct usbd_interface *usbd_display_init_intf(struct usbd_interface *intf,
- const uint8_t out_ep,
- const uint8_t in_ep,
- struct usbd_display_frame *frame,
- uint32_t count);
- int usbd_display_dequeue(struct usbd_display_frame **frame, uint32_t timeout);
- int usbd_display_enqueue(struct usbd_display_frame *frame);
- #ifdef __cplusplus
- }
- #endif
- #endif /* USBD_DISPLAY_H */
|