📄 videoplayerapi.c
字号:
//********************************************************************
// Name: VideoPlayerAPI.c
//
// Copyright (C) Sitronix TECHNOLOGY INC.
// All rights reserved by Sitronix TECHNOLOGY INC.
//
// Project: ST3110
// Author: Terry Wu
// Begin Date: 2008/01/01
// Last update: 2008/04/01
// $Header: $
// Description:
// video function
//
//
//********************************************************************
#include <intr6502.h>
#include "sys.h"
#include "MusicPlayer.h"
#include "VideoPlayer.h"
#include "img_position.h"
#include "ST3110_img_define.h"
#include "multilanguage.h"
#pragma codeseg(APP)
uint8 video_state;
uint8 volume; // 0~16
uint8 language;
uint16 current_song_no;
uint16 Folders,Files;
uint8 sfnPtr[13],lfnPtr[256];
uint32 video_format;
uint8 root_order;
uint16 *pPos_x;
uint16 *pPos_y;
uint8 counter_2hz;
extern uint8 lfnPtr[256];
void _show_error_message_box(void);
void video_init(void);
void video_play(void);
void video_init(void)
{
//init varible
volume = API_SysReadValue(RAM_SETTING_ADR,SET_VOLUME);
language = API_SysReadValue(RAM_SETTING_ADR,SET_LANGUAGE);
root_order = API_SysReadValue(RAM_SHARING_ADR,ROOT_ORDER);
video_format = FF_VIDEO_FORM;
video_state = STOP_STATE;
counter_2hz = 0;
API_LcmSetLanguage(CS_BIG5);
API_LcmSetCharForm(CHFS_16x16);
API_LcmSetCharColor(COLOR_WHITE,COLOR_DPF_BG);
API_LcmDisableKeepBackGround();
current_song_no = API_SysReadValue2B(RAM_SHARING_ADR,CUR_FILE_L);
API_FATGetItemAmountInFolder(&Folders,&Files,video_format); //API_FATGetItemAmountInFolder will modify fileIdx
API_VideoSetFile(video_format,current_song_no,FF_ID_AUTO);
video_play();
}
void video_play(void)
{
if(API_VideoGetThreadState() == TS_STOP || API_VideoGetThreadState() == TS_FILEEND || API_VideoGetThreadState() == TS_PLAY_ER)
{
if(API_VideoGetInfo(video_format,current_song_no,sfnPtr) == AVIF_KARAOKE || API_VideoGetInfo(video_format,current_song_no,sfnPtr) ==AVIF_AVI)
{
// set video to center of screen
//calc center position
pPos_x = (uint16 *)sfnPtr;
pPos_y = (uint16 *)(sfnPtr+4);
*pPos_x = (LCM_WIDTH-*pPos_x)/2;
*pPos_y = (LCM_HEIGHT-*pPos_y)/2;
if( (*pPos_x != 0) || (*pPos_y != 0) )
LCM_CLEAN_SCREEN_ALL();
//check if resume form alarm
if(API_SysReadValue4B(RAM_SHARING_ADR,FRAME_NO_LL)>0)
API_VideoSetFrame(API_SysReadValue4B(RAM_SHARING_ADR,FRAME_NO_LL));
else
API_VideoSetFrame(0);
API_SysWriteValue2B(RAM_VID_PATH_ADR,root_order*2,current_song_no);
API_SysWriteValue4B(RAM_SHARING_ADR,FRAME_NO_LL,0);
if(!API_VideoPlay(*pPos_x,*pPos_y))
{
//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;
}
}
else
{
//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;
}
}
else
{
API_VideoStop();
}
}
void _show_error_message_box(void)
{
uint16 string_ptr;
uint8 language;
string_ptr = (uint16)lfnPtr;
language = API_SysReadValue(RAM_SETTING_ADR,SET_LANGUAGE);
//show del box BG
API_LcmPutSysImage(IMG_PHOTO_DIALOG_BACKGD,POS_PHOMENU_DELBOX_X,POS_PHOMENU_DELBOX_Y);
API_SysLoadValue(NAND_TEXT_ADR+(language*TIDX_AMOUNT_OF_ONE_LANGUAGE)+TIDX_ERR_MSG,string_ptr,64);
API_LcmSetLanguage(CS_UNICODE);
API_LcmShowString(lfnPtr,POS_PHOMENU_ITEM_X+100,POS_PHOMENU_ITEM_Y+(2*POS_PHOMENU_ITEM_GAP));
API_LcmSetLanguage(CS_BIG5);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -