📄 display.c
字号:
/*******************
* display.c
*******************/
#include <string.h>
#include "api.h"
#include "lcd.h"
#include "common.h"
#include "display.h"
void gfx_bg(void)
{
UINT8 i;
gfx_set_bg(COLOR_WHITE);
lcd_set_rw_area(SCREEN_START_X,SCREEN_START_Y,SCREEN_WIDTH,SCREEN_HEIGHT);
for(i = 0; i < SCREEN_HEIGHT; i++)
lcd_put_data((UINT16)bg_pixel, sizeof(bg_pixel));
}
void gfx_bg_rectangle(UINT8 x, UINT8 y, UINT8 w, UINT8 h)
{
lcd_set_rw_area(x, y, w, h);
while(h--)
lcd_put_data((UINT16)bg_pixel, w << 1);
}
void gfx_set_bg(UINT16 color)
{
UINT8 i;
static UINT16 curr_color;
if(curr_color != color)
curr_color = color;
/* Init background pixel */
for(i = 0; i < SCREEN_WIDTH; i++)
bg_pixel[i] = color;
}
void gfx_filename(UINT8 x, UINT8 y)
{
if(*(UINT16 xdata *)curr_finfo.pu8LongFileName == 0) {
get_short_name(&curr_finfo, _buf);
lcd_puts(x, y, _buf, FONTSIZE_HYPER);
}
else {
get_long_name(&curr_finfo, _buf);
lcd_puts_unicode(x, y, (UINT16 *)_buf, FONTSIZE_HYPER);
}
}
#if 0
void vScollDataUpdate(INT8U *buf)
{
if(!bDisplayLongFileName)
u8ScrollLen = strlen(u8ScrollData);
else
{
INT8U i;
u8ScrollLen = u16GetUniStringLength(buf);
for(i=0; i<u8ScrollLen; i++)
u8ScrollData[i] = buf[i];
u8ScrollData[i] = 0x20; u8ScrollData[i+1] = 0x00;
u8ScrollLen += 2;
}
u8ScrollPos = 0;
bNeedScroll = TRUE;
vLcd_ScollDataUpdate();
}
//--------------------------------------------------------------------------
void vLcd_SongName()
{
if(FALSE == api_bGetCurrMusicInfo(&cMusic))
return;
bDisplayLongFileName = FALSE;
if(cMusic.pu8Title[0] != 0 || cMusic.pu8Artist[0] != 0 || cMusic.pu8Album[0] != 0)
{
my_sprintf(u8ScrollData, "%s %s %s ", cMusic.pu8Title, cMusic.pu8Artist, cMusic.pu8Album);
}
else
{
if(cMusic.pu8LongFileName[0] == 0 && cMusic.pu8LongFileName[1] == 0) {
my_sprintf(u8ScrollData, "%s.%s", cMusic.pu8FileName, cMusic.pu8FileExt);
}
else
bDisplayLongFileName = TRUE;
}
vScollDataUpdate(cMusic.pu8LongFileName);
}
//--------------------------------------------------------------------------
void vLcd_ScollDataUpdate(void)
{
INT8U i,j;
INT16U u16unicode;
if(!bNeedScroll)
return;
for(i=0, j=u8ScrollPos; i<SCREEN_WIDTH; i++)
{
if(i >= u8ScrollLen)
break;
u8LCDData[i] = u8ScrollData[j];
if(++j >= u8ScrollLen)
j = 0;
}
u8LCDData[i] = u8LCDData[i+1] = 0;
//vLcdSetPosition(LCD_ADDR_4LINE_START);
if(bDisplayLongFileName)
{
/*
for(j=0; j<SCREEN_WIDTH; )
{
u16unicode = u8LCDData[j++];
u16unicode += (u8LCDData[j++]<<8);
if(u16unicode == 0)
break;
if(api_bGetUniFont16x16BMP(u16unicode))
vLcdPut16x16Char();
}
*/
lcd_puts(0, 95, u8LCDData, FONTSIZE_HYPER);
//j = u8ScrollLen;
}
else
{
/*
vLcdOutString(u8LCDData, 16);
j = 0;
for(i=0; i<u8ScrollLen; i++)
{
if(u8ScrollData[i] >= 0x80)
i++;
j+=2;
}
*/
lcd_puts_unicode(x, y, (UINT16 *)_buf, FONTSIZE_HYPER);
}
if(SCREEN_WIDTH >= j)
bNeedScroll = FALSE;
u8ScrollPos++;
if(bDisplayLongFileName || (u8LCDData[0] >= 0x80))
u8ScrollPos++;
if(u8ScrollPos >= u8ScrollLen)
u8ScrollPos = 0;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -