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

📄 fipuser_nextbase.c

📁 这是一个SIGMA方案的PMP播放器的UCLINUX程序,可播放DVD,VCD,CD MP3...有很好的参考价值.
💻 C
字号:
/* * Specific declarations for NEXTBASE player * * Copyright(c) 2002 Sigma Designs, Inc. * Author: Markus Brenner * September 2002 */#include "fipuser.h"#include "fipuser_common.h"//this array is used to display individual symbols//the format is [byte position][bit to turn on] - both zero basedconst char fipsymbols[NUM_SYMBOLS][2] = { 	{1, 6}, {0, 6}, {0, 5}, {0, 4}, {1, 7}, 	{0, 7}, {1, 0}, {1, 1}, {1, 2}, {1, 3},	{1, 4}, {1, 5}, {2, 7}, {0, 3}, {3, 1},	{3, 0},	{3, 3}, {3, 2}, {3, 5}, {3, 4},	{3, 7}, {5, 7}, {7, 7}, {7, 6}, {9, 7},	{11, 7},{9, 6}, {11, 6},{3, 6}, {5, 6}};//character mapping#define LCD_SEG_7#include "fipcharacter.h"//return 1 if succesfull, otherwise 0int fip_display_character(const int position, const char character){	int i, byte1;	unsigned char current_contents0, current_contents1;		if(position < 1 || position > NUM_DIGITS) {		DPRINTF("WARNING: digit #%d not available/supported on this player\n", position);		return 0;	}	for(i = 0; i < NUM_CHARACTERS; i++)		if(character == fipcharactersmap[i]) {			byte1 = (position % 2) ? position + 1 : position + 3;//			DPRINTF(__FUNCTION__": position=%d byte1=%d\n", position, byte1);			FIP_ASSERT(byte1 < MAX_FIP_RAM);			current_contents0 = fipram[byte1];			 			//clear				fipram[byte1] &= (position % 2) ? 0x80: 0xC0;			if(position % 2 == 0) 			{				current_contents1 = fipram[byte1 - 1];				fipram[byte1 - 1] &= 0x7F;			}						//set new bits			fipram[byte1] |= (position % 2) ? fipcharacters[i] >> 1 : fipcharacters[i] >> 2;			if(position % 2 == 0) fipram[byte1 - 1] |= (fipcharacters[i] << 6) & 0x80;			//display only if changed			if (current_contents0 != fipram[byte1])							FIP_USER_DISPLAY(byte1, fipram[byte1]);			if(position % 2 == 0) 			{				if (current_contents1 != fipram[byte1 - 1])					FIP_USER_DISPLAY(byte1 - 1, fipram[byte1 - 1]);			}						return 1;		}	DPRINTF("WARNING: character '%c' not available/supported on this player\n", character);	return 0;}//show centered text (not every player has enough digits - so we have to finetune here)void fip_display_text(const int text) {	switch(text) {		case FIP_TEXT_FLASHING:	fip_write_text(0, "FLASHING", FIP_LEFT); break;		case FIP_TEXT_LOADING:	fip_write_text(0, "LOADING", FIP_LEFT); break;		case FIP_TEXT_DONE:		fip_write_text(0, "DONE", FIP_LEFT); break;		case FIP_TEXT_ERROR:	fip_write_text(0, "Error", FIP_LEFT); break;		case FIP_TEXT_NO_DISC:	fip_write_text(0, "NO DISC", FIP_LEFT); break;		case FIP_TEXT_ISO_DISC:	fip_write_text(0, "ISO DISC", FIP_LEFT); break;		case FIP_TEXT_PAL:		fip_write_text(0, "PAL", FIP_LEFT); break;		case FIP_TEXT_NTSC:		fip_write_text(0, "NtSC", FIP_LEFT); break;		case FIP_TEXT_DIGITAL:	fip_write_text(0, "DIGItAL", FIP_LEFT); break;		case FIP_TEXT_JPEG:		fip_write_text(0, "JPEG", FIP_LEFT); break;		default:				DPRINTF("WARNING: text #%d not available/supported on this player\n", text);	}}void fip_animate_twirl(const int on) {	//turn previous off    fip_display_symbol(TWIRL_1_FIP_ON + twirlstate, 0);	if(on) {		twirlstate++;		if(twirlstate >= 6) twirlstate = 0;		fip_display_symbol(TWIRL_1_FIP_ON + twirlstate, 1);	}}void fip_displayinfo(const int hour, const int minute, const int second, const int title, const int chapter) {	if(hour < L_OFF || minute < L_OFF || second < L_OFF || title < L_OFF || chapter < L_OFF ||	   hour > 9 || minute > 59 || second > 59 || title > 99 || chapter > 99) {		DPRINTF("ERROR: parameters passed to fip_displayinfo() not in valid range\n");		return;	}	//hour	fip_display_character(1, (hour==L_OFF) ? ' ' : hour%10 + '0');	//minute	fip_display_character(2, (minute==L_OFF) ? ' ' : minute/10 + '0');	fip_display_character(3, (minute==L_OFF) ? ' ' : minute%10 + '0');	//second	fip_display_character(4, (second==L_OFF) ? ' ' : second/10 + '0');	fip_display_character(5, (second==L_OFF) ? ' ' : second%10 + '0');	//show colons if needed	fip_display_symbol(COLON_HOUR_MIN_FIP_ON, (hour==L_OFF) ? 0 : 1);	fip_display_symbol(COLON_MIN_SEC_FIP_ON, (hour==L_OFF && minute==L_OFF) ? 0 : 1);	//title	fip_display_character(6, (title==L_OFF) ? ' ' : title/10 + '0');	fip_display_character(7, (title==L_OFF) ? ' ' : title%10 + '0');	//chapter	fip_display_character(8, (chapter==L_OFF) ? ' ' : chapter/10 + '0');	fip_display_character(9, (chapter==L_OFF) ? ' ' : chapter%10 + '0');}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -