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

📄 videoplayer_main.c

📁 C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码
💻 C
📖 第 1 页 / 共 2 页
字号:
                                break;
                                

                     }
                     break;
 
                 case KEYID_MODE:
                      API_OsSetCurrentTask(TASKID_POWEROFF);
                      break;                               
          }
          API_OsPendEvent(EVID_KEY_KEEP_DOWN);
        }

        if(API_OsCheckEventOccur(EVID_KEY_UP))
        {
         API_OsReleaseEvent(EVID_KEY_UP);
         switch(video_state)
         {
          case BF_STATE:
          case FF_STATE:
          {
                API_VideoRelease();
                //API_LcmPutSysImage(IMG_BUTTON_PLAY,POS_MUSPLY_STATE_X,POS_MUSPLY_STATE_Y);
                video_state = PLAY_STATE;
          }
          break;
          case  LAST_STATE:
          {
                current_song_no--;
                if(current_song_no == 0)
                 current_song_no = Files;
                API_VideoSetFile(video_format,current_song_no,FF_ID_AUTO);
                API_VideoSetFrame(0);
                API_VideoStop();
                
          }
          break;
          case  NEXT_STATE:
          {

                current_song_no++;
                if(current_song_no == Files+1)
                 current_song_no = 1;
                API_VideoSetFile(video_format,current_song_no,FF_ID_AUTO);
                API_VideoSetFrame(0);
                API_VideoStop();
          }
          break;
          case MODE_STATE:
          {
              if( (API_VideoGetThreadState() == TS_PLAY) || (API_VideoGetThreadState() == TS_PAUSE))
              {
               API_VideoStop(); 
              }
              else
              {
               // show video browser BG
               API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_VIDEOPLAYER);
               API_SysWriteValue(RAM_SHARING_ADR,VID_PAINT_FLAG,3); 
               API_OsSetCurrentTask(TASKID_VIDEOBROWSER);              
              }
                
          }
         }

         API_OsPendEvent(EVID_KEY_UP);
        }

        // receive event form audio thread
        if(API_OsCheckEventOccur(EVID_VID_THD_RESPONSE))
        {
          API_OsReleaseEvent(EVID_VID_THD_RESPONSE);
          thd_state = API_VideoGetThreadState();
          //API_LcmShowNumber(thd_state,0,0,1);
          switch(thd_state)
          {
                case TS_PLAY:
                        if(API_SysReadValue(RAM_SHARING_ADR,PAUSE_VIDEO))
                        {
                         API_VideoPause();
                         API_SysWriteValue(RAM_SHARING_ADR,PAUSE_VIDEO,0);
                        }
                        else                        
                         API_VideoVolumeAdjust(volume*15);
                        //API_VideoPause();
                        video_state = PLAY_STATE;
                        API_SysWriteValue2B(RAM_SHARING_ADR,CUR_FILE_L,current_song_no);
                        break;

                case TS_STOP:
                        //change another song
                        if(video_state == MODE_STATE)
                        {
                         // show video browser BG
                         API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_VIDEOPLAYER);
                         API_SysWriteValue(RAM_SHARING_ADR,VID_PAINT_FLAG,3); 
                         API_OsSetCurrentTask(TASKID_VIDEOBROWSER);              
                        }
                        else
                        {
                         video_play();
                        }
                        break;
                        
                        
                case TS_PAUSE:
                        video_state = PAUSE_STATE;
                        break;

                case TS_PLAY_ER:
                        //reload MPL lib
                        API_SysLoadMediaLib();
                        // set hardware volume
                        API_SysSetHardwareVolume(0,0); // DAC set 0
                        API_SysSetHardwareVolume(4,10); // Mixer set 10
                        //set mixer output
                        API_SysMixerOutputSelection(MIXER_DAC); 

                        _show_error_message_box();
                        video_state = ERROR_STATE;
                        counter_2hz = 0;
                        break;

                case TS_FILEEND:

                        video_state = STOP_STATE;
                        current_song_no++;
                        if(current_song_no == Files+1)
                         current_song_no = 1;
                        API_VideoSetFile(video_format,current_song_no,FF_ID_AUTO);
                        API_VideoSetFrame(0);
                        video_play();

                        //API_LcmShowString("TS_FILEEND",0,0);
                        break;

                case TS_FF:
                        //API_LcmPutSysImage(IMG_BUTTON_PREVIOUS,POS_MUSPLY_STATE_X,POS_MUSPLY_STATE_Y);                
                        video_state = FF_STATE;
                        break;
                
                case TS_BF:
                        //API_LcmPutSysImage(IMG_BUTTON_REWIND,POS_MUSPLY_STATE_X,POS_MUSPLY_STATE_Y);                
                        video_state = BF_STATE;
                        break;
                default:
                        break;
          }
          API_OsPendEvent(EVID_VID_THD_RESPONSE);
        }

        if(API_OsCheckEventOccur(EVID_UPDATE_SD))
        {
         //API_OsReleaseEvent(EVID_UPDATE_SD);
         API_OsSetCurrentTask(TASKID_CHANGESOURCE);                            
         //API_OsPendEvent(EVID_UPDATE_SD);
        }

        if(API_OsCheckEventOccur(EVID_BT_2HZ))
        {
         API_OsReleaseEvent(EVID_BT_2HZ);

          //don't play next video until error message box display for 2 sec
          if(video_state == ERROR_STATE)
          {
           counter_2hz++;
           if(counter_2hz == 4)
           {
                current_song_no++;
                if(current_song_no == Files+1)
                 current_song_no = 1;
                API_VideoSetFile(video_format,current_song_no,FF_ID_AUTO);
                API_VideoSetFrame(0);
                if( (API_VideoGetThreadState() == TS_PLAY_ER) || (API_VideoGetThreadState() == TS_STOP) )
                {
                 video_play();
                }
                else
                {
                 API_MusicStop();
                }
           }
          }

         API_OsPendEvent(EVID_BT_2HZ);
        }
        
        if (API_OsCheckEventOccur(EVID_VBUS_PLUGIN))
        {              
         API_OsReleaseEvent(EVID_VBUS_PLUGIN);
         if(API_SysGetUSBSource() == VBUS_SRC_USB_ON_LINE)
         {
                uint32 frame_no;

                if(API_MusicGetThreadState() == TS_PLAY || API_MusicGetThreadState() == TS_PAUSE)
                {
                 API_SysWriteValue2B(RAM_SHARING_ADR,B_SONG_FILE_L,current_song_no);
                 API_MusicGetFrame(&frame_no);
                 API_SysWriteValue4B(RAM_SHARING_ADR,FRAME_NO_LL,frame_no);
                }
                API_SysWriteValue(RAM_SHARING_ADR,VBUS_STATE,VBUS_SRC_USB_ON_LINE);
                API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_VIDEOPLAYER);
                API_OsSetCurrentTask(TASKID_USBAPP);
         }
         else
         {
          API_SysWriteValue(RAM_SHARING_ADR,VBUS_STATE,VBUS_SRC_ADAPTER);
         }
         API_OsPendEvent(EVID_VBUS_PLUGIN);
        }
        
        if(API_OsCheckEventOccur(EVID_VBUS_PLUGOUT))
        {      
         API_OsReleaseEvent(EVID_VBUS_PLUGOUT);
         API_SysWriteValue(RAM_SHARING_ADR,VBUS_STATE,VBUS_SRC_NONE);
         API_OsPendEvent(EVID_VBUS_PLUGOUT);
        }        

        if(API_OsCheckEventOccur(EVID_UPDATE_BATVOL))
        {      
         uint8 bat_lv;
               
         API_OsReleaseEvent(EVID_UPDATE_BATVOL);
        
         bat_lv = API_SysGetVolLv();
         if(bat_lv < BATTERY_LV0)
         {
          API_OsSetCurrentTask(TASKID_POWEROFF);
         }
         API_OsPendEvent(EVID_UPDATE_BATVOL);
        }                  
        
        if(API_OsCheckEventOccur(EVID_ALARM_OCCUR))
        {       
                uint32 frame_no;
                //uint16 current_song_no;
                
                API_OsReleaseEvent(EVID_ALARM_OCCUR);

                if(API_MusicGetThreadState() == TS_PLAY || API_MusicGetThreadState() == TS_PAUSE)
                {
                 //API_MusicGetCurrentSongIndex(&current_song_no);
                 API_SysWriteValue2B(RAM_SHARING_ADR,B_SONG_FILE_L,current_song_no);
                 API_MusicGetFrame(&frame_no);
                 API_SysWriteValue4B(RAM_SHARING_ADR,FRAME_NO_LL,frame_no);
                }
                
                API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_VIDEOPLAYER);
                API_OsSetCurrentTask(TASKID_ALARMOCCUR);
                
                API_OsPendEvent(EVID_ALARM_OCCUR);
        }       

}




⌨️ 快捷键说明

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