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

📄 videoplayerapi.c

📁 C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码
💻 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 + -