📄 photobrowserapi.c
字号:
}
//***************************************************************************
// Func: void _photo_paint_sel_frame(uint8 pos_x, uint8 pos_y)
// Input: pos_x, pos_y
// Output: none
//
// Description: paint select frame
//
//***************************************************************************
void _photo_paint_sel_frame(uint8 pos_x, uint8 pos_y)
{
API_LcmPutSysImage(IMG_PHOTO_SELECT1,pos_x,pos_y);
API_LcmPutSysImage(IMG_PHOTO_SELECT2,pos_x,pos_y);
API_LcmPutSysImage(IMG_PHOTO_SELECT1,pos_x,pos_y+POS_PHOBRO_SEL_GAP_Y-POS_PHOBRO_FRAME_WIDTH);
API_LcmPutSysImage(IMG_PHOTO_SELECT2,pos_x+POS_PHOBRO_SEL_GAP_X-POS_PHOBRO_FRAME_WIDTH,pos_y);
}
//***************************************************************************
// Func: void _photo_clear_sel_frame(uint8 pos_x, uint8 pos_y)
// Input: pos_x, pos_y
// Output: none
//
// Description: clean select frame
//
//***************************************************************************
void _photo_clear_sel_frame(uint8 pos_x, uint8 pos_y)
{
API_LcmPutSysImage(IMG_PHOTO_NO_SELECT1,pos_x,pos_y);
API_LcmPutSysImage(IMG_PHOTO_NO_SELECT2,pos_x,pos_y);
API_LcmPutSysImage(IMG_PHOTO_NO_SELECT1,pos_x,pos_y+POS_PHOBRO_SEL_GAP_Y-POS_PHOBRO_FRAME_WIDTH);
API_LcmPutSysImage(IMG_PHOTO_NO_SELECT2,pos_x+POS_PHOBRO_SEL_GAP_X-POS_PHOBRO_FRAME_WIDTH,pos_y);
}
//***************************************************************************
// Func: void _photo_show_item_icon(uint8 type, uint8 index, uint16 file_curr_paint_item)
// Input: type
// return icon : 0
// folder : 1
// file : 2
//
// index (0~8) 9 frame
// ile_curr_paint_item : current file
// Output: none
//
// Description: show item icon and info
//
//***************************************************************************
void _photo_show_item_icon(uint8 type, uint8 index, uint16 file_curr_paint_item)
{
uint8 result;
uint16 string_ptr;
uint8 thu_pos_x[] = {POS_PHOBRO_THU0_X,POS_PHOBRO_THU1_X,POS_PHOBRO_THU2_X,
POS_PHOBRO_THU3_X,POS_PHOBRO_THU4_X,POS_PHOBRO_THU5_X,
POS_PHOBRO_THU6_X,POS_PHOBRO_THU7_X,POS_PHOBRO_THU8_X};
uint8 thu_pos_y[] = {POS_PHOBRO_THU0_Y,POS_PHOBRO_THU1_Y,POS_PHOBRO_THU2_Y,
POS_PHOBRO_THU3_Y,POS_PHOBRO_THU4_Y,POS_PHOBRO_THU5_Y,
POS_PHOBRO_THU6_Y,POS_PHOBRO_THU7_Y,POS_PHOBRO_THU8_Y};
uint8 sel_pos_x[] = {POS_PHOBRO_SEL0_X,POS_PHOBRO_SEL1_X,POS_PHOBRO_SEL2_X,
POS_PHOBRO_SEL3_X,POS_PHOBRO_SEL4_X,POS_PHOBRO_SEL5_X,
POS_PHOBRO_SEL6_X,POS_PHOBRO_SEL7_X,POS_PHOBRO_SEL8_X};
uint8 sel_pos_y[] = {POS_PHOBRO_SEL0_Y,POS_PHOBRO_SEL1_Y,POS_PHOBRO_SEL2_Y,
POS_PHOBRO_SEL3_Y,POS_PHOBRO_SEL4_Y,POS_PHOBRO_SEL5_Y,
POS_PHOBRO_SEL6_Y,POS_PHOBRO_SEL7_Y,POS_PHOBRO_SEL8_Y};
string_ptr = (uint16)lfnPtr;
// show return, folder, file icon
if(file_repaint_flag)
{
if(type == ICON_RETURN) //show return icon
API_LcmPutSysImage(IMG_PHOTO_LAST_FOLDER,thu_pos_x[index],thu_pos_y[index]);
else if(type == ICON_FOLDER) //show folder icon
API_LcmPutSysImage(IMG_PHOTO_FOLDER,thu_pos_x[index],thu_pos_y[index]);
else if(type == ICON_FILE) //show file icon
{
API_LcmPutSysImage(IMG_PHOTO_SEL_BG,sel_pos_x[index],sel_pos_y[index]);
API_PhotoSetEffect(PPM_THUMB_DIR,0);
API_PhotoSetFile(FF_PHOTO_FORM,file_curr_paint_item-Folders);
API_LcmClearScreen(thu_pos_x[index],thu_pos_y[index],PHOBRO_THUMB_W,PHOBRO_THUMB_H);
if(!API_PhotoPlay(thu_pos_x[index],thu_pos_y[index],PHOBRO_THUMB_W,PHOBRO_THUMB_H))
{
//reload MPL lib
//API_SysLoadMediaLib();
// set hardware volume
//API_SysSetHardwareVolume(0,0); // DAC set 0
//API_SysSetHardwareVolume(4,10); // Mixer set 10
//set mixer output
//API_SysMixerOutputSelection(MIXER_DAC);
API_LcmPutSysImage(IMG_PICTURE_ICON,thu_pos_x[index],thu_pos_y[index]);
if(index < 8) // 0~7
API_SysWriteValue(RAM_SHARING_ADR,PHOTO_THU_0_7,(API_SysReadValue(RAM_SHARING_ADR,PHOTO_THU_0_7) | (1<<index)) );
else
API_SysWriteValue(RAM_SHARING_ADR,PHOTO_THU_8,1);
}
}
}
//show item info if this item is selected
if(index == file_curr_sel_icon)
{
//show selected frame
_photo_paint_sel_frame(sel_pos_x[index],sel_pos_y[index]);
// clean info bar
API_LcmPutSysImage(IMG_INFO_BAR,POS_PHOBRO_INFOBAR_X,POS_PHOBRO_INFOBAR_Y);
// show source icon
if(nand_sd_flag == FAT_IS_NAND)
API_LcmPutSysImage(IMG_SMALL_ICON_HD_SELECT,POS_PHOBRO_ICON_X,POS_PHOBRO_ICON_Y);
else
API_LcmPutSysImage(IMG_SMALL_ICON_SD_SELECT,POS_PHOBRO_ICON_X,POS_PHOBRO_ICON_Y);
//show current folder / file name
API_LcmSetStringLenth((POS_PHOBRO_NUM_X-POS_PHOBRO_FN_X)/8);
//show return text
if(type == ICON_RETURN)
{
result = 2;
API_SysLoadValue(NAND_TEXT_ADR+(language*TIDX_AMOUNT_OF_ONE_LANGUAGE)+TIDX_RETURN,string_ptr,255);
}
else if(type == ICON_FOLDER) //show folder name text
result=API_FATGetFolderName(file_curr_paint_item, sfnPtr, lfnPtr);
else if(type == ICON_FILE) //show file name text
result=API_FATGetFileName(FF_PHOTO_FORM,file_curr_paint_item-Folders, sfnPtr, lfnPtr);
_photo_show_name(result);
//API_LcmShowNumber(1<<index,0,POS_PHOBRO_NUM_Y,0);
// show current_number/total_number
if(type > ICON_RETURN)
{
API_LcmShowNumber2B(file_curr_paint_item,POS_PHOBRO_NUM_X,POS_PHOBRO_NUM_Y);
API_LcmShowNumber2B((Folders+Files),POS_PHOBRO_NUM_X+40,POS_PHOBRO_NUM_Y);
API_LcmShowString(TXT_PHOTO_LINE,POS_PHOBRO_NUM_X+32,POS_PHOBRO_NUM_Y);
}
}
}
//***************************************************************************
// Func: void _photo_show_name(uint8 result)
// Input: result
// 1 : short file name
// 2 : long file name
// Output: none
//
// Description: show file(folder) name
//
//***************************************************************************
void _photo_show_name(uint8 result)
{
if(result == 1) //show short file name
{
//API_LcmSetLanguage(CS_BIG5);
API_LcmShowString(sfnPtr,POS_PHOBRO_FN_X,POS_PHOBRO_FN_Y);
}
else if(result == 2) //show long file name
{
API_LcmSetLanguage(CS_UNICODE);
API_LcmShowString(lfnPtr,POS_PHOBRO_FN_X,POS_PHOBRO_FN_Y);
if(language == 2)
API_LcmSetLanguage(CS_GBK);
else
API_LcmSetLanguage(CS_BIG5);
}
}
//***************************************************************************
// Func: uint8 _load_base_path(uint8 *base_folder_ptr)
// Input: base_folder_ptr
//
// Output: none
//
// Description: return base folder
//
//***************************************************************************
uint8 _load_base_path(uint8 *base_folder_ptr)
{
uint8 root_order,result;
uint16 folder_index;
root_order = API_SysReadValue(RAM_SHARING_ADR,ROOT_ORDER);
//return root
while(root_order!=0)
{
API_FATExitFolder();
API_SysWriteValue2B(RAM_CUR_PATH_ADR,root_order*2,0);
root_order--;
}
API_SysWriteValue(RAM_SHARING_ADR,ROOT_ORDER,root_order);
// get folder index
if(API_FATGetIdxOfSfn(base_folder_ptr,&folder_index) != 2)
{
#if DEBUG
API_LcmShowString("can't find Music folder",0,0);
return 0;
#else
result = FALSE;
#endif
}
else
{
// go to Photo folder
if(API_FATEnterFolderName(base_folder_ptr))
{
API_SysWriteValue2B(RAM_CUR_PATH_ADR,root_order*2,folder_index);
root_order++;
API_SysWriteValue(RAM_SHARING_ADR,ROOT_ORDER,root_order);
result = TRUE;
}
}
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -