1 // Copyright (C) 2022 Beken Corporation 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #pragma once 16 17 #include <common/bk_include.h> 18 #include <driver/media_types.h> 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 typedef enum 25 { 26 LCD_STATE_DISABLED, 27 LCD_STATE_ENABLED, 28 } lcd_state_t; 29 30 31 typedef struct 32 { 33 uint8_t debug : 1; 34 uint8_t rotate : 1; 35 uint8_t step_mode : 1; 36 uint8_t step_trigger : 1; 37 camera_type_t camera; 38 lcd_state_t state; 39 uint32_t param; 40 uint16_t src_pixel_x; 41 uint16_t src_pixel_y; 42 uint16_t lcd_pixel_x; 43 uint16_t lcd_pixel_y; 44 uint32_t pixel_size; 45 frame_buffer_t *jpeg_frame; 46 frame_buffer_t *decoder_frame; 47 frame_buffer_t *rotate_frame; 48 frame_buffer_t *display_frame; 49 frame_buffer_t *pingpong_frame; 50 } lcd_info_t; 51 52 void lcd_event_handle(uint32_t event, uint32_t param); 53 lcd_state_t get_lcd_state(void); 54 void set_lcd_state(lcd_state_t state); 55 void lcd_init(void); 56 void lcd_frame_complete_notify(frame_buffer_t *buffer); 57 58 void lcd_act_rotate_degree90(uint32_t param); 59 void lcd_act_rotate_complete(frame_buffer_t *frame); 60 61 62 #ifdef __cplusplus 63 } 64 #endif 65