📄 usb.c
字号:
vSetStartEndXY(COPY_MENU_START_X + 40,
COPY_MENU_START_Y + 140,
COPY_MENU_START_X + 140,
COPY_MENU_START_Y + 170);
vCreateMsgButton(FSMENU_OSD_WBIDX_BASIC, HILI_BACK, 4, OSD_MSG_BACK, 0xFFFF, 0);
// highlight the "BACK" button
_bUSBCpCurHili = HILI_BACK;
vUSBCpHiliBtn(_bUSBCpCurHili);
//show "device not support"
_wStartX = COPY_MENU_START_X;
_wStartY = COPY_MENU_START_Y +10;
vOsdMsgPaste(FSMENU_OSD_WBIDX_BASIC,OSD_MSG_ERR_DEVICE_FAIL);
}
else
{
// set color
vSetMsgCol4(FSMENU_OSD_WBIDX_BASIC, ENTRY_COL_GRAY, ENTRY_COL_BG, ENTRY_COL_BG, ENTRY_COL_BLACK);
vSetBtnCol(FSMENU_OSD_WBIDX_BASIC, ENTRY_COL_BG, ENTRY_COL_BG, ENTRY_COL_WHITE, ENTRY_COL_BLACK);
// draw the "BACK" button
vSetStartEndXY(COPY_MENU_START_X,
COPY_MENU_START_Y + 140,
COPY_MENU_START_X + 100,
COPY_MENU_START_Y + 170);
vCreateMsgButton(FSMENU_OSD_WBIDX_BASIC, HILI_BACK, 4, OSD_MSG_BACK, 0xFFFF, 0);
// unhighlight the "BACK" button
vUSBCpUnHiliBtn(HILI_BACK);
// draw the "NEXT" button
vSetStartEndXY(COPY_MENU_START_X + 110,
COPY_MENU_START_Y + 140,
COPY_MENU_START_X + 210,
COPY_MENU_START_Y + 170);
vCreateMsgButton(FSMENU_OSD_WBIDX_BASIC, HILI_NEXT, 4, OSD_MSG_NEXT, 0xFFFF, 0);
// highlight the "NEXT" button
_bUSBCpCurHili = HILI_NEXT;
vUSBCpHiliBtn(_bUSBCpCurHili);
//show Remain size
_wStartX = COPY_MENU_START_X;
_wStartY = COPY_MENU_START_Y +10;
vOsdMsgPaste(FSMENU_OSD_WBIDX_BASIC,OSD_MSG_RMN_SZ);
// Unit is MByte, Current we only support Max 32Gbyte usb device, so we will ignore remain space byte more than 32Gbyte
_wStartY = COPY_MENU_START_Y +10+30;
wRmnSize = ((WORD)(bSharedInfo(SI_MP3_COPY_REMSPACE_B3) >> 4) |((WORD)(bSharedInfo(SI_MP3_COPY_REMSPACE_B4) << 4)) |((WORD)((bSharedInfo(SI_MP3_COPY_REMSPACE_B5) & 0x07)<< 12)));
if(wRmnSize/10000)
{
pbString[0] = 7;
pbString[1] = '0' + (BYTE)(wRmnSize/10000);
wRmnSize = wRmnSize%10000;
pbString[2] = '0' + (BYTE)(wRmnSize/1000);
wRmnSize = wRmnSize%1000;
pbString[3] = '0' + (BYTE)(wRmnSize/100);
wRmnSize = wRmnSize%100;
pbString[4] = '0' + (BYTE)(wRmnSize/10);
wRmnSize = wRmnSize%10;
pbString[5] = '0' + (BYTE)wRmnSize;
pbString[6] = 'M';
pbString[7] = 'B';
}
else if(wRmnSize/1000)
{
pbString[0] = 6;
pbString[1] = '0' + (BYTE)(wRmnSize/1000);
wRmnSize = wRmnSize%1000;
pbString[2] = '0' + (BYTE)(wRmnSize/100);
wRmnSize = wRmnSize%100;
pbString[3] = '0' + (BYTE)(wRmnSize/10);
wRmnSize = wRmnSize%10;
pbString[4] = '0' + (BYTE)wRmnSize;
pbString[5] = 'M';
pbString[6] = 'B';
}
else if(wRmnSize/100)
{
pbString[0] = 5;
pbString[1] = '0' + (BYTE)(wRmnSize/100);
wRmnSize = wRmnSize%100;
pbString[2] = '0' + (BYTE)(wRmnSize/10);
wRmnSize = wRmnSize%10;
pbString[3] = '0' + (BYTE)wRmnSize;
pbString[4] = 'M';
pbString[5] = 'B';
}
else if(wRmnSize/10)
{
pbString[0] = 4;
pbString[1] = '0' + (BYTE)(wRmnSize/10);
wRmnSize = wRmnSize%10;
pbString[2] = '0' + (BYTE)wRmnSize;
pbString[3] = 'M';
pbString[4] = 'B';
}
else
{
pbString[0] = 3;
pbString[1] = '0' + (BYTE)wRmnSize;
pbString[2] = 'M';
pbString[3] = 'B';
}
vOsdShowStr(FSMENU_OSD_WBIDX_BASIC,pbString);
}
return;
}
/*****************************************************************/
// key process
/*****************************************************************/
BOOL fgUSBCpItemSelUpKey(void) large
{
if (_bUSBCpCurHili == HILI_FILEMENU)
{
vFlMnUSBCpUpKey();
}
else
{
if (_bUSBCpCurHili == HILI_ALL_SEL)
{
return (TRUE);
}
// remove highlight from the current button
vUSBCpUnHiliBtn(_bUSBCpCurHili);
_bUSBCpCurHili --;
vUSBCpHiliBtn(_bUSBCpCurHili);
}
return (TRUE);
}
BOOL fgUSBCpItemSelDownKey(void) large
{
if (_bUSBCpCurHili == HILI_FILEMENU)
{
vFlMnUSBCpDownKey();
}
else
{
// if current button is the last one, do nothing
if (_bUSBCpCurHili == HILI_EXIT)
{
return (TRUE);
}
// remove highlight from the current button
vUSBCpUnHiliBtn(_bUSBCpCurHili);
_bUSBCpCurHili ++;
vUSBCpHiliBtn(_bUSBCpCurHili);
}
return (TRUE);
}
BOOL fgUSBCpItemSelLeftKey(void) large
{
if (_bUSBCpCurHili != HILI_FILEMENU)
{
vUSBCpUnHiliBtn(_bUSBCpCurHili);
_bUSBCpCurHili = HILI_FILEMENU;
vFlMnUSBCpEntCurItem();
}
return (TRUE);
}
BOOL fgUSBCpItemSelRightKey(void) large
{
if (_bUSBCpCurHili == HILI_FILEMENU)
{
fgFlMnUSBCpRightKey();
}
return (TRUE);
}
BOOL fgUSBCpItemSelEnterKey(void) large
{
BOOL fgRet = TRUE;
WORD wTmp;
BYTE bTmp;
if (_bUSBCpCurHili == HILI_FILEMENU)
{
fgRet = fgFlMnUSBCpEnterKey();
}
else if (_bUSBCpCurHili == HILI_ALL_SEL)
{
if((FL_LIST_TYPE(_bFlMnListId) == FLPARM_LIST_FOLDER && vFlMnUSBCpIsRootDir()) ||FL_LIST_TYPE(_bFlMnListId) == FLPARM_LIST_DISC) //root
{
bTmp = 0;
for(wTmp=0;wTmp<_wFlMnListLen;wTmp++)
{
bTmp |= 0x01 << (wTmp%8);
if(((wTmp+1)%8) == 0)
{
vSetSharedInfo(SI_USB_COPY_GRP_1_ST+(wTmp/8), bTmp);
bTmp = 0;
}
}
if(bTmp)
{
vSetSharedInfo(SI_USB_COPY_GRP_1_ST+(wTmp/8), bTmp);
}
_wUSBCpTtlNs = _wFlMnListLen;
}
else //sub dir
{
bTmp = 0;
for(wTmp=1;wTmp<_wFlMnListLen;wTmp++) //skip parent dir
{
bTmp |= 0x01 << (wTmp%8);
if(((wTmp+1)%8) == 0)
{
vSetSharedInfo(SI_USB_COPY_GRP_1_ST+(wTmp/8), bTmp);
bTmp = 0;
}
}
if(bTmp)
{
vSetSharedInfo(SI_USB_COPY_GRP_1_ST+(wTmp/8), bTmp);
}
_wUSBCpTtlNs = _wFlMnListLen-1;
}
vUSBCpShowAllChkbox();
}
else if (_bUSBCpCurHili == HILI_ALL_UNSEL)
{
if (!_wUSBCpTtlNs)
return TRUE;
// init all chk box and total checked number
vSetSharedInfo(SI_USB_COPY_GRP_1_ST, 0x00);
for (wTmp = 1; wTmp < (USB_COPY_MAX_NUM + 7)/8 ; wTmp++)
{
vWriteNextSharedItem(0x00);
}
_wUSBCpTtlNs = 0;
vUSBCpShowAllChkbox();
}
else if (_bUSBCpCurHili == HILI_COPY_DEL)
{
if (!_wUSBCpTtlNs)
return TRUE;
_wUSBCpNxtNo = 0; //set polling index to zero
_wUSBCpRmnNs = _wUSBCpTtlNs;
if(bSharedInfo(SI_DEVICE_ID) == SV_DEVID_CDVDROM) //copy function
{
// judge the USB device valide
if (bUSBCpChkDevNum() == 0)
{
// print the message "no media", and do nothing
_wStartX = 45;
_wStartY = 280;
vOsdPosShow(OSD_POS_FS_INFO_BAR,OSD_MSG_NO_DEV,3);
return TRUE;
}
_bUSBCopyState = USB_COPY_STATE_DEV_SEL;
vUSBCpDevSelShowMenu(TRUE);
}
else //delete function
{
if (!_wUSBCpTtlNs)
return TRUE;
_bUSBCopyState = USB_COPY_STATE_ERASING;
vFlMnUSBDel();
}
}
else if (_bUSBCpCurHili == HILI_EXIT)
{
vUSBCopyStateExit(FALSE,FALSE);
}
return(fgRet);
}
BOOL fgUSBCpDevSelUpKey(void) large
{
// if current button is the first one, do nothing
// if (bCurArrayID == COPY_MENU_USB_SLOT1)
if (_bDevSel == 0)
{
return (TRUE);
}
// up the highlight button
_bDevSel -= 1;
// remove highlight from the current button
vUSBCpUnHiliBtn(_bUSBCpCurHili);
// move highlight to next button
_bUSBCpCurHili = _bDevDisplayArray[_bDevSel];
// highlight button
vUSBCpHiliBtn(_bUSBCpCurHili);
return (TRUE);
}
BOOL fgUSBCpDevSelDownKey(void) large
{
// if current button is the last one, do nothing
if (_bUSBCpCurHili == _bDevDisplayArray[_bValidDevNum-1])
{
return (TRUE);
}
// down the highlight button
_bDevSel += 1;
// remove highlight from the current button
vUSBCpUnHiliBtn(_bUSBCpCurHili);
// move highlight to next button
_bUSBCpCurHili = _bDevDisplayArray[_bDevSel];
// highlight button
vUSBCpHiliBtn(_bUSBCpCurHili);
return (TRUE);
}
BOOL fgUSBCpDevSelEnterKey(void) large
{
BYTE bCount;
WORD wIdx;
BYTE bBtnID;
// get the device id
bBtnID = _bDevDisplayArray[_bDevSel];
// get the target device id
vSetSharedInfo(SI_LUN_ID, bUSBCopyDevID[bBtnID - HILI_USB_SLOT1]);
// enter copying state
_bUSBCopyState = USB_COPY_STATE_CONFIRM;
// del all buttons
for (bCount = HILI_USB_SLOT1; bCount <= HILI_USB_SLOT6; bCount++)
{
vDelButton(FSMENU_OSD_WBIDX_BASIC, bCount);
}
// clear the area of menu
vSetStartEndXY(COPY_MENU_START_X, COPY_MENU_START_Y, COPY_MENU_END_X, COPY_MENU_END_Y);
vRectangle(FSMENU_OSD_WBIDX_BASIC, 0, 0, TRUE, ENTRY_COL_BG);
if (fgFlClLock(FL_CMDPATH_USBCP3))
{
vFlCmdCopyChk();
}
return (TRUE);
}
BOOL fgUSBCpConfirmLeftKey(void) large
{
// if the device is not supported, do nothing
if((bSharedInfo(SI_FAT_ERR_CODE) == SV_FAT_E_MBR_ERROR) || (bSharedInfo(SI_FAT_ERR_CODE) == SV_FAT_E_NOT_SUPPORT))
{
return (TRUE);
}
if((_bUSBCpCurHili != HILI_BACK) && (_bUSBCpCurHili != HILI_NEXT))
{
return (TRUE);
}
if(_bUSBCpCurHili == HILI_BACK)
{
return (TRUE);
}
// remove highlight from the current button
vUSBCpUnHiliBtn(_bUSBCpCurHili);
// move highlight to next button
_bUSBCpCurHili = HILI_BACK;
// highlight button
vUSBCpHiliBtn(_bUSBCpCurHili);
return (TRUE);
}
BOOL fgUSBCpConfirmRightKey(void) large
{
// if the device is not supported, do nothing
if((bSharedInfo(SI_FAT_ERR_CODE) == SV_FAT_E_MBR_ERROR) || (bSharedInfo(SI_FAT_ERR_CODE) == SV_FAT_E_NOT_SUPPORT))
{
return (TRUE);
}
if((_bUSBCpCurHili != HILI_BACK) && (_bUSBCpCurHili != HILI_NEXT))
{
return (TRUE);
}
if(_bUSBCpCurHili == HILI_NEXT)
{
return (TRUE);
}
// remove highlight from the current button
vUSBCpUnHiliBtn(_bUSBCpCurHili);
// move highlight to next button
_bUSBCpCurHili = HILI_NEXT;
// highlight button
vUSBCpHiliBtn(_bUSBCpCurHili);
return (TRUE);
}
BOOL fgUSBCpConfirmEnterKey(void) large
{
BYTE bCount;
WORD wIdx;
BYTE bBtnID;
if(_bUSBCpCurHili == HILI_NEXT)
{
// get the device id
bBtnID = _bDevDisplayArray[_bDevSel];
// enter copying state
_bUSBCopyState = USB_COPY_STATE_COPYING;
// del all buttons
for (bCount = HILI_USB_SLOT1; bCount <= HILI_USB_SLOT6; bCount++)
{
vDelButton(FSMENU_OSD_WBIDX_BASIC, bCount);
}
// clear the area of menu
vSetStartEndXY(COPY_MENU_START_X, COPY_MENU_START_Y, COPY_MENU_END_X, COPY_MENU_END_Y);
vRectangle(FSMENU_OSD_WBIDX_BASIC, 0, 0, TRUE, ENTRY_COL_BG);
// draw the cancel copy button
vSetStartEndXY(COPY_MENU_START_X + 50,
COPY_MENU_START_Y + 140,
COPY_MENU_START_X + 150,
COPY_MENU_START_Y + 170);
vCreateMsgButton(FSMENU_OSD_WBIDX_BASIC, HILI_CANCEL, 4, OSD_MSG_CANCEL, 0xFFFF, 0);
//PL00113697, move the copying msg to vFlMnUSBCp()
//show "file copying"
//_wStartX = COPY_MENU_START_X;
//_wStartY = COPY_MENU_START_Y +10;
//vOsdMsgPaste(FSMENU_OSD_WBIDX_BASIC,OSD_MSG_COPYING);
// highlight the "Cancel" button
_bUSBCpCurHili = HILI_CANCEL;
vUSBCpHiliBtn(_bUSBCpCurHili);
vSetSharedInfo(SI_FS_MULIFILE_SELECTED, 0);
vSetSharedInfo(SI_FS_REC_SINGLEFILE, 0);
// move file
vFlMnUSBCp();
}
else if(_bUSBCpCurHili == HILI_BACK)
{
// delete all confirm buttons
for (bCount = HILI_BACK; bCount <= HILI_NEXT; bCount++)
{
vDelButton(FSMENU_OSD_WBIDX_BASIC, bCount);
}
_bUSBCopyState = USB_COPY_STATE_DEV_SEL;
vUSBCpDevSelShowMenu(TRUE);
}
return (TRUE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -