⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ui_play.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0089  77                LD      (HL),A
   \   008A  23                INC     HL
   \   008B  36FF              LD      (HL),255
    106                          need_draw = TRUE;
   \   008D  3E01              LD      A,1
   \   008F  320000            LD      (need_draw),A
   \   0092  1820              JR      ?0014
   \   0094            ?0017:
    107                      }
    108                      else if (key != 0)
   \   0094  AF                XOR     A
   \   0095  DDB6F6            OR      (IX-10)
   \   0098  281A              JR      Z,?0014
   \   009A            ?0019:
    109                      {
    110                          return key;
   \   009A  1812              JR      ?0026
    111                      }
   \   009C            ?0020:
   \   009C            ?0018:
    112                      break;
   \   009C            ?0021:
    113          
    114                  case AP_KEY_NULL://没按键
    115                      break;
   \   009C            ?0022:
    116          
    117                  default:
    118                      //调用其他按键处理,只有对应的键按了后才进入(此函数在别的BANK)
    119                      key = DealKeyForPlayStatus(key);
   \   009C  3E00              LD      A,BYTE3 DealKeyForPlayStatus
   \   009E  210000            LD      HL,LWRD DealKeyForPlayStatus
   \   00A1  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    120                      //g_result = 0;
    121                      if (key != NULL)
   \   00A4  2C                INC     L
   \   00A5  2D                DEC     L
   \   00A6  280C              JR      Z,?0014
   \   00A8            ?0023:
    122                      {
    123                          if (key == RESULT_UI_STOP)
   \   00A8  7D                LD      A,L
   \   00A9  FE66              CP      102
   \   00AB  CA5E01            JP      Z,?0153
   \   00AE            ?0025:
    124                          {
    125                              return NULL;
    126                          }
   \   00AE            ?0026:
    127                          else
    128                          {
    129                              return key;
   \   00AE  6F                LD      L,A
   \   00AF  2600              LD      H,0
    130                          }
   \   00B1  C36101            JP      LWRD ?0055
   \   00B4            ?0024:
    131                      }
    132                      break;
   \   00B4            ?0014:
    133                  }
    134          
    135                  musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
   \   00B4  210200            LD      HL,2
   \   00B7  39                ADD     HL,SP
   \   00B8  CD7101            CALL    LWRD ?0170
    136                  //FlashMotived(PowerValue);
    137          
    138                  DealForABGap(& status_buf);
   \   00BB  210200            LD      HL,2
   \   00BE  39                ADD     HL,SP
   \   00BF  EB                EX      DE,HL
   \   00C0  3E00              LD      A,BYTE3 DealForABGap
   \   00C2  216905            LD      HL,LWRD DealForABGap
   \   00C5  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    139          
    140                  if (status_buf.status == PLAYING_ERROR)
   \   00C8  DD7EF8            LD      A,(IX-8)
   \   00CB  FE0C              CP      12
   \   00CD  200B              JR      NZ,?0028
   \   00CF            ?0027:
    141                  {
    142                      Deal_Error_Playing();
   \   00CF  3E00              LD      A,BYTE3 Deal_Error_Playing
   \   00D1  210000            LD      HL,LWRD Deal_Error_Playing
   \   00D4  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    143          //            wma_inf_t drminfbuff; 
    144          //            if (musicpSendCommand(MC_GETINF, (int)&drminfbuff))
    145          //            {
    146          //                
    147          //                if (drminfbuff.drmmode == INF_DRMNOLICENSE)
    148          //                {
    149          //                    DisplayErrMsg1(NOLICENS);//显示无licens   
    150          //                }
    151          //            }
    152          //
    153          //            else if ( (g_music_vars.location.disk == 'H')
    154          //                    && (DRV_DetectUD(1) != 0x20) )
    155          //            {
    156          //                DisplayErrMsg(CARDPULL);//显示卡拔出
    157          //            }
    158          //            else
    159          //            {
    160          //                DisplayErrMsg(MFMTERR);//显示格式错
    161          //            }
    162          //            musicpSendCommand(MC_STOP, NULL);
    163          //            musicpSendCommand(MC_CLOSE, NULL); 
    164          //            SetFullInterface();
    165                      return NULL;
   \   00D7  C35E01            JP      LWRD ?0153
    166                  }
   \   00DA            ?0028:
    167          
    168          
    169                  if (status_buf.status == PLAYING_REACH_END)
   \   00DA  FE06              CP      6
   \   00DC  200A              JR      NZ,?0032
   \   00DE            ?0029:
    170                  {
    171                      g_result = DealMusicFileEnd(0);
   \   00DE  CD6701            CALL    LWRD ?0169
   \   00E1  220000            LD      (g_result),HL
    172                      if ( g_result != NULL )
   \   00E4  7D                LD      A,L
   \   00E5  B4                OR      H
   \   00E6  202B              JR      NZ,?0156
   \   00E8            ?0031:
    173                      {
    174                          return g_result;
    175                      }
   \   00E8            ?0032:
   \   00E8            ?0030:
    176                  }
    177          
    178                  //注,下面是为解决一种特殊情况而做出的特殊处理,在一般情况下可不分到头,到尾
    179                  //     标志,统一用 PLAYING_REACH_END 标志就可以了,因为可通过 PlayStatus
    180                  //     这个标志判断是快进还是快退,就可知道是到了文件头还是文件尾,但如果在
    181                  //     快退到差不多到头时停止快退,这时已发停止命令,但由于模块层在接收这个
    182                  //     命令后到真正停止快退要有一个时间差,如在这个时间差中到文件头,如还是
    183                  //     用 PLAYING_REACH_END 标志那就分不清是到头还是到尾,所以要加一个标志
    184                  //     PLAYING_REACH_HEAD 表示是到头。
    185                  if (status_buf.status == PLAYING_REACH_HEAD)
   \   00E8  DD7EF8            LD      A,(IX-8)
   \   00EB  FE0E              CP      14
   \   00ED  2026              JR      NZ,?0039
   \   00EF            ?0033:
    186                  {
    187                      if (PlayStatus == PlaySta)
   \   00EF  3A0000            LD      A,(PlayStatus)
   \   00F2  3D                DEC     A
   \   00F3  3D                DEC     A
   \   00F4  2013              JR      NZ,?0036
   \   00F6            ?0035:
    188                      {
    189                          DisInFBHead( 0 );//到头显示
   \   00F6  5F                LD      E,A
   \   00F7  3E00              LD      A,BYTE3 DisInFBHead
   \   00F9  210000            LD      HL,LWRD DisInFBHead
   \   00FC  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    190                          SelectCurMusic();
   \   00FF  3E00              LD      A,BYTE3 SelectCurMusic
   \   0101  210000            LD      HL,LWRD SelectCurMusic
   \   0104  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    191                      }
    192                      else
   \   0107  180C              JR      ?0039
   \   0109            ?0036:
    193                      {
    194                          g_result = DealMusicFileEnd(0);
   \   0109  CD6701            CALL    LWRD ?0169
   \   010C  220000            LD      (g_result),HL
    195                          if ( g_result != NULL )
   \   010F  7D                LD      A,L
   \   0110  B4                OR      H
   \   0111  2802              JR      Z,?0039
   \   0113            ?0038:
    196                          {
    197                              return g_result;
   \   0113            ?0156:
    198                          }
   \   0113  184C              JR      ?0055
   \   0115            ?0039:
   \   0115            ?0037:
   \   0115            ?0034:
    199                      }
    200                  }
    201          
    202                  if (RePlayStatus == WaitSetBPointForAB)
   \   0115  3A0000            LD      A,(RePlayStatus)
   \   0118  3D                DEC     A
   \   0119  3D                DEC     A
   \   011A  2022              JR      NZ,?0049
   \   011C            ?0040:
    203                  {
    204                      if (g_comval.ReplayMode)
   \   011C  3A0D00            LD      A,(g_comval+13)
   \   011F  B7                OR      A
   \   0120  281C              JR      Z,?0049
   \   0122            ?0042:
    205                      {
    206                          if ( (status_buf.signal == SIGNAL_REACH_V)
    207                              && (g_ABMinTimeCNT == 0) )//要大于AB最小时间
   \   0122  DD46F9            LD      B,(IX-7)
   \   0125  05                DEC     B
   \   0126  2016              JR      NZ,?0049
   \   0128  3A0000            LD      A,(g_ABMinTimeCNT)
   \   012B  B7                OR      A
   \   012C  2010              JR      NZ,?0049
   \   012E            ?0047:
   \   012E            ?0046:
   \   012E            ?0044:
    208                          {
    209                              if ( musicpSendCommand(MC_SETA_B, SetBPoint) ) //set_v
   \   012E  0E02              LD      C,2
   \   0130  1E41              LD      E,65
   \   0132  CD7501            CALL    LWRD ?0171
   \   0135  2C                INC     L
   \   0136  2D                DEC     L
   \   0137  2805              JR      Z,?0049
   \   0139            ?0048:
    210                              {
    211                                  g_AVSetFlag = TRUE;//标志是用AV的方式设置B点的
   \   0139  3E01              LD      A,1
   \   013B  320000            LD      (g_AVSetFlag),A
   \   013E            ?0049:
   \   013E            ?0045:
   \   013E            ?0043:
   \   013E            ?0041:
    212                              }
    213                          }
    214                      }
    215                  }
    216          
    217                  if(return_to_play==0)
   \   013E  3A0000            LD      A,(return_to_play)
   \   0141  B7                OR      A
   \   0142  200D              JR      NZ,?0051
   \   0144            ?0050:
    218                     g_result = RealDisplay();
   \   0144  3E00              LD      A,BYTE3 RealDisplay
   \   0146  217D01            LD      HL,LWRD RealDisplay
   \   0149  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   014C  220000            LD      (g_result),HL
    219                  else
   \   014F  1804              JR      ?0052
   \   0151            ?0051:
    220                     return_to_play=0;
   \   0151  AF                XOR     A
   \   0152  320000            LD      (return_to_play),A
   \   0155            ?0052:
    221          
    222                  if(g_result == RESULT_UI_STOP)
   \   0155  2A0000            LD      HL,(g_result)
   \   0158  3E66              LD      A,102
   \   015A  AD                XOR     L
   \   015B  B4                OR      H
   \   015C  2006              JR      NZ,?0054
   \   015E            ?0053:
    223                  {
    224                      return 0;
   \   015E            ?0153:
   \   015E  210000            LD      HL,0
    225                  }
   \   0161            ?0055:
   \   0161  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0164            ?0054:
    226          
    227              }/* while(1) */
    228          
    229          }
   \   0164  C32500            JP      LWRD ?0003
   \   0167            ?0169:
   \   0167  1E00              LD      E,0
   \   0169  3E00              LD      A,BYTE3 DealMusicFileEnd
   \   016B  210000            LD      HL,LWRD DealMusicFileEnd
   \   016E  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0171            ?0170:

⌨️ 快捷键说明

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