ui_stop.lst

来自「MP3 整个 SDK」· LST 代码 · 共 1,133 行 · 第 1/4 页

LST
1,133
字号
    273                          UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ;
    274                          need_draw = TRUE;
   \   039A            ?0080:
    275          
    276                          //清除多出的HOLD消息,防止按键停了还跳几曲
    277                          while(ap_get_message() != 0);
   \   039A  CD0000            CALL    LWRD ap_get_message
   \   039D  B7                OR      A
   \   039E  20FA              JR      NZ,?0080
   \   03A0            ?0081:
    278                          break;
   \   03A0            ?0079:
   \   03A0  C36604            JP      LWRD ?0027
   \   03A3            ?0082:
   \   03A3            ?0084:
    279          
    280                      case AP_KEY_NEXT | AP_KEY_UP:
    281                          while(ap_get_message() != 0);
   \   03A3  CD0000            CALL    LWRD ap_get_message
   \   03A6  B7                OR      A
   \   03A7  20FA              JR      NZ,?0082
   \   03A9            ?0085:
    282                          break;
   \   03A9            ?0083:
   \   03A9  C36604            JP      LWRD ?0027
   \   03AC            ?0086:
    283          
    284                      case AP_KEY_NEXT:
    285                      case AP_KEY_NEXT | AP_KEY_HOLD:
    286                          musicpSendCommand(MC_CLOSE, NULL);
   \   03AC  4F                LD      C,A
   \   03AD  47                LD      B,A
   \   03AE  1E02              LD      E,2
   \   03B0  CDA701            CALL    LWRD ?0143
    287                          g_result = ChangeMusic(Music_Next, Stop_key);
   \   03B3  0E00              LD      C,0
   \   03B5  1E03              LD      E,3
    288                          FSELSetMode( FSEL_ALL_REPEATALL );      
    289                          FSELGetNext(g_music_vars.location.filename);
    290                          fselGetLocation(& g_music_vars.location);
    291                           GetInformation();
   \   03B7  CD6201            CALL    LWRD ?0141
    292                           memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
    293                         FSELGetPrev(g_music_vars.location.filename);
    294                         fselGetLocation(& g_music_vars.location);
    295                         FSELSetMode(g_music_vars.repeat_mode);
    296                         GetInformation(); //取文件信息
   \   03BA  CDE800            CALL    LWRD ?0137
    297                          musicpSendCommand(MC_OPEN, (int)& g_Openparam);
    298                          g_result = musicpSendCommand(MC_LOAD, NULL);
    299                          CaltimeFlag = FALSE;//等待计时间
    300                          WaitForCaltimeCNT = 0;
    301          
    302                          SetFullInterface();
    303                          UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic  ;
    304          
    305                          need_draw = TRUE;
   \   03BD            ?0088:
    306                          while(ap_get_message() != 0);
   \   03BD  CD0000            CALL    LWRD ap_get_message
   \   03C0  B7                OR      A
   \   03C1  20FA              JR      NZ,?0088
   \   03C3            ?0089:
    307                          break;
   \   03C3            ?0087:
   \   03C3  C36604            JP      LWRD ?0027
   \   03C6            ?0090:
    308          
    309                      case AP_KEY_VOLSUB:
    310                      case AP_KEY_VOLADD:
    311          
    312                          slider.min = 0;
   \   03C6  6F                LD      L,A
   \   03C7  67                LD      H,A
   \   03C8  220200            LD      (slider+2),HL
    313                          slider.max = 31;
   \   03CB  2E1F              LD      L,31
   \   03CD  220400            LD      (slider+4),HL
    314                          slider.value = g_music_vars.volume;
   \   03D0  ED4B0000          LD      BC,(g_music_vars)
   \   03D4  79                LD      A,C
   \   03D5  07                RLCA
   \   03D6  9F                SBC     A,A
   \   03D7  47                LD      B,A
   \   03D8  ED430600          LD      (slider+6),BC
    315                          slider.step = 1;
   \   03DC  2E01              LD      L,1
   \   03DE  220800            LD      (slider+8),HL
    316                          slider.title=CHANGEVO;
   \   03E1  21E901            LD      HL,489
   \   03E4  220000            LD      (slider),HL
    317                          slider.string_id=g_comval.langid;
   \   03E7  3A0C00            LD      A,(g_comval+12)
   \   03EA  320A00            LD      (slider+10),A
    318                          ui_auto_update = FALSE;
   \   03ED  AF                XOR     A
   \   03EE  320000            LD      (ui_auto_update),A
    319          
    320                          //在停止状态时调音量没必要实时改变IO号的值
    321                          g_result = ui_slider(& slider, NULL);
   \   03F1  4F                LD      C,A
   \   03F2  C5                PUSH    BC
   \   03F3  69                LD      L,C
   \   03F4  61                LD      H,C
   \   03F5  E5                PUSH    HL
   \   03F6  110000            LD      DE,slider
   \   03F9  3E00              LD      A,BYTE3 ui_slider
   \   03FB  210000            LD      HL,LWRD ui_slider
   \   03FE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0401  F1                POP     AF
   \   0402  F1                POP     AF
   \   0403  220000            LD      (g_result),HL
    322          
    323                          g_music_vars.volume = slider.value;//退出时再改变音量的值
   \   0406  3A0600            LD      A,(slider+6)
   \   0409  320000            LD      (g_music_vars),A
    324                          ui_auto_update = TRUE;
   \   040C  3E01              LD      A,1
   \   040E  320000            LD      (ui_auto_update),A
    325                          if (g_result != 0)return g_result;
   \   0411  7D                LD      A,L
   \   0412  B4                OR      H
   \   0413  282F              JR      Z,?0122
   \   0415            ?0091:
   \   0415            ?0116:
   \   0415  2A0000            LD      HL,(g_result)
   \   0418  1847              JR      ?0109
   \   041A            ?0092:
    326                          SetFullInterface();
    327                          need_draw = TRUE;
    328                          break;
   \   041A            ?0093:
    329          
    330                      case AP_MSG_SD_OUT:
    331                          if (g_music_vars.location.disk == 'H')
   \   041A  3A0700            LD      A,(g_music_vars+7)
   \   041D  FE48              CP      72
   \   041F  2045              JR      NZ,?0027
   \   0421            ?0094:
    332                          {
    333                              g_music_vars.location.disk = 'C';
   \   0421  3E43              LD      A,67
   \   0423  320700            LD      (g_music_vars+7),A
    334          
    335                              DisplayErrMsg(CARDPULL);//显示卡拔出
   \   0426  119101            LD      DE,401
   \   0429  3E00              LD      A,BYTE3 DisplayErrMsg
   \   042B  210000            LD      HL,LWRD DisplayErrMsg
   \   042E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    336                              PlayStatus=StopSta;
   \   0431  AF                XOR     A
   \   0432  320000            LD      (PlayStatus),A
    337                              return RESULT_CURR_UI;
   \   0435            ?0115:
   \   0435  6F                LD      L,A
   \   0436  67                LD      H,A
    338          
    339                          }
   \   0437  1828              JR      ?0109
   \   0439            ?0095:
    340                          break;
   \   0439            ?0096:
    341          
    342                      case AP_MSG_SD_IN:
    343                          break;
   \   0439            ?0097:
    344          
    345          
    346                      default:
    347                          key = ap_handle_hotkey(key);
   \   0439  CD0000            CALL    LWRD ap_handle_hotkey
   \   043C  DD77F8            LD      (IX-8),A
    348                          if (key == RESULT_REDRAW)
   \   043F  FE32              CP      50
   \   0441  2015              JR      NZ,?0099
   \   0443            ?0098:
    349                          {
    350                              SetFullInterface();
   \   0443            ?0123:
   \   0443  AF                XOR     A
   \   0444            ?0122:
   \   0444  320000            LD      (ui_auto_update),A
   \   0447  210000            LD      HL,UpDisplayFlag
   \   044A  7E                LD      A,(HL)
   \   044B  F6C1              OR      193
   \   044D  77                LD      (HL),A
   \   044E  23                INC     HL
   \   044F  36FF              LD      (HL),255
    351                              need_draw = TRUE;
   \   0451  3E01              LD      A,1
   \   0453  320000            LD      (need_draw),A
   \   0456  180E              JR      ?0027
   \   0458            ?0099:
    352                          }
    353                          else if (key != 0)
   \   0458  AF                XOR     A
   \   0459  DDB6F8            OR      (IX-8)
   \   045C  2808              JR      Z,?0027
   \   045E            ?0101:
    354                          {
    355                              return key;
   \   045E  6F                LD      L,A
   \   045F  2600              LD      H,0
    356                          }
   \   0461            ?0109:
   \   0461  FDE1              POP     IY
   \   0463  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0466            ?0102:
   \   0466            ?0100:
    357                          break;
   \   0466            ?0027:
    358                  } //switch(key)
    359                  if (g_ScrollFlag)
   \   0466  3A0000            LD      A,(g_ScrollFlag)
   \   0469  B7                OR      A
   \   046A  280E              JR      Z,?0104
   \   046C            ?0103:
    360                  {
    361                      g_ScrollFlag = FALSE;
   \   046C  AF                XOR     A
   \   046D  320000            LD      (g_ScrollFlag),A
    362                      UpDisplayFlag = UpDisplayFlag | up_musicbattery;
   \   0470  210000            LD      HL,UpDisplayFlag
   \   0473  CBFE              SET     7,(HL)
    363                      need_draw = TRUE;
   \   0475  3E01              LD      A,1
   \   0477  320000            LD      (need_draw),A
   \   047A            ?0104:
    364                  }
    365                   if ((!CaltimeFlag)) // && (WaitForCaltimeCNT >= CaltimeCNT_def))
   \   047A  3A0100            LD      A,(CaltimeFlag)
   \   047D  B7                OR      A
   \   047E  2016              JR      NZ,?0108
   \   0480            ?0105:
    366                  {
    367                      musicpSendCommand(MC_CALTIME, NULL);
   \   0480  CDA301            CALL    LWRD ?0145
    368                      if(PlayStatus!=PauseSta)
   \   0483  3A0000            LD      A,(PlayStatus)
   \   0486  3D                DEC     A
   \   0487  280D              JR      Z,?0108
   \   0489            ?0107:
    369                         {
    370                         UpDisplayFlag = UpDisplayFlag | up_musiccurrenttime | up_musicbitrate|up_musictotaltime;
   \   0489  210000            LD      HL,UpDisplayFlag
   \   048C  23                INC     HL
   \   048D  7E                LD      A,(HL)
   \   048E  F623              OR      35
   \   0490  77                LD      (HL),A
    371                         need_draw = TRUE;
   \   0491  3E01              LD      A,1
   \   0493  320000            LD      (need_draw),A
   \   0496            ?0108:
   \   0496            ?0106:
    372                         }
    373                    }
    374          
    375              } //while(1)
    376          }
   \   0496  C3D201            JP      LWRD ?0015
    377          
    378          
   \   0000                    RSEG    UDATA0
   \   0000            WaitForCaltimeCNT:
   \   0001                    DEFS    1
   \   0001            CaltimeFlag:
   \   0002                    DEFS    1
   \   0000                    RSEG    IDATA0
   \   0000            testram:
   \   0001                    DEFS    1
   \   0000                    RSEG    CDATA0
   \   0000  00                DEFB    0
   \   0001                    END

Errors: none
Warnings: none
Code size: 1177
Constant size: 1
Static variable size: Data(3) Iram(0)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?