📄 videoplayer_main.c
字号:
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(¤t_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 + -