• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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