ui_stop_menu.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 1,223 行 · 第 1/3 页
S01
1,223 行
LD DE,(list+4)
CALL LWRD ?S_V_SWITCH_L06
DEFW 6
DEFW 5
DEFW 10
DEFW 11
DEFW 12
DEFW 13
DEFW 14
DEFW ?0036
DEFW ?0123
DEFW ?0033
DEFW ?0040
DEFW ?0039
DEFW ?0038
DEFW ?0029
?0029:
; 150. {
; 151. case 5://licens informations
; 152. ui_licensinf(g_comval.langid);
LD DE,(g_comval+12)
LD D,0
LD A,BYTE3 ui_licensinf
LD HL,LWRD ui_licensinf
CALL LWRD ?BANK_CALL_DIRECT_L08
; 153. return RESULT_IGNORE;
JR ?0119
; 154.
; 155. case 10:
?0030:
; 156. result=UI_InsertSeg();
; 157. return result;
; 158. case 11:
?0031:
; 159. result=UI_InsertRec();
; 160. return result;
; 161. case 12:
?0032:
; 162. result=UI_SongComp();
; 163. return result;
; 164. case 13://delete all sel list
?0033:
; 165. UI_DeleteAllSelSegment(g_comval.langid);
CALL LWRD ?0138
; 166. return RESULT_IGNORE;
JR ?0042
; 167. case 14://exit
?0034:
; 168. return RESULT_IGNORE;
; 169. }
?0028:
; 170. }
; 171. else
?0024:
; 172. {
; 173. //无卡
; 174. switch (list.active)
LD DE,(list+4)
CALL LWRD ?S_S_SWITCH_L06
DEFW 5
DEFW 9
DEFW ?0036
DEFW ?0037
DEFW ?0036
DEFW ?0036
DEFW ?0036
DEFW ?0038
DEFW ?0039
DEFW ?0040
DEFW ?0041
DEFW ?0123
?0037:
; 175. {
; 176. case 5://licens informations
; 177. ui_licensinf(g_comval.langid);
LD DE,(g_comval+12)
LD D,B
LD A,BYTE3 ui_licensinf
LD HL,LWRD ui_licensinf
CALL LWRD ?BANK_CALL_DIRECT_L08
; 178. return RESULT_IGNORE;
JR ?0123
; 179.
; 180. case 9:
?0038:
; 181. result=UI_InsertSeg();
LD A,BYTE3 UI_InsertSeg
LD HL,LWRD UI_InsertSeg
JR ?0127
; 182. return result;
; 183. case 10:
?0039:
; 184. result=UI_InsertRec();
LD A,BYTE3 UI_InsertRec
LD HL,LWRD UI_InsertRec
JR ?0127
; 185. return result;
; 186. case 11:
?0040:
; 187. result=UI_SongComp();
LD A,BYTE3 UI_SongComp
LD HL,LWRD UI_SongComp
?0127:
CALL LWRD ?BANK_CALL_DIRECT_L08
; 188. return result;
; 189. case 12://delete all sel list
JP LWRD ?0086
?0041:
; 190. UI_DeleteAllSelSegment(g_comval.langid);
CALL LWRD ?0138
; 191. return RESULT_IGNORE;
?0119:
JR ?0123
; 192. case 13://exit
?0042:
; 193. return RESULT_IGNORE;
JR ?0123
; 194. }
?0036:
?0035:
; 195. }
; 196.
; 197.
; 198. BankSwitch((unsigned long)FSELInit >> 16);
LD B,0
LD E,BYTE3 fselInit
LD C,B
CALL LWRD BankSwitch
; 199. fselGetLocation(& g_music_vars.location);
CALL LWRD ?0139
; 200.
; 201. if (g_music_vars.location.disk == 'H')
LD A,(g_music_vars+7)
CP 72
JR NZ,?0046
?0043:
; 202. //&& (menu.active != 0) )
; 203. {
; 204. //因为在控件 ui_function_menu 中不好检测卡拔出,所以这里再测一次
; 205. if (DRV_DetectUD(1) != 0x20)
CALL LWRD ?0136
JR Z,?0046
?0045:
; 206. {
; 207. DisplayErrMsg(CARDPULL);//显示卡拔出
CALL LWRD ?0140
; 208. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 209. //return RESULT_SD_OUT;
; 210. return RESULT_IGNORE;
?0123:
LD HL,52
; 211. }
JP LWRD ?0086
?0046:
?0044:
; 212. }
; 213.
; 214. musicpSendCommand(MC_CLOSE, NULL);
LD E,2
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
; 215. /*
; 216. if (list.active < 5)
; 217. {
; 218. //前面调用PLAYLIST控件选中对应的PLAYLIST
; 219. if (g_music_vars.fselmod == FSEL_TYPE_COMMONDIR)
; 220. {
; 221. //dir -> playlist
; 222. FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_REPEATALL, FSEL_TYPE_PLAYLIST, g_music_vars.location.disk);//初始化playlist
; 223. g_music_vars.fselmod = FSEL_TYPE_PLAYLIST;
; 224. if (!fselPlayListEnt(PLFileName[list.active]))
; 225. {
; 226. listenterr:
; 227. //不能进入PLAYLIST的情况
; 228. FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_REPEATALL, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);//初始化文件选择器
; 229. FSELGetNext(g_music_vars.location.filename);
; 230. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
; 231. result = RESULT_IGNORE;
; 232. }
; 233. else
; 234. {
; 235. //有PLAYLIST的情况
; 236. if (fselGetLocation(&g_music_vars.location))
; 237. {
; 238. result = ui_playlist(&g_music_vars.location, DIRECTORY_MUSIC,
; 239. g_comval.langid);
; 240. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
; 241. if (result == RESULT_IGNORE)
; 242. {
; 243. goto listenterr;
; 244. }
; 245. else
; 246. {
; 247. FSELGetNext(g_music_vars.location.filename);
; 248. }
; 249. }
; 250. }
; 251.
; 252.
; 253. }
; 254.
; 255. else
; 256. {
; 257. bool tmpflag = FALSE;
; 258. //从 playlist -> playlist
; 259. if (list.active != g_music_vars.play_listmod)
; 260. {
; 261. if (!fselPlayListEnt(PLFileName[list.active]))
; 262. {
; 263. listenterr1:
; 264. //不能进入PLAYLIST的情况
; 265. FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_REPEATALL, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);//初始化文件选择器
; 266. FSELGetNext(g_music_vars.location.filename);
; 267. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
; 268. g_music_vars.play_listmod = mlistnor;//改为普通目录模式
; 269. result = RESULT_IGNORE;
; 270. goto Lab_dir;
; 271. }
; 272.
; 273. tmpflag = TRUE;//调过 fselplaylistent 函数后要调用GETNEXT
; 274. }
; 275. else
; 276. {
; 277. //当选中模式与原来模式相同时
; 278. fselSetLocation(&g_music_vars.location);
; 279. }
; 280.
; 281. if (fselGetLocation(&g_music_vars.location))
; 282. {
; 283. result = ui_playlist(&g_music_vars.location, DIRECTORY_MUSIC,
; 284. g_comval.langid);
; 285. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
; 286. if ( result != RESULT_IGNORE )
; 287. {
; 288. FSELGetNext(g_music_vars.location.filename);
; 289. }
; 290. else
; 291. {
; 292. if ( tmpflag == TRUE) //(menu.active != g_music_vars.play_listmod)
; 293. {
; 294. goto listenterr1;
; 295. }
; 296. }
; 297. }
; 298. }
; 299. Lab_dir:
; 300.
; 301. fselGetLocation(&g_music_vars.location);
; 302.
; 303. if ((result == 0) || (result == RESULT_IGNORE))
; 304. {
; 305. //记录当前选中列表的类型,因为
; 306. g_music_vars.play_listmod = list.active;
; 307. }
; 308. }
; 309. else
; 310. {
; 311. */
; 312. //后面是以前的目录及删除选择
; 313. if (DRV_DetectUD(1) == 0x20)
CALL LWRD ?0136
LD DE,(list+4)
JP NZ,?0048
?0047:
; 314. {
; 315. //有卡的情况
; 316. switch (list.active)
CALL LWRD ?S_S_SWITCH_L06
DEFW 0
DEFW 4
DEFW ?0080
DEFW ?0050
DEFW ?0057
DEFW ?0074
DEFW ?0079
?0050:
; 317. {
; 318.
; 319.
; 320. case 0: //主目录
; 321. if (g_music_vars.location.disk == 'H'||g_music_vars.fselmod ==FSEL_TYPE_USERPL)
LD A,(g_music_vars+7)
CP 72
JR Z,?0053
LD A,(g_music_vars+81)
DEC A
DEC A
JR NZ,?0052
?0053:
?0054:
?0051:
; 322. {
; 323. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
XOR A
LD (g_music_vars+81),A
; 324. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 325. FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
LD C,A
PUSH BC
LD C,0
PUSH BC
CALL LWRD ?0141
POP AF
POP AF
; 326. g_file_list_total = g_music_vars.file_list_total_flash;
LD HL,(g_music_vars+86)
LD (g_file_list_total),HL
; 327. g_music_vars.file_list_type = 0xff;
LD A,255
LD (g_music_vars+92),A
; 328. fselGetLocation(&g_music_vars.location);
CALL LWRD ?0139
?0052:
; 329. }
; 330.
; 331. result = ui_directory(& g_music_vars.location, DIRECTORY_MUSIC, g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
CALL LWRD ?0145
POP AF
; 332. FSELSetMode(FSEL_ALL_SEQUENCE);
CALL LWRD ?0146
; 333. if (result == 0)
JR NZ,?0056
?0055:
; 334. {
; 335. //当选中目录后用普通模式播放
; 336. g_music_vars.play_listmod = mlistnor;
LD A,5
LD (g_music_vars+80),A
; 337. g_music_vars.file_list_type = 0xff;
LD A,255
LD (g_music_vars+92),A
?0056:
; 338. //musicpSendCommand(MC_CLOSE, NULL);
; 339. }
; 340. break;
JP LWRD ?0081
?0057:
; 341.
; 342. case 1: //插卡目录
; 343. //PASS_KEY(0x12);
; 344. if (g_music_vars.location.disk == 'C'||g_music_vars.fselmod ==FSEL_TYPE_USERPL)
LD A,(g_music_vars+7)
CP 67
JR Z,?0060
LD A,(g_music_vars+81)
DEC A
DEC A
JR NZ,?0059
?0060:
?0061:
?0058:
; 345. {
; 346. //PASS_KEY(0x13);
; 347. g_music_vars.location.disk = 'H';
LD A,72
LD (g_music_vars+7),A
; 348. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
XOR A
LD (g_music_vars+81),A
; 349. result=FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
LD HL,g_music_vars+7
LD C,(HL)
PUSH BC
LD C,A
PUSH BC
CALL LWRD ?0141
POP AF
POP AF
LD H,0
LD (IX-4),L
LD (IX-3),H
; 350. if(!result)
LD A,L
OR A
JR NZ,?0063
?0062:
; 351. {
; 352. g_DiskStateFlag=g_DiskStateFlag&ClrCardOKFlag_def;
LD HL,g_DiskStateFlag
RES 3,(HL)
; 353. g_music_vars.location.disk == 'C';
; 354. DisplayErrInfor(CREADERR);//显示卡错
LD DE,630
LD A,BYTE3 DisplayErrInfor
LD HL,LWRD DisplayErrInfor
CALL LWRD ?BANK_CALL_DIRECT_L08
; 355. break;
JP LWRD ?0081
?0063:
; 356. }
; 357. g_file_list_total = g_music_vars.file_list_total_card;
LD HL,(g_music_vars+88)
LD (g_file_list_total),HL
; 358. g_music_vars.file_list_type = 0xff;
LD A,255
LD (g_music_vars+92),A
; 359. g_DiskStateFlag=g_DiskStateFlag|SetCardOKFlag_def;
LD HL,g_DiskStateFlag
SET 3,(HL)
; 360. fselGetLocation(&g_music_vars.location);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?