📄 movie_main.c
字号:
/*
DM270 ARM Evaluation Software
(c)Texas Instruments 2003
*/
#include <system/gio270.h>
#include <system/intc270.h>
#include <user/aic23.h>
#include <user/osd.h>
#include <demo/menu.h>
#include <demo/ui.h>
#include <appl/movie_main.h>
#include <appl/movie_play.h>
#include <appl/movie_rec.h>
#include <demo_gui/demo_gui.h>
MOVIE_CTRL MovieCtrl;
void MOVIE_init() {
MOVIE_REC_init();
MOVIE_PLAY_init();
MOVIE_AIC23_stop();
}
void MOVIE_MAIN_MENU_run( MOVIE_MODE mode) {
char ch;
GUI_fileInfoPanelClear();
GUI_controlPanelClear();
GUI_controlPanelReset();
GUI_controlPanelDraw();
switch(mode) {
case MOVIE_MPEG4_MODE:
GUI_controlPanelMediaNameSet("MPEG4");
break;
case MOVIE_MJPEG_MODE:
GUI_controlPanelMediaNameSet("MJPEG");
break;
default:
return;
}
while(1) {
switch(mode) {
case MOVIE_MPEG4_MODE:
UART_sendString( UART0, mpeg4_main_menu);
break;
case MOVIE_MJPEG_MODE:
UART_sendString( UART0, mjpeg_main_menu);
break;
default:
return;
}
ch = UI_getInput();
switch(ch) {
case '0':
GUI_fileInfoPanelClear();
GUI_controlPanelClear();
GUI_controlPanelReset();
return;
case '1':
GUI_controlPanelReset();
GUI_controlPanelDraw();
GUI_controlPanelButtonStateSet(&BUTTON_RECORD_STOP);
DraftPreview(TRUE);
break;
case '2':
MOVIE_REC_MENU_run(mode);
break;
case '3':
MOVIE_PLAY_MENU_run(mode);
break;
case 't' :
MOVIE_test();
break;
default:
break;
}
}
}
void MOVIE_REC_MENU_run(MOVIE_MODE mode) {
char ch;
GUI_controlPanelReset();
GUI_controlPanelDraw();
GUI_controlPanelButtonStateSet(&BUTTON_RECORD_STOP);
while(1) {
switch(mode) {
case MOVIE_MPEG4_MODE:
UART_sendString( UART0, mpeg4_record_menu);
break;
case MOVIE_MJPEG_MODE:
UART_sendString( UART0, mjpeg_record_menu);
break;
default:
return;
}
ch = UI_getInput();
switch(ch) {
case '0':
return;
case '1':
GUI_controlPanelReset();
GUI_controlPanelDraw();
GUI_controlPanelButtonStateSet(&BUTTON_RECORD_STOP);
DraftPreview(TRUE);
break;
case '2':
GUI_controlPanelClear();
GUI_controlPanelReset();
GUI_controlPanelButtonStateSet(&BUTTON_RECORD_STOP);
GUI_controlPanelDraw();
MOVIE_REC_run(mode);
break;
case '3':
MOVIE_REC_CONFIG_run(mode);
break;
default:
break;
}
}
}
void MOVIE_PLAY_MENU_run(MOVIE_MODE mode) {
char ch;
GUI_controlPanelReset();
GUI_controlPanelDraw();
GUI_controlPanelButtonStateSet(&BUTTON_PLAY_STOP);
MOVIE_PLAY_START_run(mode, TRUE);
while(1) {
switch(mode) {
case MOVIE_MPEG4_MODE:
UART_sendString( UART0, mpeg4_playback_menu);
break;
case MOVIE_MJPEG_MODE:
UART_sendString( UART0, mjpeg_playback_menu);
break;
default:
return;
}
ch = UI_getInput();
switch(ch) {
case '0':
return;
case '1':
GUI_controlPanelReset();
GUI_controlPanelDraw();
GUI_controlPanelButtonStateSet(&BUTTON_PLAY_STOP);
DraftPreview(TRUE);
break;
case '2':
GUI_controlPanelReset();
GUI_controlPanelDraw();
GUI_controlPanelButtonStateSet(&BUTTON_PLAY_STOP);
MOVIE_PLAY_run(mode);
break;
case '3':
GUI_controlPanelReset();
GUI_controlPanelButtonStateSet(&BUTTON_PLAY_NEXT);
MOVIE_nextFile(mode);
MOVIE_PLAY_run(mode);
break;
case '4':
GUI_controlPanelReset();
GUI_controlPanelButtonStateSet(&BUTTON_PLAY_PREV);
MOVIE_prevFile(mode);
MOVIE_PLAY_run(mode);
break;
case '5':
GUI_controlPanelReset();
GUI_controlPanelDraw();
GUI_controlPanelButtonStateSet(&BUTTON_PLAY_STOP);
MOVIE_PLAY_CONTINOUS_run(mode);
break;
}
}
}
void MOVIE_AIC23_init(BOOL encode) {
// to enable Clock to 12.288Mhz OSC in U2 socket on DM270 EVM. This used as clock by AIC23
{
GIO_ConfigData gio2;
gio2.dir = GIO_OUTPUT;
gio2.altUse = FALSE;
GIO_setConfig( GIO2, &gio2 );
GIO_setBit( GIO2 );
}
AIC23_selectMode(FALSE);
AIC23_reset();
AIC23_L_lin_vol( 0, 0, 0x1F );
AIC23_R_lin_vol( 0, 0, 0x1F );
AIC23_L_hp_vol( 0, 1, 0x3F );
AIC23_R_hp_vol( 0, 1, 0x3F );
if(encode) {
AIC23_A_path( 0, 0, 1, 1, 1, 0, 0);
} else {
AIC23_A_path( 0, 0, 1, 0, 0, 1, 0);
}
AIC23_D_path( 0, 1, 0 );
AIC23_pow_ctrl( 0, 0, 0, 0, 0, 0, 0, 0);
AIC23_D_audio_fmt( 0, 0, 0, 0, 3);
AIC23_smpl_rate( 0, 0, 3, 0, 0);
AIC23_D_interface( 1 );
}
void MOVIE_AIC23_stop() {
AIC23_selectMode(FALSE);
AIC23_reset();
AIC23_pow_ctrl( 1, 1, 1, 1, 1, 1, 1, 1);
}
int MovieTestCount;
int MovieTestStop;
int MOVIE_test() {
UART_sendString( UART0, "\r\n\n Testing MPEG4 Record/Playback\r\n" );
MovieTestCount=0;
MovieTestStop=0;
while(!MovieTestStop) {
GUI_controlPanelClear();
GUI_controlPanelReset();
GUI_controlPanelButtonStateSet(&BUTTON_RECORD_STOP);
GUI_controlPanelDraw();
MOVIE_REC_run(MOVIE_MPEG4_MODE);
GUI_controlPanelReset();
GUI_controlPanelDraw();
GUI_controlPanelButtonStateSet(&BUTTON_PLAY_STOP);
MOVIE_PLAY_run(MOVIE_MPEG4_MODE);
MovieTestCount++;
sprintf( UART_outBuff, "\r\n Iteration : %d", MovieTestCount);
UART_sendString( UART0, UART_outBuff );
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -