ui_stop_menu.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 1,223 行 · 第 1/3 页
S01
1,223 行
NAME ui_stop_menu(17)
RSEG AP_UI_MNU_STOP(0)
RSEG IDATA0(0)
RSEG CDATA0(0)
RSEG APC_UI_MNU_STOP(0)
EXTERN BankSwitch
EXTERN ClearScreen
EXTERN ClearTimePara
EXTERN DRV_ActiveUD
EXTERN DRV_DetectUD
EXTERN DeleteAllSelSegment
EXTERN DisplayErrInfor
EXTERN DisplayErrMsg
EXTERN MusicEditEndTime
EXTERN MusicEditStartTime
EXTERN MusicEdit_SelSeg
EXTERN NoCardCaseInStopMenu
PUBLIC PLFileName
EXTERN ResShowMultiString
EXTERN ResShowPic
EXTERN SetDealCommamd
PUBLIC UI_DeleteAllSelSegment
PUBLIC UI_InsertRec
PUBLIC UI_InsertSeg
PUBLIC UI_SongComp
EXTERN ap_get_message
PUBLIC dir_string
PUBLIC dir_string_card
EXTERN fselGetLocation
EXTERN fselGetNextFile
EXTERN fselInit
EXTERN fselPlayListExit
EXTERN fselSetMode
EXTERN g_DiskStateFlag
EXTERN g_comval
EXTERN g_currentMusicType
EXTERN g_file_list_total
EXTERN g_music_vars
EXTERN list
EXTERN m_mp3deOpenparam
EXTERN musicpSendCommand
EXTERN ui_delete_Music
EXTERN ui_directory
EXTERN ui_licensinf
EXTERN ui_popup_list
PUBLIC ui_stop_menu
EXTERN ?CLZ80B_4_04_L00
EXTERN ?SS_CMP_L02
EXTERN ?S_S_SWITCH_L06
EXTERN ?C_V_SWITCH_L06
EXTERN ?S_V_SWITCH_L06
EXTERN ?BANK_CALL_DIRECT_L08
EXTERN ?BANK_LEAVE_DIRECT_L08
EXTERN ?BANK_FAST_LEAVE_L08
EXTERN ?ENT_AUTO_DIRECT_L09
RSEG AP_UI_MNU_STOP
UI_InsertSeg:
; 1. /*
; 2. *******************************************************************************
; 3. * ACTOS AP
; 4. * This program demostrates how to build an AP
; 5. *
; 6. * (c) Copyright Actions Co,Ld.
; 7. *
; 8. * $Id: ui_stop_menu.c,v 1.2 2006/07/14 06:46:20 tangwh Exp $
; 9. *******************************************************************************
; 10. */
; 11. #include "ap_music.h"
; 12.
; 13.
; 14. extern int test_cow1;
; 15.
; 16. extern STRU_SelMusicSegment MusicEdit_SelSeg;
; 17. extern time_t MusicEditStartTime;
; 18. extern time_t MusicEditEndTime;
; 19. extern HANDLE m_Mp3deFileHandle;
; 20. extern Open_param_t* m_mp3deOpenparam;
; 21.
; 22. #pragma memory=constseg(APC_UI_MNU_STOP)
; 23.
; 24. const char PLFileName[5][12] = {"MYLIST A3L","ARTIST A3L","ALBUM A3L","GENRE A3L","COMPOSERA3L"
; 25. };
; 26.
; 27. //const WORD dir_string_card[6+9] =
; 28. const WORD dir_string_card[5] =
; 29. {
; 30. /*MSTOP6, MSTOP7,MSTOP8, MSTOP9, MSTOP10, MSTOP11,*/ MSTOP1, MSTOP2, MSTOP3, MSTOP4, /*10 insseg*//*MPLAY9,*//*insrec*//*MPLAY11,SONGCOM,DELSELLS,*/MSTOP5
; 31. };
; 32.
; 33. //const WORD dir_string[6+8] =
; 34. const WORD dir_string[4] =
; 35. {
; 36. /*MSTOP6, MSTOP7,MSTOP8, MSTOP9, MSTOP10, MSTOP11,*/ MSTOP1, MSTOP3, MSTOP4, /*9 insseg*//*MPLAY9,*//*insrec*//*MPLAY11,SONGCOM,DELSELLS,*/MSTOP5
; 37. };
; 38.
; 39. #pragma memory=default
; 40. extern void make_dirname(void);
; 41. int ui_licensinf(int string_id);
; 42. int ui_delete_Music( int type );
; 43. int NoCardCaseInStopMenu(int active);
; 44. void UI_DeleteAllSelSegment(BYTE lang_id);
; 45. #pragma codeseg(AP_UI_MNU_STOP)
; 46.
; 47. int UI_InsertSeg(void)
; 48. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65534
; 49. uchar IMK_Reg;
; 50.
; 51. if(g_currentMusicType!=Music_MP3)
LD A,(g_currentMusicType)
DEC A
JR NZ,?0005
?0002:
; 52. return RESULT_IGNORE;
?0003:
; 53.
; 54. IMK_Reg=input8(0x27);
IN A,(39)
LD (IX-2),A
; 55. output8(0x27,0);
XOR A
OUT (39),A
; 56. MusicEdit_SelSeg.StartSec=m_mp3deOpenparam->BreakPTSave->breakPT;
LD HL,(m_mp3deOpenparam)
INC HL
INC HL
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD C,(HL)
INC HL
LD B,(HL)
EX DE,HL
LD (MusicEdit_SelSeg),HL
LD (MusicEdit_SelSeg+2),BC
; 57. MusicEdit_SelSeg.location=& g_music_vars.location;
LD HL,g_music_vars+7
LD (MusicEdit_SelSeg+8),HL
; 58. MusicEdit_SelSeg.StartTime=&MusicEditStartTime;
LD HL,MusicEditStartTime
LD (MusicEdit_SelSeg+10),HL
; 59. MusicEdit_SelSeg.EndTime=&MusicEditEndTime;
LD HL,MusicEditEndTime
LD (MusicEdit_SelSeg+12),HL
; 60. output8(0x27,IMK_Reg);
LD A,(IX-2)
OUT (39),A
; 61.
; 62. if(SetDealCommamd(&MusicEdit_SelSeg,MUSICEDIT_CMD_INSSEL,NULL))
LD HL,0
PUSH HL
LD BC,4
CALL LWRD ?0133
POP AF
INC L
DEC L
JR Z,?0005
?0004:
; 63. {
; 64. return RESULT_MUSICEDIT;// return to musicedit ap
LD HL,15
; 65. }
JR ?0006
?0005:
; 66. return RESULT_IGNORE;
LD HL,52
; 67. }
?0006:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0133:
LD DE,MusicEdit_SelSeg
?0134:
LD A,BYTE3 SetDealCommamd
LD HL,LWRD SetDealCommamd
JP LWRD ?BANK_CALL_DIRECT_L08
UI_InsertRec:
; 68.
; 69. int UI_InsertRec(void)
; 70. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65534
; 71. uchar IMK_Reg;
; 72.
; 73. if(g_currentMusicType!=Music_MP3)
LD A,(g_currentMusicType)
DEC A
JR NZ,?0010
?0007:
; 74. return RESULT_IGNORE;
?0008:
; 75.
; 76. IMK_Reg=input8(0x27);
IN A,(39)
LD (IX-2),A
; 77. output8(0x27,0);
XOR A
OUT (39),A
; 78. MusicEdit_SelSeg.StartSec=m_mp3deOpenparam->BreakPTSave->breakPT;
LD HL,(m_mp3deOpenparam)
INC HL
INC HL
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD C,(HL)
INC HL
LD B,(HL)
EX DE,HL
LD (MusicEdit_SelSeg),HL
LD (MusicEdit_SelSeg+2),BC
; 79. MusicEdit_SelSeg.location=& g_music_vars.location;
LD HL,g_music_vars+7
LD (MusicEdit_SelSeg+8),HL
; 80. MusicEdit_SelSeg.StartTime=&MusicEditStartTime;
LD HL,MusicEditStartTime
LD (MusicEdit_SelSeg+10),HL
; 81. MusicEdit_SelSeg.EndTime=&MusicEditEndTime;
LD HL,MusicEditEndTime
LD (MusicEdit_SelSeg+12),HL
; 82. output8(0x27,IMK_Reg);
LD A,(IX-2)
OUT (39),A
; 83.
; 84. if(SetDealCommamd(&MusicEdit_SelSeg,MUSICEDIT_CMD_INSREC,NULL))
LD HL,0
PUSH HL
LD BC,5
CALL LWRD ?0133
POP AF
INC L
DEC L
JR Z,?0010
?0009:
; 85. {
; 86. return RESULT_MUSICEDIT;// return to musicedit ap
LD HL,15
; 87. }
JR ?0011
?0010:
; 88. return RESULT_IGNORE;
LD HL,52
; 89. }
?0011:
JP LWRD ?BANK_LEAVE_DIRECT_L08
UI_SongComp:
; 90.
; 91. int UI_SongComp(void)
; 92. {
PUSH BC
PUSH DE
LD HL,0
PUSH HL
LD BC,6
EX DE,HL
CALL LWRD ?0134
POP AF
INC L
DEC L
JR Z,?0013
; 93. if(SetDealCommamd(NULL,MUSICEDIT_CMD_COMFILE,NULL))
?0012:
; 94. {
; 95. return RESULT_MUSICEDIT;// return to musicedit ap
LD HL,15
; 96. }
JR ?0014
?0013:
; 97. return RESULT_IGNORE;
LD HL,52
; 98. }
?0014:
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
ui_stop_menu:
; 99.
; 100. int ui_stop_menu( void )
; 101. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65532
; 102. int result;
; 103. bool tmpflag = FALSE;
; 104. static char StopMenuactive=0; //保持选中菜单的序号
; 105.
; 106. ClearScreen(NULL);
LD DE,0
CALL LWRD ClearScreen
; 107.
; 108. list.headid = STOPMENU;
LD HL,395
LD (list+6),HL
; 109. if (DRV_DetectUD(1) == 0x20)
LD E,H
CALL LWRD ?0135
JR NZ,?0017
?0016:
; 110. {
; 111. //有卡时的显示
; 112. list.total = sizeof(dir_string_card) / 2;
LD HL,5
LD (list+2),HL
; 113.
; 114. list.strid = dir_string_card;
LD HL,dir_string_card
LD (list),HL
; 115. }
; 116. else
JR ?0020
?0017:
; 117. {
; 118. //无卡时的显示
; 119. list.total = sizeof(dir_string) / 2;
LD HL,4
LD (list+2),HL
; 120. list.strid = dir_string;
LD HL,dir_string
LD (list),HL
; 121. if (StopMenuactive >= list.total)
LD BC,(list+2)
LD HL,(?0015)
LD H,0
CALL LWRD ?SS_CMP_L02
JR C,?0020
?0019:
; 122. {
; 123. StopMenuactive--;
LD HL,?0015
DEC (HL)
?0020:
?0018:
; 124. }
; 125. }
; 126. list.string_id = g_comval.langid;
LD A,(g_comval+12)
LD (list+8),A
; 127. list.active = StopMenuactive;
LD BC,(?0015)
LD B,0
LD (list+4),BC
; 128.
; 129. CLEAR_WATCHDOG();
IN A,(78)
SET 3,A
OUT (78),A
; 130. result = ui_popup_list(&list, NULL);
LD C,B
PUSH BC
PUSH BC
LD DE,list
LD A,BYTE3 ui_popup_list
LD HL,LWRD ui_popup_list
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
LD (IX-4),L
LD (IX-3),H
; 131. StopMenuactive = list.active;
LD A,(list+4)
LD (?0015),A
; 132.
; 133. if (result != 0)
LD A,L
OR H
JP NZ,?0111
?0021:
; 134. {
; 135. return result;
; 136. }
?0022:
; 137.
; 138. //如下加快其他项的退出速度
; 139.
; 140. if (DRV_DetectUD(1) == 0x20)
CALL LWRD ?0136
JR NZ,?0024
?0023:
; 141. {
; 142. // 有卡
; 143. // DRV_DetectUD() 之后必须加上DRV_ActiveUD(),
; 144. // 否则系统无法对卡进行读写操作.
; 145. if(g_music_vars.location.disk == 'H')
LD A,(g_music_vars+7)
CP 72
LD C,1
JR NZ,?0026
?0025:
; 146. DRV_ActiveUD(1, MODE_SLOW);
LD E,C
JR ?0109
; 147. else
?0026:
; 148. DRV_ActiveUD(0, MODE_SLOW);
LD E,B
?0109:
CALL LWRD DRV_ActiveUD
?0027:
; 149. switch (list.active)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?