📄 bookmarkadd.i
字号:
unsigned char fselSetMode( unsigned char mode);
unsigned short fselGetTotal(void);
unsigned short fselGetNo(void);
unsigned char fselGetErrID(void);
unsigned char fselGetNext(char *strFile );
unsigned char fselGetPrev(char *strFile );
unsigned char fselGetByNO( char *strFile, const unsigned short Num);
unsigned char fselNextDir(char *strDir);
unsigned char fselPrevDir(char *strDir);
int GenNewName(file_location_t *loation);
unsigned char playlistdel(char *filename);
unsigned char playlistclassNext(char *classname);
unsigned char playlistclassPrev(char *classname);
unsigned char playlistnext(char *filename);
unsigned char playlistprev(char *filename);
unsigned char playlistret();
unsigned char fselSetLocationC(file_location_t *location);
unsigned char fselGetLocationC(file_location_t *location);
unsigned char unitochar(char *str,int len,unsigned char encode);
typedef struct
{
unsigned long PenColor;
unsigned long BackgdColor;
}DC, *PDC;
typedef struct
{
char x;
char y;
char width;
char height;
}region_t;
non_banked char *PutS(const char *str,signed char strlen);
non_banked unsigned char PutChar(int code);
non_banked void PutSDImage(region_t *imageregion,long int sdimageaddr);
non_banked void InvertRegion(region_t *invregion);
non_banked void SetAsciiFont(unsigned char FontID);
non_banked void SetTextPos(unsigned char x,unsigned char y);
non_banked void SetPenColor( unsigned long color);
non_banked void SetBackgdColor( unsigned long color);
non_banked void SetTextOutMode(unsigned char mod);
non_banked void SetContrast(char ContrastValue);
non_banked void DispBufSelect(unsigned char rampage);
non_banked void GetFontPoint(int code,void *picbuf);
non_banked char *GetDisplayBufAddr(void);
non_banked void GetTextPos(unsigned char *x,unsigned char *y);
non_banked void GetDCStatus(PDC pdc);
non_banked char GetOutPutErr(void);
non_banked void RegionMove(region_t *sregion, region_t *tregion);
non_banked void RegionCopy(region_t *sregion, region_t *tregion);
non_banked void UpdateScreen(const region_t *region);
non_banked void SetTranMode(char Mode);
non_banked void SetWindow(region_t *winregion);
non_banked void LightOnOff( unsigned char OnOff);
non_banked void BuffDataTrans(char *buff , int datacnt);
non_banked void SetDrawMode( unsigned char mode);
non_banked unsigned char CharOutRect(int code,int nextcode,region_t *CRregion, unsigned char colcnt);
non_banked void FillRect (region_t * region);
non_banked void DrawRectFrame(region_t * region );
non_banked char *TextOutRect(region_t * region, char mode);
non_banked void Draw3DRect (region_t * D3region, unsigned char type);
non_banked void StandbyScreen( unsigned char bStandby);
non_banked void ClearScreen(region_t *clrregion);
non_banked void MsgBox(int MsgNo,char x,char y);
non_banked void SetBrightness(char BrightnessValue);
non_banked unsigned char sUI_Init(char mode);
non_banked void sUI_Exit(void);
non_banked void sUI_HardInit(void);
extern long FontLibAddr;
extern long AsciiFontLibAddr;
extern char DisplayBuffer[];
typedef struct
{
int title;
int headpic;
char menu_grade[3];
}menuhead_t;
typedef struct
{
int total;
int active;
const unsigned short *title;
unsigned char grade[3];
unsigned char string_id;
}function_menu_t;
typedef struct
{
int min;
int max;
int value;
unsigned char string_id;
} progress_t;
typedef struct
{
int title;
int min;
int max;
int value;
int step;
unsigned char string_id;
}slider_t;
typedef struct
{
const unsigned short *strid;
int total;
int active;
int headid;
unsigned char string_id;
}pop_up_list_t;
int ui_menuhead (menuhead_t *menuhead, int string_id);
int ui_popup_list(pop_up_list_t *list, const void (*callback)(int value));
int ui_err_msg (int msgID, int typeID, int string_id);
int ui_show_msg (int msgID, int typeID, int string_id);
int ui_menu (function_menu_t *menu , const void (*callback)(int value));
int ui_menu2 (function_menu_t *menu , const void (*callback)(int value));
int ui_show_progress(const progress_t *progress, int string_id);
void ui_show_guage(int step, unsigned char para);
int ui_filelist(file_location_t *location, int type, int string_id);
int ui_explore(file_location_t *location, int type, int string_id);
extern char file_name[12];
extern char dir_name[30];
extern char *str_pt;
extern char *strhead_pt;
extern unsigned char scroll_cnt;
int rm_dir_from_buf(int n);
extern unsigned char read_idm_data(char *name, int count);
extern unsigned char write_idm_data(char *name, int count);
extern void init_dir_buf();
extern unsigned char get_dir_name(char *file, unsigned short num);
extern void get_dir_name2(char *file, int num);
extern int init_sel_dir_buf(void);
extern unsigned char del_all_my_file(int type, unsigned char string_id);
extern void reinit_idm_buf(int top, int bottom, int total_dir, int string_id);
void show_active_list(int old_active, int active, int top);
unsigned char show_popup_list(int string_id);
int ui_explore_sub(file_location_t *location, int type, int string_id);
int init_active(int string_id);
int init_active_dironly(file_location_t *location);
void reset_cur_list_bg_color(int i, int tmp);
void get_dir_long_name(file_location_t *location, int string_id);
void redraw_window(void);
void Clearexplore(void);
void ui_show_data(char *buf, unsigned char x, unsigned char y);
typedef struct
{
char magic[4];
unsigned short counts;
char reserved[10];
}res_head_t;
typedef struct
{
long offset;
unsigned short length;
unsigned char type;
char name[9];
}res_entry_t;
extern SD_FILE *res_fp;
extern unsigned char ui_auto_update;
extern unsigned char ui_auto_select;
extern unsigned char ui_run_realtime;
extern region_t res_region;
extern const char mychar[];
extern const char menu_pos[6];
extern unsigned char charge_flag;
SD_FILE *ResOpen(const char * filename);
void ResClose(const SD_FILE *fp_res);
int ResShowPic( unsigned short id, unsigned char x, unsigned char y);
int main_ResShowPic( unsigned short id, unsigned char x, unsigned char y);
int ResShowString( unsigned short id, unsigned char x, unsigned char y);
int ResShowMultiString( unsigned short id, unsigned char string_id, unsigned char x, unsigned char y);
int ResInvertShowPic( unsigned short id, unsigned char x, unsigned char y);
void ap_message_init(const comval_t *comval);
non_banked char ap_get_message(void);
non_banked char ap_handle_hotkey(char key);
char ap_sleep(int half_sec);
void ap_set_event( unsigned short event);
unsigned short ap_get_event( unsigned short event, unsigned short condition);
void ap_del_event( unsigned short event);
char *itoa_1( unsigned char i, char *buf);
char *itoa_2( unsigned char i, char *buf);
char *itoa_3( unsigned short i, char *buf);
char *itoa_4( unsigned short i, char *buf);
int get_text_width(const char *string);
int get_large_text_width(const char *string);
void ui_show_a( unsigned short id);
void ui_show_b( unsigned short id);
void ui_show_c( unsigned short id);
void ui_show_d(const char *string,char mode);
void ui_show_d2(const char *string);
void ui_show_cd(const char *string, unsigned char part);
void ui_show_d_pic( unsigned short id);
void ui_show_e( unsigned short id);
void ui_show_f(const char *string );
void ui_show_ef(const char *string, unsigned char part);
void ui_show_batt(int value, char batt_type, unsigned char fmflag);
void ui_show_g(const char *string);
void ui_show_h(const char *string);
int ui_delete(file_location_t *location, unsigned char type, unsigned char string_id);
int ui_delete_all(file_location_t *location, unsigned char type, unsigned char string_id);
int ui_deleteplaylist(file_location_t *location, unsigned char type, unsigned char string_id);
int ui_directory(file_location_t *location, unsigned char type, unsigned char string_id);
int ui_playlist(file_location_t *location, unsigned char type, unsigned char string_id);
int ui_function_menu(function_menu_t *menu, const void (*callback)(int res_id));
int ui_slider(slider_t *slider, const void (*callback)(int res_id));
char ui_show_lock(char islock);
void ui_show_vol( unsigned char volume);
unsigned char Count_Byte(char *str,char language);
void Scroll(char *scrollstr, char language);
void ScrollInit( char * scrollstr, char language);
void ScrollString( char * scrollstr, unsigned char mode ,char language,region_t *scroll);
typedef struct
{
char mute:1;
char unmute:1;
char fm:1;
char linein:1;
char mic:1;
}mix_t;
typedef struct
{
char dac:1;
char fm:1;
char linein:1;
char mic:1;
char reserved:4;
}input_t;
typedef struct
{
unsigned short TimeMs;
unsigned char TimeSecond;
unsigned char TimeMinute;
unsigned char TimeHour;
}Full_time_t;
typedef struct
{
input_t input;
unsigned char mix;
}resource_t;
typedef struct
{
unsigned char status;
unsigned char gain;
unsigned char vor_time;
time_t total_time;
resource_t source;
}mp3_rec_status_t;
typedef mp3_rec_status_t wav_rec_status_t;
typedef mp3_rec_status_t ag4_rec_status_t;
typedef mp3_rec_status_t ag8_rec_status_t;
typedef enum
{
none,
rock,
pop,
classic,
soft,
jazz,
dbb,
user
}eq_t;
typedef struct
{
unsigned char status;
unsigned char signal;
unsigned char volume;
time_t total_time;
eq_t eq;
signed char speed;
}mp3_play_status_t;
typedef mp3_play_status_t wma_play_status_t;
typedef mp3_play_status_t music_play_status_t;
typedef mp3_play_status_t ogg_play_status_t;
typedef mp3_play_status_t ape_play_status_t;
typedef struct
{
unsigned char switchflag;
int RemainPlayCnt;
int originalPlayCnt;
date_t BeginDate;
time_t BeginTime;
date_t ExpDate;
time_t ExpTime;
int RemainTime;
int RemainStoreTime;
char DealOnClkBck;
}licensinf_t;
typedef enum
{
INF_NORMALWMA,
INF_DRMHVLICENSE,
INF_DRMNOLICENSE
}drm_mod_e;
typedef struct
{
drm_mod_e drmmode;
licensinf_t drminf;
}wma_inf_t;
typedef enum
{
Nor_open,
Nor_Break_open,
ABPlay_open
}Open_mod_t;
typedef enum
{
ClrABPoint,
SetAPoint,
SetBPoint,
ReturnApoint,
ABFinished
}SetABMode_t;
typedef struct
{
long breakPT;
long ApointSave;
long BpointSave;
unsigned char breakPTTime[15];
}breakPT_t;
typedef struct
{
char* filename;
breakPT_t* BreakPTSave;
}Open_param_t;
typedef struct
{
char bits;
char sample_rate;
char channel;
char bit_rate[3];
}audio_format_t;
typedef struct
{
unsigned char state;
unsigned char volume;
unsigned char vor_time;
time_t total_time;
signed char speed;
}wav_play_status_t;
typedef struct
{
unsigned char status;
unsigned short freq;
unsigned char station;
unsigned char station_count;
unsigned char mode;
unsigned char volume;
unsigned char stereo_status;
}fm_play_status_t;
typedef struct
{
unsigned char existflag;
unsigned char playmode;
int apeMusicCurNum;
int apeMusicMaxNum;
time_t curPartStartTime;
time_t curPartEndTime;
time_t curTime;
char curMusicName[31];
char curArtistName[31];
}cuefileinfo;
unsigned char mp3pSendCommand( unsigned char cmd, int param);
unsigned char mp3rSendCommand( unsigned char cmd, int param);
int mp3rProceed(void);
unsigned char wavpSendCommand( unsigned char cmd, int param);
unsigned char wavrSendCommand( unsigned char cmd, int param);
int wavrProceed(void);
unsigned char ag4pSendCommand( unsigned char cmd, int param);
unsigned char ag4rSendCommand( unsigned char cmd, int param);
int ag4rProceed(void);
unsigned char ag8pSendCommand( unsigned char cmd, int param);
unsigned char ag8rSendCommand( unsigned char cmd, int param);
int ag8rProceed(void);
unsigned char wmapSendCommand( unsigned char cmd, int param);
unsigned char oggpSendCommand( unsigned char cmd, int param);
unsigned char apepSendCommand( unsigned char cmd, int param);
unsigned char fmSendCommand( unsigned char cmd, int param);
typedef struct
{
long ClusterNo;
char FileName[12];
}STRU_BMkInfor;
typedef struct
{
int CurRecordNO;
int RecordCount;
STRU_BMkInfor BMkInfor[ 15 ];
int CheckSum;
}STRU_BookMarkHeard;
typedef struct
{
breakPT_t BKPTPara;
time_t BKPTTime;
}STRU_MusicBreakPoint;
typedef struct
{
int CurRecordNO;
int RecordCount;
STRU_MusicBreakPoint MusicBreakPoint[ 12 ];
int CheckSum;
}STRU_MusicBookMark;
unsigned char AddBookMarkItem(STRU_MusicBreakPoint *breakpt,file_location_t *curfile);
unsigned char GetBookMark(STRU_MusicBookMark *bookmark,file_location_t *curfile);
unsigned char CreateBookMarkFile();
unsigned char DeleteBookMarkItem(int SelIndex,file_location_t *curfile);
unsigned char DeleteBookMark(void);
int UI_BookMarkMenu(file_location_t *curfile, unsigned char mode, unsigned char LanID);
int UI_BookMark( unsigned char string_id);
const char sBmkFileNameA[]="BOOKMARKBMK";
const char sBmkRootA[]=": ";
unsigned int hBmkFileA;
unsigned char BmkIMKA_Reg;
char BMKFileDataBuffA[512];
unsigned char ReadBookMarkHeardA()
{
long CurDirBak;
BmkIMKA_Reg=input8(0x27);
output8(0x27,0);
CurDirBak=FS_GetCurDir();
FS_CD(sBmkRootA);
hBmkFileA=FS_FOpen(sBmkFileNameA, 0x0 );
FS_SetCurDir(CurDirBak);
if(hBmkFileA== 0 )
{
output8(0x27,BmkIMKA_Reg);
return 0 ;
}
FS_FRead(BMKFileDataBuffA,1,hBmkFileA);
return 1 ;
}
unsigned char GetBMkInforA(file_location_t *curfile, int *FileBKSecNo)
{
int CurRecNo;
if( ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->RecordCount> 15 )
((STRU_BookMarkHeard*)BMKFileDataBuffA) ->RecordCount=0;
if( ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->CurRecordNO>= 15 )
((STRU_BookMarkHeard*)BMKFileDataBuffA) ->CurRecordNO=0;
CurRecNo=0;
while(CurRecNo< ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->RecordCount)
{
if( ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->BMkInfor[CurRecNo].ClusterNo==curfile->ClusterNo)
{
if(strcmp( ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->BMkInfor[CurRecNo].FileName,curfile->filename)==0)
{
*FileBKSecNo=CurRecNo+1;
return 1 ;
}
}
CurRecNo++;
}
*FileBKSecNo= ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->CurRecordNO+1;
return 0 ;
}
void AddBMkInfor(file_location_t *curfile)
{
((STRU_BookMarkHeard*)BMKFileDataBuffA) ->BMkInfor[ ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->CurRecordNO].ClusterNo=curfile->ClusterNo;
memcpy(&( ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->BMkInfor[ ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->CurRecordNO].FileName),curfile->filename,12);
((STRU_BookMarkHeard*)BMKFileDataBuffA) ->CurRecordNO++;
if( ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->CurRecordNO== 15 )
((STRU_BookMarkHeard*)BMKFileDataBuffA) ->CurRecordNO=0;
if( ((STRU_BookMarkHeard*)BMKFileDataBuffA) ->RecordCount< 15 )
((STRU_BookMarkHeard*)BMKFileDataBuffA) ->RecordCount++;
FS_FWrite(BMKFileDataBuffA,1,hBmkFileA);
}
unsigned char AddBookMarkItem(STRU_MusicBreakPoint *breakpt,file_location_t *curfile)
{
int FileBKSecNo;
unsigned char bNewBookMark;
if(!ReadBookMarkHeardA())
return 0 ;
bNewBookMark= 0 ;
if(!GetBMkInforA(curfile,&FileBKSecNo))
{
AddBMkInfor(curfile);
bNewBookMark= 1 ;
}
if(!FS_FSeek(FileBKSecNo, 0 ,hBmkFileA))
{
FS_FClose(hBmkFileA);
output8(0x27,BmkIMKA_Reg);
return 0 ;
}
FS_FRead(BMKFileDataBuffA,1,hBmkFileA);
if(bNewBookMark)
{
((STRU_MusicBookMark*)BMKFileDataBuffA) ->CurRecordNO=0;
((STRU_MusicBookMark*)BMKFileDataBuffA) ->RecordCount=0;
}
memcpy(&( ((STRU_MusicBookMark*)BMKFileDataBuffA) ->MusicBreakPoint[ ((STRU_MusicBookMark*)BMKFileDataBuffA) ->CurRecordNO]),breakpt,sizeof(STRU_MusicBreakPoint));
( ((STRU_MusicBookMark*)BMKFileDataBuffA) ->CurRecordNO)++;
if( ((STRU_MusicBookMark*)BMKFileDataBuffA) ->CurRecordNO>= 12 )
((STRU_MusicBookMark*)BMKFileDataBuffA) ->CurRecordNO=0;
if( ((STRU_MusicBookMark*)BMKFileDataBuffA) ->RecordCount< 12 )
( ((STRU_MusicBookMark*)BMKFileDataBuffA) ->RecordCount)++;
FS_FSeek(FileBKSecNo, 0 ,hBmkFileA);
FS_FWrite(BMKFileDataBuffA,1,hBmkFileA);
FS_FClose(hBmkFileA);
output8(0x27,BmkIMKA_Reg);
return 1 ;
}
unsigned char GetBookMark(STRU_MusicBookMark *bookmark,file_location_t *curfile)
{
int FileBKSecNo;
if(!ReadBookMarkHeardA())
return 0 ;
if(!GetBMkInforA(curfile,&FileBKSecNo))
{
FS_FClose(hBmkFileA);
output8(0x27,BmkIMKA_Reg);
return 0 ;
}
if(!FS_FSeek(FileBKSecNo, 0 ,hBmkFileA))
{
FS_FClose(hBmkFileA);
output8(0x27,BmkIMKA_Reg);
return 0 ;
}
FS_FRead(BMKFileDataBuffA,1,hBmkFileA);
FS_FClose(hBmkFileA);
output8(0x27,BmkIMKA_Reg);
memcpy(bookmark,BMKFileDataBuffA,sizeof(STRU_MusicBookMark));
return 1 ;
}
unsigned char CreateBookMarkFile()
{
int SecCount;
long CurDirBak;
BmkIMKA_Reg=input8(0x27);
output8(0x27,0);
CurDirBak=FS_GetCurDir();
FS_CD(sBmkRootA);
hBmkFileA=FS_FOpen(sBmkFileNameA, 0x0 );
if(hBmkFileA!= 0 )
{
FS_FClose(hBmkFileA);
FS_SetCurDir(CurDirBak);
output8(0x27,BmkIMKA_Reg);
return 0 ;
}
FS_FRemove(sBmkFileNameA);
hBmkFileA=FS_FCreate(sBmkFileNameA);
FS_SetCurDir(CurDirBak);
if(hBmkFileA== 0 )
{
output8(0x27,BmkIMKA_Reg);
return 0 ;
}
memset(BMKFileDataBuffA,0,sizeof(BMKFileDataBuffA));
for(SecCount=0;SecCount<( 15 +1);SecCount++)
FS_FWrite(BMKFileDataBuffA,1,hBmkFileA);
FS_FClose(hBmkFileA);
output8(0x27,BmkIMKA_Reg);
return 1 ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -