📄 ui_play.s01
字号:
CP 2
JR C,?0073
CP 5
JR NC,?0073
?0070:
; 196. {
; 197. case PlaySta:
; 198. case FFPlaySta:
; 199. case FBPlaySta:
; 200. g_result = DealMusicFileEnd(0);
LD E,B
LD A,BYTE3 DealMusicFileEnd
LD HL,LWRD DealMusicFileEnd
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 201. if ( g_result != NULL )
LD A,L
OR H
JR Z,?0078
?0071:
; 202. {
; 203. return g_result;
JR ?0116
; 204. }
?0072:
; 205. need_draw = TRUE;
; 206. break;
?0073:
CP 5
JR NZ,?0076
; 207. case NextPlaySta:
; 208. g_result = ToNextMusic(Play_key);
LD E,2
LD A,BYTE3 ToNextMusic
LD HL,LWRD ToNextMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 209. if ( g_result != NULL )
LD A,L
OR H
JR Z,?0078
?0074:
; 210. {
; 211. return g_result;
JR ?0116
; 212. }
?0075:
; 213. need_draw = TRUE;
; 214. break;
?0076:
CP 6
JR NZ,?0079
; 215. case PrevPlaySta:
; 216. g_result = PrevMusicInPlay();
LD A,BYTE3 PrevMusicInPlay
LD HL,LWRD PrevMusicInPlay
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 217. if ( g_result != NULL )
LD A,L
OR H
JR NZ,?0116
?0077:
; 218. {
; 219. return g_result;
; 220. }
?0078:
; 221. need_draw = TRUE;
LD A,1
LD (need_draw),A
; 222. break;
JP LWRD ?0003
?0079:
; 223.
; 224. default:
; 225. AmvDecSetCMD(MC_CLOSE,(int )&g_amv_vars.amvfilebreakpoint);
LD BC,g_amv_vars+48
LD E,2
CALL LWRD ?0130
; 226. return g_result;
?0116:
LD HL,(g_result)
; 227. }
?0080:
POP AF
POP AF
POP AF
POP AF
POP IX
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0131:
LD BC,0
LD E,6
?0130:
LD A,BYTE3 AmvDecSetCMD
LD HL,LWRD AmvDecSetCMD
JP LWRD ?BANK_CALL_DIRECT_L08
?0069:
?0068:
; 228.
; 229. }
; 230.
; 231.
; 232. }/* while(1) */
; 233.
; 234. }
ShowNowTime:
; 235.
; 236. /*
; 237. ********************************************************************************
; 238. * void Show_Bitrate( void )
; 239. *
; 240. * Description : 显示比特率
; 241. *
; 242. * Arguments : void
; 243. *
; 244. * Returns : void
; 245. *
; 246. * Notes :
; 247. *
; 248. ********************************************************************************
; 249. */
; 250.
; 251. void ShowNowTime(bool para)
; 252. {
PUSH BC
PUSH IY
PUSH IX
LD IX,0
ADD IX,SP
PUSH DE
LD HL,65526
ADD HL,SP
LD SP,HL
; 253. long int totaltime,nowtime;
; 254. int num,i;
; 255.
; 256. if(g_rSetPlayStatus)
LD A,(g_rSetPlayStatus)
OR A
JR Z,?0082
?0081:
; 257. {
; 258. para = FALSE;
; 259. g_rSetPlayStatus = FALSE;
XOR A
LD (g_rSetPlayStatus),A
LD (IX-2),A
?0082:
; 260. }
; 261.
; 262. nowtime = g_amv_vars.amvfilebreakpoint.TimeHou*3600+g_amv_vars.amvfilebreakpoint.TimeMin*60
; 263. + g_amv_vars.amvfilebreakpoint.TimeSec;
LD BC,(g_amv_vars+53)
LD B,A
LD DE,60
CALL LWRD ?S_MUL_L02
PUSH DE
LD BC,(g_amv_vars+54)
LD B,A
LD DE,3600
CALL LWRD ?S_MUL_L02
EX DE,HL
POP DE
ADD HL,DE
LD BC,(g_amv_vars+52)
LD B,A
ADD HL,BC
LD A,H
RLCA
SBC A,A
LD C,A
LD B,C
LD (IX-10),L
LD (IX-9),H
LD (IX-8),C
LD (IX-7),B
; 264. totaltime = Totaltime.hour*3600+Totaltime.minute*60+Totaltime.second;
LD DE,(Totaltime+1)
LD D,0
LD BC,60
CALL LWRD ?S_MUL_L02
PUSH DE
LD BC,(Totaltime)
LD B,0
LD DE,3600
CALL LWRD ?S_MUL_L02
EX DE,HL
POP DE
ADD HL,DE
LD BC,(Totaltime+2)
LD B,0
ADD HL,BC
LD A,H
RLCA
SBC A,A
LD C,A
LD B,C
; 265. num=(nowtime*161)/totaltime;
PUSH BC
PUSH HL
LD HL,0
PUSH HL
LD L,161
PUSH HL
LD C,(IX-8)
LD B,(IX-7)
LD L,(IX-10)
LD H,(IX-9)
CALL LWRD ?L_MUL_L03
CALL LWRD ?SL_DIV_L03
LD (IX-12),L
LD (IX-11),H
; 266. if(num>161) //防止串烧时出现当前时间大于总时间的bug
LD C,L
LD B,H
LD HL,161
OR L
SBC HL,BC
JP PO,?0126
XOR H
?0126:
JP P,?0084
?0083:
; 267. num=0;
XOR A
LD (IX-12),A
LD (IX-11),A
?0084:
; 268. itoa_2(g_amv_vars.amvfilebreakpoint.TimeHou, temp_buffer);
LD BC,temp_buffer
LD DE,(g_amv_vars+54)
CALL LWRD ?0132
; 269. strcat(temp_buffer,":");
; 270. itoa_2(g_amv_vars.amvfilebreakpoint.TimeMin, & temp_buffer[3]);
LD DE,(g_amv_vars+53)
LD A,BYTE3 itoa_2
LD HL,LWRD itoa_2
CALL LWRD ?BANK_CALL_DIRECT_L08
; 271. strcat(temp_buffer,":");
LD DE,?0085
LD HL,temp_buffer
CALL LWRD ?STRCAT_L11
; 272. itoa_2(g_amv_vars.amvfilebreakpoint.TimeSec, & temp_buffer[6]);
LD BC,temp_buffer+6
LD DE,(g_amv_vars+52)
LD A,BYTE3 itoa_2
LD HL,LWRD itoa_2
CALL LWRD ?BANK_CALL_DIRECT_L08
; 273. ui_show_d(temp_buffer,0);
LD C,0
LD DE,temp_buffer
LD A,BYTE3 ui_show_d
LD HL,LWRD ui_show_d
CALL LWRD ?BANK_CALL_DIRECT_L08
; 274. if(!para)
XOR A
OR (IX-2)
LD A,(g_volcounter)
JR NZ,?0087
?0086:
; 275. {
; 276. if(g_volcounter==0)
OR A
JR NZ,?0090
?0088:
; 277. {
; 278. main_ResShowPic(GUAGEBG1, 0, 106); //刷新进度条背景
LD C,106
PUSH BC
LD C,A
LD DE,154
CALL LWRD ?0133
POP AF
; 279. for(i=0;i<num;i++)
LD IY,0
?0091:
LD C,(IX-12)
LD B,(IX-11)
PUSH IY
POP HL
OR 128
SBC HL,BC
JP PO,?0127
XOR H
?0127:
JP P,?0090
?0092:
; 280. main_ResShowPic(GUAGE1,8+i,109);
LD C,109
PUSH BC
PUSH IY
POP HL
LD A,L
ADD A,8
LD C,A
LD DE,153
CALL LWRD ?0133
POP AF
; 281. }
INC IY
JR ?0091
?0090:
?0089:
; 282.
; 283. itoa_2(Totaltime.hour, temp_buffer);
LD BC,temp_buffer
LD DE,(Totaltime)
CALL LWRD ?0132
; 284. strcat(temp_buffer,":");
; 285. itoa_2(Totaltime.minute, & temp_buffer[3]);
LD DE,(Totaltime+1)
LD A,BYTE3 itoa_2
LD HL,LWRD itoa_2
CALL LWRD ?BANK_CALL_DIRECT_L08
; 286. strcat(temp_buffer,":");
LD DE,?0085
LD HL,temp_buffer
CALL LWRD ?STRCAT_L11
; 287. itoa_2(Totaltime.second, & temp_buffer[6]);
LD BC,temp_buffer+6
LD DE,(Totaltime+2)
LD A,BYTE3 itoa_2
LD HL,LWRD itoa_2
CALL LWRD ?BANK_CALL_DIRECT_L08
; 288. ui_show_d(temp_buffer,1);
LD C,1
LD DE,temp_buffer
LD A,BYTE3 ui_show_d
LD HL,LWRD ui_show_d
CALL LWRD ?BANK_CALL_DIRECT_L08
; 289. }
; 290. else
JR ?0096
?0087:
; 291. {
; 292. if(g_volcounter==0)
OR A
JR NZ,?0096
?0095:
; 293. {
; 294. main_ResShowPic(GUAGE1,8+num,109); //防止出现断点
LD C,109
PUSH BC
LD A,(IX-12)
ADD A,8
LD C,A
LD DE,153
CALL LWRD ?0133
POP AF
?0096:
?0094:
; 295. }
; 296. }
; 297. }
LD SP,IX
POP IX
POP IY
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0132:
LD A,BYTE3 itoa_2
LD HL,LWRD itoa_2
CALL LWRD ?BANK_CALL_DIRECT_L08
LD DE,?0085
LD HL,temp_buffer
CALL LWRD ?STRCAT_L11
LD BC,temp_buffer+3
RET
?0134:
LD E,(HL)
LD D,0
LD HL,165
ADD HL,DE
EX DE,HL
?0133:
LD A,BYTE3 main_ResShowPic
LD HL,LWRD main_ResShowPic
JP LWRD ?BANK_CALL_DIRECT_L08
Show_Bitrate:
; 298.
; 299. //----------------
; 300.
; 301. //-----------------------------------
; 302.
; 303. void Show_Bitrate( void )
; 304. {
PUSH BC
PUSH DE
PUSH AF
PUSH AF
PUSH AF
; 305. audio_format_t pFormat;
; 306.
; 307. pFormat.bit_rate[0] = 0;
LD HL,3
ADD HL,SP
LD (HL),0
; 308. pFormat.bit_rate[1] = 8;
INC HL
LD (HL),8
; 309. pFormat.bit_rate[2] = 8;
INC HL
LD (HL),8
; 310.
; 311. main_ResShowPic(MBIT0+pFormat.bit_rate[0],POS_BITRATE,POSY_BITRATE);
LD C,4
PUSH BC
LD C,9
DEC HL
DEC HL
CALL LWRD ?0134
POP AF
; 312. main_ResShowPic(MBIT0+pFormat.bit_rate[1],POS_BITRATE+6,POSY_BITRATE);
LD C,4
PUSH BC
LD C,15
LD HL,6
ADD HL,SP
CALL LWRD ?0134
POP AF
; 313. main_ResShowPic(MBIT0+pFormat.bit_rate[2],POS_BITRATE+12,POSY_BITRATE);
LD C,4
PUSH BC
LD C,21
LD HL,7
ADD HL,SP
CALL LWRD ?0134
POP AF
; 314. }
POP HL
POP HL
POP HL
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
InitLcmDeviceInfor:
; 315.
; 316.
; 317. int InitLcmDeviceInfor(ColorLcmInfor *infor)
; 318. {
PUSH IX
PUSH DE
POP IX
; 319. infor->LcmWidth=CSTNPixelWidth; //set width;
EX DE,HL
LD (HL),176
; 320. infor->LcmHeigh=CSTNPixelHeight; //set height
LD (IX+1),132
; 321. infor->RScale=5; //set color number
LD (IX+2),5
; 322. infor->GScale=6;
LD (IX+3),6
; 323. infor->BScale=5;
LD (IX+4),5
; 324. infor->RGBOrder=0; // set the order
LD (IX+5),0
; 325. return 0;
LD HL,0
; 326. }
POP IX
JP LWRD ?BANK_FAST_LEAVE_L08
ToNextMusic:
; 327.
; 328.
; 329.
; 330. int ToNextMusic( Music_sel_mod_t mod )
; 331. {
PUSH BC
PUSH DE
; 332. output8(0x4e,input8(0x4e)|0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 333. g_result = ChangeMusic(Music_Next, mod);
LD C,E
LD E,3
LD A,BYTE3 ChangeMusic
LD HL,LWRD ChangeMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
LD H,0
LD (g_result),HL
; 334. if(!g_result)
LD A,L
OR A
JR NZ,?0098
?0097:
; 335. {
; 336. return RESULT_UI_STOP;//回到停止界面
LD L,102
; 337. }
JR ?0099
?0098:
; 338. GetInformation(); //取文件信息
LD A,BYTE3 GetInformation
LD HL,LWRD GetInformation
CALL LWRD ?BANK_CALL_DIRECT_L08
; 339. return NULL;
LD HL,0
; 340. }
?0099:
POP AF
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
PrevMusicInPlay:
; 341.
; 342.
; 343. int PrevMusicInPlay(void)
; 344. {
PUSH BC
PUSH DE
; 345.
; 346. g_result = ChangeMusic(Music_Prev, Play_key);
LD C,2
LD E,4
LD A,BYTE3 ChangeMusic
LD HL,LWRD ChangeMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
LD H,0
LD (g_result),HL
; 347. if(!g_result)
LD A,L
OR A
JR NZ,?0101
?0100:
; 348. {
; 349. return RESULT_UI_STOP;//回到停止界面
LD L,102
; 350. }
JR ?0102
?0101:
; 351. GetInformation(); //取文件信息
LD A,BYTE3 GetInformation
LD HL,LWRD GetInformation
CALL LWRD ?BANK_CALL_DIRECT_L08
; 352. return NULL;
LD HL,0
; 353. }
?0102:
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
SetAmvWin:
; 354.
; 355. ////////////////////////// Amv设窗
; 356. void SetAmvWin(void)
; 357. {
PUSH DE
; 358. SetWindow(&AmvRegion);
LD DE,AmvRegion
CALL LWRD SetWindow
; 359. }
POP DE
JP LWRD ?BANK_FAST_LEAVE_L08
; 360. ///////////////////////
; 361.
RSEG CSTR
?0085:
DEFB ':'
DEFB 0
RSEG UDATA0
Dscinf:
DEFS 6
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -