📄 rip.c
字号:
vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_TOTAL,
RIP_LINE1_STARTX + 15, RIP_LINE3_STARTY + 70,
RIP_MENU_COL_BG, RIP_COL_BLACK);
vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_PROGRESS,
RIP_LINE1_STARTX + 70, RIP_LINE3_STARTY + 70,
RIP_MENU_COL_BG, RIP_COL_BLACK);
vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20,
RIP_LINE3_STARTY + 100, RIP_LINE3_STARTY + 124);
vRectangle(WB_RIP_MENU, 2, RIP_COL_BLUE, 1, RIP_COL_AMETHYST);
///////////////////////////////////////////////////
vSetRipXY(RIP_1D4_X - 50, RIP_1D4_X + 50,
RIP_LINE3_STARTY + 131, RIP_LINE3_STARTY + 165);
vRectangle(WB_RIP_MENU, 2, RIP_COL_BLUE, 1, RIP_BG_HILI_COL);
vShowMsg(WB_RIP_MENU, OSD_MSG_CANCEL,
RIP_1D4_X - 32, RIP_LINE3_STARTY + 133,
RIP_BG_HILI_COL, RIP_COL_BLUE);
i = 1;
while(fgReadSelectedTrackFlag(i) == FALSE){i++;}
// kilocmd start rip
vSendUopCmd(UOP_DIGITAL_BTN, i, stct_rip.fgHighSpeed, TRUE); //TRUE
stct_rip.bRipState = RIP_RIP_START_STATE;
_bRipEntry = ENTRY_CANCEL;
}
void vExitRipMenu(void)large
{
BYTE i;
vSetSharedInfo(SI_CD_RIP_UI_ON, SV_OFF);
vDisableWB(WB_RIP_MENU);
vSetKeyState(KEY_NONISO);
vOsdSetSt(OSD_ST_BURST);
vDeleteWB(WB_RIP_MENU);
vOsdSetSt(OSD_ST_NML);
_rOsdStateCtx.fgRipShow = FALSE;
vOsdSetMemBlk(OSD_MEM_BLK_STATIC, OSD_MEM_DEFAULT);
stct_rip.bRipState = RIP_CD_FORMAT;
_bRipEntry = 0;
stct_rip.fgHighSpeed = FALSE;
stct_rip.bRipBitrate = 0;
_bNewRipTracknum = 0;
stct_rip.fgRipID3 = 0;
stct_rip.bRipPageNum = 0;
// if(_fgSvr == EV_ON)
//fgEepromWriteByte(SCR_SAVER_POSITION, EV_ON);
for(i = 0; i <= 13; i++)
_bpRipTrkNum[i] = 0;
// if((stct_rip.bRipState!= RIP_RIP_EJECT_STATE)&&(stct_rip.bRipState!= RIP_RIP_POWER_STATE))
{
stct_rip.bRipState = RIP_CD_FORMAT;
vOsdShowWb(OSD_WB_RESTORE);
}
vOsdPosClear(OSD_POS_PLAY_INFO);
vOsdPosClear(OSD_POS_TIME_LEFT);
vSetSharedInfo(SI_CD_RIP_DEVICE, SV_DEVID_CDVDROM);
vSetSharedInfo(SI_DEVICE_ID, SV_DEVID_CDVDROM);
vSetSharedInfo(SI_CD_RIP_READY, SV_OFF);
vSetSharedInfo(SI_CD_RIP_STATUS, SV_CD_RIP_NONE);
//vSetSharedInfo(SI_CD_RIP_OVERWRITE, SV_OFF);
}
void vISShowHook(void)large
{
WORD wtmpy, wtmptime;
BYTE bpStr[3] = {2, '0', '0'};
BYTE bpTimeStr[6] = {5, '0', '0', ':', '0', '0'};
if(fgReadSelectedTrackFlag(_bNewRipTracknum) == FALSE)
{
vWriteSelectedTrackFlag(_bNewRipTracknum);
_bpRipTrkNum[0]++;
wtmpy = RIP_LINE3_STARTY + ( _bRipEntry - ENTRY_TRACK1) * 35 + 13;
if(wtmpy % 2!= 0)
wtmpy -= 1;
vOsdPasteBmpXY(RIP_CENTER_X + 30, wtmpy, WB_RIP_MENU, BMP_HOOK);
vSetRipXY(RIP_CENTER_X + 30, RIP_ENTRY_RIGHT_X - 2, wtmpy - 7, wtmpy + 22);
vChgColRep(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
}
else
{
vWriteSelectedTrackFlag(_bNewRipTracknum);
_bpRipTrkNum[0] --;
wtmpy = RIP_LINE3_STARTY + ( _bRipEntry - ENTRY_TRACK1) * 35 + 13;
vSetRipXY(RIP_CENTER_X + 30, RIP_ENTRY_RIGHT_X - 2, wtmpy - 7, wtmpy + 22);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_BG_HILI_COL);
}
vSetRipXY(RIP_CENTER_X - 76, RIP_CENTER_X - 16,
RIP_LINE5_STARTY + 10, RIP_LINE5_STARTY + 40);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_MENU_COL_BG);
vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
bpStr[1] = ((_bpRipTrkNum[0]) / 10) ? (_bpRipTrkNum[0]) / 10 + '0' : ' ';
bpStr[2] = (_bpRipTrkNum[0]) % 10 + '0';
vOsdShowStrXY(RIP_CENTER_X - 71, RIP_LINE5_STARTY + 10,
WB_RIP_MENU, bpStr);
bHiByte(wtmptime) = wGetSelectedTotalSec() / 60;
bLoByte(wtmptime) = wGetSelectedTotalSec() % 60;
bpTimeStr[1] = bHiByte(wtmptime) / 10 ? bHiByte(wtmptime) / 10 + '0':'0';
bpTimeStr[2] = bHiByte(wtmptime) % 10 ? bHiByte(wtmptime) % 10 + '0':'0';
bpTimeStr[4] = bLoByte(wtmptime) / 10 ? bLoByte(wtmptime) / 10 + '0':'0';
bpTimeStr[5] = bLoByte(wtmptime) % 10 ? bLoByte(wtmptime) % 10 + '0':'0';
vSetRipXY(RIP_CENTER_X - 75, RIP_CENTER_X - 2,
RIP_LINE5_STARTY + 42, RIP_LINE6_STARTY - 2);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_MENU_COL_BG);
vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
vOsdShowStrXY(RIP_CENTER_X - 75, RIP_LINE5_STARTY + 42,
WB_RIP_MENU, bpTimeStr);
}
void vISDrawAllHook(BOOL fgAll)large
{
BYTE i = 0;
BYTE bfirstnum = 7 + (stct_rip.bRipPageNum - 1) * 6 - 6;
WORD wtmptime, wtmpy;
BYTE bpStr[3] = {2, '0', '0'};
BYTE bpTimeStr[6] = {5, '0', '0', ':', '0', '0'};
if(fgAll == TRUE) // select all
{
_bpRipTrkNum[0] = MAX_TRACK_NUM;
for(i = 1; i <= 13; i++)
{
_bpRipTrkNum[i] = 0xff;
}
for(i = 1; i < 7; i++)
{
if(bfirstnum + i > MAX_TRACK_NUM)
break;
wtmpy = RIP_ENTRY_RIGHT_Y + i * 35 + 8;
if(wtmpy % 2 != 0)
wtmpy -= 1;
vOsdPasteBmpXY(RIP_CENTER_X + 30, wtmpy, WB_RIP_MENU, BMP_HOOK);
}
if(stct_rip.bRipPageNum == 1)
{
vOsdPasteBmpXY(RIP_CENTER_X + 30, RIP_ENTRY_RIGHT_Y + 8, WB_RIP_MENU, BMP_HOOK);
}
}
else //select none
{
for(i = 0; i <= 13; i++)
{
_bpRipTrkNum[i] = 0;
}
vSetRipXY(RIP_CENTER_X + 30, RIP_ENTRY_RIGHT_X - 2,
RIP_ENTRY_RIGHT_Y, RIP_LINE6_STARTY - 2);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_MENU_COL_BG);
}
vSetRipXY(RIP_CENTER_X - 76, RIP_CENTER_X - 16,
RIP_LINE5_STARTY + 10, RIP_LINE5_STARTY + 40);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_MENU_COL_BG);
vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
bpStr[1] = (_bpRipTrkNum[0]) / 10 ? (_bpRipTrkNum[0]) / 10 + '0' : ' ';
bpStr[2] = (_bpRipTrkNum[0]) % 10 + '0';
vOsdShowStrXY(RIP_CENTER_X - 71, RIP_LINE5_STARTY + 10,
WB_RIP_MENU, bpStr);
bHiByte(wtmptime) = (BYTE)(wGetSelectedTotalSec() / 60);
bLoByte(wtmptime) = (BYTE)(wGetSelectedTotalSec() % 60);
bpTimeStr[1] = bHiByte(wtmptime) / 10 ? bHiByte(wtmptime) / 10 + '0':'0';
bpTimeStr[2] = bHiByte(wtmptime) % 10 ? bHiByte(wtmptime) % 10 + '0':'0';
bpTimeStr[4] = bLoByte(wtmptime) / 10 ? bLoByte(wtmptime) / 10 + '0':'0';
bpTimeStr[5] = bLoByte(wtmptime) % 10 ? bLoByte(wtmptime) % 10 + '0':'0';
vSetRipXY(RIP_CENTER_X - 75, RIP_CENTER_X - 2,
RIP_LINE5_STARTY + 42, RIP_LINE6_STARTY - 2);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_MENU_COL_BG);
vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
vOsdShowStrXY(RIP_CENTER_X - 75, RIP_LINE5_STARTY + 42,
WB_RIP_MENU, bpTimeStr);
}
void vOptionsLeft(void) large
{
switch(_bRipEntry)
{
case ENTRY_TRACK1:
case ENTRY_TRACK2:
case ENTRY_TRACK3:
case ENTRY_TRACK4:
case ENTRY_TRACK5:
case ENTRY_TRACK6:
case ENTRY_TRACK7:
case ENTRY_TRACK8:
{
vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6,
RIP_LINE3_STARTY, RIP_LINE6_STARTY);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_MENU_COL_BG);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
_bRipEntry = ENTRY_SPEED;
vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20,
RIP_ENTRY_LEFT_Y, RIP_ENTRY_LEFT_Y + 34);
vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
break;
}
case ENTRY_SPEED:
case ENTRY_BITRATE:
case ENTRY_ID3:
case ENTRY_START:
case ENTRY_USB:
break;
case ENTRY_SELECT_NONE:
{
vSetRipXY(RIP_CENTER_X, RIP_MENU_ENDX,
RIP_LINE6_STARTY, RIP_MENU_ENDY - 4);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
_bRipEntry = ENTRY_SELECT_ALL;
vSetRipXY(RIP_CENTER_X, RIP_3D4_X - 16,
RIP_LINE6_STARTY + 2, RIP_MENU_ENDY - 6);
vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
break;
}
case ENTRY_SELECT_ALL:
case ENTRY_EXIT:
{
vSetRipXY(0, RIP_MENU_ENDX,
RIP_LINE6_STARTY, RIP_MENU_ENDY - 4);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
_bRipEntry --;
vSetRipXY(2 + RIP_1D4_X*(_bRipEntry - ENTRY_START), RIP_1D4_X*(_bRipEntry - ENTRY_START + 1) - 2,
RIP_LINE6_STARTY + 2, RIP_MENU_ENDY - 6);
vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
break;
}
case ENTRY_REPLACE_CANCEL:
vSetRipXY(RIP_1D4_X + 5, RIP_CENTER_X - 5,
RIP_LINE6_NEW_STARTY - 40, RIP_LINE6_NEW_STARTY - 3);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
vSetRipXY(RIP_LINE1_STARTX + 5, RIP_1D4_X - 5,
RIP_LINE6_NEW_STARTY - 40, RIP_LINE6_NEW_STARTY - 3);
vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
_bRipEntry = ENTRY_REPLACE_OK;
break;
default:
break;
}
}
void vOptionsRight(void) large
{
switch(_bRipEntry)
{
case ENTRY_TRACK1:
case ENTRY_TRACK2:
case ENTRY_TRACK3:
case ENTRY_TRACK4:
case ENTRY_TRACK5:
case ENTRY_TRACK6:
case ENTRY_TRACK7:
case ENTRY_TRACK8:
case ENTRY_SELECT_NONE:
break;
case ENTRY_SPEED:
case ENTRY_BITRATE:
case ENTRY_ID3:
case ENTRY_USB:
{
vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20,
RIP_ENTRY_LEFT_Y + _bRipEntry*39, RIP_ENTRY_LEFT_Y + 34 + _bRipEntry*39);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
_bRipEntry = ENTRY_TRACK1;
_bNewRipTracknum = 7 + (stct_rip.bRipPageNum - 1) * 6 - 6;
vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6,
RIP_LINE3_STARTY + 5, RIP_LINE3_STARTY + 35);
vChgColRep(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
break;
}
case ENTRY_START:
{
vSetRipXY(2, RIP_1D4_X - 2, RIP_LINE6_STARTY, RIP_MENU_ENDY - 4);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
_bRipEntry++;
vSetRipXY(RIP_1D4_X + 2, RIP_CENTER_X - 2, RIP_LINE6_STARTY + 2, RIP_MENU_ENDY - 6);
vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
break;
}
case ENTRY_EXIT:
{
vSetRipXY(RIP_1D4_X + 2, RIP_CENTER_X - 2,
RIP_LINE6_STARTY, RIP_MENU_ENDY - 4);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
_bRipEntry++;
vSetRipXY(RIP_CENTER_X + 2, RIP_3D4_X - 18,
RIP_LINE6_STARTY + 2, RIP_MENU_ENDY - 6);
vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
break;
}
case ENTRY_SELECT_ALL:
{
vSetRipXY(RIP_CENTER_X, RIP_MENU_ENDX,
RIP_LINE6_STARTY, RIP_MENU_ENDY - 4);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
_bRipEntry++;
vSetRipXY(RIP_3D4_X - 12, RIP_MENU_ENDX - 6,
RIP_LINE6_STARTY + 2, RIP_MENU_ENDY - 6);
vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
break;
}
case ENTRY_REPLACE_OK:
vSetRipXY(RIP_LINE1_STARTX + 5, RIP_1D4_X - 5,
RIP_LINE6_NEW_STARTY - 40, RIP_LINE6_NEW_STARTY - 3);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_COL_AMETHYST);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
vSetRipXY(RIP_1D4_X + 5, RIP_CENTER_X - 5,
RIP_LINE6_NEW_STARTY - 40, RIP_LINE6_NEW_STARTY - 3);
vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
_bRipEntry = ENTRY_REPLACE_CANCEL;
break;
default:
break;
}
}
void vOptionsDown(void) large
{
WORD wtmpy;
switch(_bRipEntry)
{
case ENTRY_TRACK1:
case ENTRY_TRACK2:
case ENTRY_TRACK3:
case ENTRY_TRACK4:
case ENTRY_TRACK5:
case ENTRY_TRACK6:
case ENTRY_TRACK7:
if(_bNewRipTracknum + 1 > MAX_TRACK_NUM)
{
wtmpy = RIP_LINE3_STARTY + ( _bRipEntry - ENTRY_TRACK1) * 35 + 5;
vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6, wtmpy, wtmpy + 30);
vChgColRep(WB_RIP_MENU, RIP_BG_HILI_COL, RIP_MENU_COL_BG);
vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);
_bRipEntry = ENTRY_SELECT_ALL;
vSetRipXY(RIP_CENTER_X + 2, RIP_3D4_X - 18,
RIP_LINE6_STARTY + 2, RIP_MENU_ENDY - 6);
vChgColRep(WB_RIP_MENU, RIP_COL_AMETHYST, RIP_BG_HILI_COL);
vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -