📄 osddrv.h
字号:
#ifndef _osddrvhead_
#define _osddrvhead_
/***** FOR OSD *****/
#define SRAM_LINE_BUFFER_SIZE ((unsigned int)130) /* size of 1 block corresponding to 1 line in OSD SRAM buffer */
#define SRAM_BUFFER_START ((unsigned int)0xF700)/* define start of the buffer for OSDRAM in SRAM segment 20 */
/* 2 Kbytes are reserved for OSDRAM buffer in SRAM (from 20 F700 to 20 FE9E) plus 0x20FEAE (see below) */
#define OSDRAM_START ((unsigned int)0x8000) /* Start address if 0x0000, but to force the linker to use
DPR2 and point to the OSDRAM, need to modify the 2 MSB
of OSDRAM_START */
/* NOTE */
#define OSDRAM_BUFFER1 ((unsigned int)0x8090) /* Start address of the first row buffer in OSDRAM 120 bytes length */
#define OSDRAM_BUFFER2 ((unsigned int)0x8108) /* Start address of the next row buffer in OSDRAM 120 bytes length */
#define OSDRAM_BUFFDRV1 ((unsigned int)0x0090) /* must change with OSDRAM_BUFFER1 */
#define OSDRAM_BUFFDRV2 ((unsigned int)0x0108) /* must change with OSDRAM_BUFFER2 */
#define BUFFDRV1HIGH ((unsigned char)0x00) /* must change with OSDRAM_BUFFER1 */
#define BUFFDRV1LOW ((unsigned char)0x90) /* must change with OSDRAM_BUFFER1 */
#define BUFFDRV2HIGH ((unsigned char)0x01) /* must change with OSDRAM_BUFFER2 */
#define BUFFDRV2LOW ((unsigned char)0x08) /* must change with OSDRAM_BUFFER2*/
/* here define the row parameter feman add*/
/* mode define */
#define EXT_PARALLE_MODE ((unsigned char)0x02)
#define PARALLE_MODE ((unsigned char)0x01)
#define SERIAL_MODE ((unsigned char)0x00)
/* row attributes */
#define FONT18 ((unsigned char)0x80)
#define FONT9 ((unsigned char)0x00)
#define UPPERHALF ((unsigned char)0x40)
#define FONT2Y ((unsigned char)0x10)
#define FONT2X ((unsigned char)0x08)
#define FLASHEN ((unsigned char)0x04)
#define ROUNDEN ((unsigned char)0x02)
#define FRINGEN ((unsigned char)0x01)
/* active range */
#define ACTIVEDIS ((unsigned char)0x0D)
#define CHNULL 0x00
struct BUFFER_START_ADR {
unsigned char mode : 2;
unsigned int next_buffer_address : 14;
};
struct SCREEN_HEADER {
unsigned int underline_color1;
unsigned int underline_color2;
unsigned int mouse_coding_data;
unsigned int mouse_y_pos;
unsigned int mouse_x_pos;
unsigned int reserved;
unsigned int basic_fore_palette[16];
unsigned int basic_back_palette[16];
unsigned int extend_fore_palette[16];
unsigned int extend_back_palette[16];
};
struct ROW_HEADER {
unsigned int event_line;
unsigned char char_number : 6 ;
unsigned int horiz_shift : 10 ;
unsigned char mode;
unsigned char row_attr;
unsigned char active;
};
struct ROW_STRUCT {
const struct ROW_HEADER * row_header;
const unsigned char * row_data;
const unsigned char start_num_char;
const unsigned char number;
};
extern unsigned char back_row_number;
extern unsigned char fore_row_number;
/* Here declare function */
void init_osd(void);
//void blank_screen(void);
void Clear_OSDRAM(void);
void osd_enabled(void);
void osd_disabled(void);
void fill_osdram_buffer(unsigned char , unsigned int);
//void transfer_screen_in_sram(const unsigned char *, unsigned char );
void fill_color_in_line(unsigned char , unsigned char , unsigned char ,unsigned char );
//void move_zoom_line(unsigned char ,unsigned char );
void fill_string_in_line(unsigned char , unsigned char , unsigned char * );
void fill_char_in_line(unsigned char , unsigned char , unsigned char ,unsigned char );
void reset_current_screen(void);
void set_current_screen(void);
void transfer_screan_header(const struct SCREEN_HEADER *);
void append_line_to_buffer(const struct ROW_STRUCT *);
void set_row_header(char ,struct ROW_HEADER * );
void get_row_header(char ,struct ROW_HEADER * );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -