📄 fipuser_momitsu.c
字号:
/* * Specific declarations for MOMITSU player * * Copyright(c) 2002 Sigma Designs, Inc. * Author: Markus Brenner * December 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] = { {0, 0}, {0, 1}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {6, 1}, {6, 2}, {6, 3}, {6, 4}, {6, 5}, {6, 6}, {6, 7}, {8, 0}, {8, 1}, {8, 2}, {8, 3}, {8, 4}, {8, 5}, {8, 6}, {8, 7}, {9, 0}, {9, 1}, {9, 2}, {9, 3}, {9, 4}, {9, 5}};//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) ? 8 - position : 6 - position; FIP_ASSERT(byte1 < MAX_FIP_RAM); //INFO: byte1 (= position 6) is not like other (segment a starts with bit 2 instead of bit 1, means last segment is then bit 0 of next byte) current_contents0 = fipram[byte1]; current_contents1 = fipram[1]; //clear fipram[byte1] &= (byte1 == 0) ? fipcharactermask << 1: fipcharactermask; if(byte1 == 0) fipram[1] &= ~fipcharactermask; //set new bits fipram[byte1] |= (byte1 == 0) ? fipcharacters[i] << 1 : fipcharacters[i]; if(byte1 == 0) fipram[1] |= (fipcharacters[i] & 0x80) >> 7; //display if necessary if (current_contents0 != fipram[byte1]) FIP_USER_DISPLAY(byte1, fipram[byte1]); if(byte1 == 0) { if (current_contents1 != fipram[1]) FIP_USER_DISPLAY(1, fipram[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, "FLASH", FIP_RIGHT); break; case FIP_TEXT_LOADING: fip_write_text(0, "LOAD", FIP_RIGHT); break; case FIP_TEXT_DONE: fip_write_text(0, "DONE", FIP_RIGHT); break; case FIP_TEXT_ERROR: fip_write_text(0, "Error", FIP_RIGHT); break; case FIP_TEXT_NO_DISC: fip_write_text(0, "NO CD", FIP_RIGHT); break; case FIP_TEXT_ISO_DISC: fip_write_text(0, "ISOCD", FIP_RIGHT); break; case FIP_TEXT_PAL: fip_write_text(0, "PAL", FIP_RIGHT); break; case FIP_TEXT_NTSC: fip_write_text(0, "NtSC", FIP_RIGHT); break; case FIP_TEXT_DIGITAL: fip_write_text(0, "DIG", FIP_RIGHT); break; case FIP_TEXT_JPEG: fip_write_text(0, "JPEG", FIP_RIGHT); 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); fip_display_symbol(TWIRL_1_FIP_ON + ((twirlstate + 4) % 13), 0); fip_display_symbol(TWIRL_1_FIP_ON + ((twirlstate + 9) % 13), 0); if(on) { twirlstate++; if(twirlstate >= 13) twirlstate = 0; fip_display_symbol(TWIRL_1_FIP_ON + twirlstate, 1); fip_display_symbol(TWIRL_1_FIP_ON + ((twirlstate + 4) % 13), 1); fip_display_symbol(TWIRL_1_FIP_ON + ((twirlstate + 9) % 13), 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(3, (hour==L_OFF) ? ' ' : hour%10 + '0'); //minute fip_display_character(4, (minute==L_OFF) ? ' ' : minute/10 + '0'); fip_display_character(5, (minute==L_OFF) ? ' ' : minute%10 + '0'); //second fip_display_character(6, (second==L_OFF) ? ' ' : second/10 + '0'); fip_display_character(7, (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 if(title != L_OFF) DPRINTF("WARNING: title display not available/supported on this player\n"); //chapter fip_display_character(1, (chapter==L_OFF) ? ' ' : chapter/10 + '0'); fip_display_character(2, (chapter==L_OFF) ? ' ' : chapter%10 + '0');}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -