⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display.c

📁 智原mp3 SDK 开发包 与巨力 有mp3 wma ogg decoder
💻 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 + -