📄 ui_lyric.s01
字号:
; 155. g_music_vars.MusicOpenMod = Nor_Break_open;
LD A,1
LD (g_music_vars+6),A
; 156. return RESULT_UI_STOP; //退回上一层
JP LWRD ?0100
; 157.
; 158. case AP_KEY_VOLADD | AP_KEY_UP: //下一屏歌词
?0028:
; 159. if (lyricGetNext(LyricStrBuf, sizeof(LyricStrBuf)))
LD C,88
LD DE,LyricStrBuf
LD A,BYTE3 lyricGetNext
LD HL,LWRD lyricGetNext
CALL LWRD ?0109
JR Z,?0033
?0029:
; 160. {
; 161. DisplayLyricStr(LyricStrBuf); //显示歌词内容
JR ?0101
?0030:
; 162. }
; 163. ExproFlag = TRUE;
; 164. g_2HZ_CNT = 0;
; 165. break;
?0031:
; 166.
; 167. case AP_KEY_VOLSUB | AP_KEY_UP: //上一屏歌词
; 168. if (lyricGetPrev(LyricStrBuf, sizeof(LyricStrBuf)))
CALL LWRD ?0108
JR Z,?0033
?0032:
; 169. {
; 170. DisplayLyricStr(LyricStrBuf); //显示歌词内容
?0101:
CALL LWRD ?0110
?0033:
; 171. }
; 172. ExproFlag = TRUE;
; 173. g_2HZ_CNT = 0;
LD HL,0
LD (g_2HZ_CNT),HL
LD (IX-2),1
; 174. break;
JP LWRD ?0024
?0034:
; 175.
; 176. case AP_KEY_MODE | AP_KEY_UP:
; 177. if (!KeyUpFlag)
XOR A
OR (IX-1)
JR NZ,?0036
?0035:
; 178. {
; 179. KeyUpFlag = TRUE;
LD (IX-1),1
; 180. break;
JP LWRD ?0024
?0036:
; 181. }
; 182. //SetStopInterface();
; 183. //RefreshMainScreen();
; 184. return NULL;
JP LWRD ?0093
; 185.
; 186. case AP_KEY_NEXT | AP_KEY_LONG: //快进
?0037:
; 187. PlayStatus = FFPlaySta;
LD A,3
LD (PlayStatus),A
; 188. musicpSendCommand(MC_STEP, 4);
LD C,4
JR ?0092
; 189. break;
?0038:
; 190.
; 191. case AP_KEY_PREV | AP_KEY_LONG: //快退
; 192. PlayStatus = FBPlaySta;
LD A,4
LD (PlayStatus),A
; 193. musicpSendCommand(MC_STEP, -4);
LD BC,65532
?0092:
CALL LWRD ?0104
; 194. break;
JP LWRD ?0024
?0039:
; 195.
; 196. case AP_KEY_NEXT | AP_KEY_UP: //快进
; 197. if (PlayStatus == PlaySta)
LD A,(PlayStatus)
DEC A
DEC A
JR NZ,?0041
?0040:
; 198. {
; 199. FadeOut(FALSE);
LD E,B
LD A,BYTE3 FadeOut
LD HL,LWRD FadeOut
CALL LWRD ?BANK_CALL_DIRECT_L08
; 200. 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
; 201. //main_ResShowPic(FMHEAD,0,107);
; 202. if ( g_result != 0 )
LD A,L
OR H
JR NZ,?0098
?0042:
; 203. {
; 204. return g_result;
; 205. }
?0043:
; 206. if ( !g_lyricflag )return NULL;
LD A,(g_lyricflag)
OR A
JR NZ,?0046
?0044:
JP LWRD ?0093
; 207. }
?0045:
; 208. else
?0041:
; 209. {
; 210. musicpSendCommand(MC_STEP, 0);
CALL LWRD ?0105
; 211. PlayStatus = PlaySta;
LD A,2
LD (PlayStatus),A
?0046:
; 212. }
; 213. break;
JR ?0024
?0047:
; 214.
; 215. case AP_KEY_PREV | AP_KEY_UP:
; 216. if (PlayStatus == PlaySta)
LD A,(PlayStatus)
DEC A
DEC A
JR NZ,?0049
?0048:
; 217. {
; 218. g_result = PrevMusicInPlay();
LD A,BYTE3 PrevMusicInPlay
LD HL,LWRD PrevMusicInPlay
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 219. //main_ResShowPic(FMHEAD,0,107);
; 220. if (g_result != 0) return g_result;
LD A,L
OR H
JR Z,?0051
?0050:
?0098:
JP LWRD ?0090
?0051:
; 221.
; 222. if (!g_lyricflag)return NULL;
LD A,(g_lyricflag)
OR A
JR NZ,?0024
?0052:
JP LWRD ?0093
; 223. //RefreshMainScreen();
; 224. }
?0053:
; 225. else
?0049:
; 226. {
; 227. musicpSendCommand(MC_STEP, 0);
CALL LWRD ?0105
; 228. PlayStatus = PlaySta;
LD A,2
LD (PlayStatus),A
?0054:
; 229. }
; 230. break;
JR ?0024
?0055:
; 231.
; 232. case AP_KEY_MODE | AP_KEY_HOLD: //MODE键没抬起时不响应
; 233. if (!KeyUpFlag)continue;
XOR A
OR (IX-1)
JR NZ,?0024
?0056:
JP LWRD ?0083
?0057:
; 234. break;
?0058:
; 235.
; 236.
; 237. case AP_MSG_SD_OUT:
; 238. if (g_music_vars.location.disk == 'H')
LD A,(g_music_vars+7)
CP 72
JR NZ,?0024
?0059:
; 239. {
; 240. musicpSendCommand(MC_STOP, NULL);
LD C,B
LD E,6
CALL LWRD ?0102
; 241. musicpSendCommand(MC_CLOSE, NULL);
CALL LWRD ?BANK_CALL_DIRECT_L08
; 242. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 243. DisplayErrMsg(CARDPULL);//显示卡拔出
LD DE,401
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
; 244. return RESULT_UI_STOP;
JR ?0099
; 245. }
?0060:
; 246. break;
?0061:
; 247.
; 248. default:
; 249. key = ap_handle_hotkey(key);
LD E,C
CALL LWRD ap_handle_hotkey
LD C,A
; 250. if (key == RESULT_REDRAW)need_draw = TRUE;
LD A,50
XOR C
JR NZ,?0063
?0062:
LD A,1
LD (need_draw),A
JR ?0024
?0063:
; 251. else if(key != 0) return key;
LD A,C
OR A
JR Z,?0024
?0065:
LD L,C
LD H,B
; 252. break;
JR ?0090
?0066:
?0064:
?0024:
; 253. } //switch(key)
; 254. musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,131
CALL LWRD ?0103
; 255. //wmapSendCommand(MC_GETSTATUS, (int)(& status_buf));
; 256.
; 257. if (status_buf.status == PLAYING_REACH_END)
LD A,(IX-10)
CP 6
JR NZ,?0072
?0067:
; 258. {
; 259. //PASS_KEY(0x11);
; 260. //g_result = DealMusicFileEndInLRC();
; 261. g_result = DealMusicFileEnd(1);
LD E,1
CALL LWRD ?0112
; 262.
; 263. if (g_result == RESULT_UI_STOP) return RESULT_UI_STOP;
JR NZ,?0070
?0069:
?0099:
JR ?0100
?0070:
; 264. if (!g_lyricflag)return NULL;
LD A,(g_lyricflag)
OR A
JR Z,?0093
?0071:
; 265. }
?0072:
?0068:
; 266.
; 267. if (status_buf.status == PLAYING_REACH_HEAD)
LD A,(IX-10)
CP 14
JR NZ,?0081
?0073:
; 268. {
; 269. //PASS_KEY(0x22);
; 270. if (PlayStatus == PlaySta)
LD A,(PlayStatus)
DEC A
DEC A
LD E,1
JR NZ,?0076
?0075:
; 271. {
; 272. DisInFBHead( 1 );//到头显示
LD A,BYTE3 DisInFBHead
LD HL,LWRD DisInFBHead
CALL LWRD ?BANK_CALL_DIRECT_L08
; 273. SelectCurMusic();
LD A,BYTE3 SelectCurMusic
LD HL,LWRD SelectCurMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
; 274. }
; 275. else
JR ?0081
?0076:
; 276. {
; 277. g_result = DealMusicFileEnd(1);
CALL LWRD ?0112
; 278. if (g_result == RESULT_UI_STOP) return RESULT_UI_STOP;
JR NZ,?0079
?0078:
?0100:
LD HL,102
JR ?0090
?0079:
; 279. if (!g_lyricflag)return NULL;
LD A,(g_lyricflag)
OR A
JR NZ,?0081
?0080:
?0093:
LD HL,0
; 280. }
?0090:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0081:
?0077:
?0074:
; 281. }
; 282.
; 283.
; 284. if (g_2HZ_CNT>ExproTimeDef)
LD BC,(g_2HZ_CNT)
LD HL,5
AND A
SBC HL,BC
JR NC,?0083
?0082:
; 285. {
; 286. ExproFlag = FALSE;
LD (IX-2),0
?0083:
?0013:
; 287. }
; 288.
; 289. } while ( (ExproFlag && (g_2HZ_CNT<=ExproTimeDef))
; 290. || (PlayStatus == FFPlaySta)
; 291. || (PlayStatus == FBPlaySta) );
XOR A
OR (IX-2)
JR Z,?0085
LD BC,(g_2HZ_CNT)
LD HL,5
SBC HL,BC
JP NC,?0010
?0085:
?0084:
LD A,(PlayStatus)
CP 3
JP Z,?0010
CP 4
JP Z,?0010
?0012:
; 292.
; 293.
; 294. GetNowTime();
LD A,BYTE3 GetNowTime
LD HL,LWRD GetNowTime
CALL LWRD ?BANK_CALL_DIRECT_L08
; 295. if (lyricQueryOutof(* (long * )RT_buf))
LD BC,(RT_buf+2)
LD DE,(RT_buf)
LD A,BYTE3 lyricQueryOutof
LD HL,LWRD lyricQueryOutof
CALL LWRD ?BANK_CALL_DIRECT_L08
INC L
DEC L
JR Z,?0089
?0088:
; 296. {
; 297. lyricSeekFor(LyricStrBuf, sizeof(LyricStrBuf), * (long * )RT_buf);
LD HL,(RT_buf+2)
PUSH HL
LD HL,(RT_buf)
PUSH HL
CALL LWRD ?0111
POP AF
POP AF
; 298. DisplayLyricStr(LyricStrBuf);
CALL LWRD ?0110
?0089:
; 299. }
; 300.
; 301. }
; 302. //while(1)
; 303. } //ui_lyric
JP LWRD ?0010
?0102:
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,0
LD E,2
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
RET
?0110:
LD DE,LyricStrBuf
LD A,BYTE3 DisplayLyricStr
LD HL,LWRD DisplayLyricStr
JP LWRD ?BANK_CALL_DIRECT_L08
?0111:
LD C,88
LD DE,LyricStrBuf
LD A,BYTE3 lyricSeekFor
LD HL,LWRD lyricSeekFor
JP LWRD ?BANK_CALL_DIRECT_L08
?0112:
LD A,BYTE3 DealMusicFileEnd
LD HL,LWRD DealMusicFileEnd
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
LD A,102
XOR L
OR H
RET
; 304.
; 305.
; 306.
RSEG APD_UI_LRC
LyricStrBuf:
DEFS 88
RSEG APD_UIA_LRC
RT_buf:
DEFS 4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -