📄 macro.c
字号:
/*
** FILE
** macro.c
**
** DESCRIPTION
**
*/
#include "auctrl.h"
#include "config.h"
#include "global.h"
#include "memmap.h"
#include "cd.h"
#include "macro.h"
#include "osd.h"
#include "func.h"
#include "dma.h"
#include "vpp.h"
#include "cdxa.h"
#include "hwsetup.h"
#include "dsa.h"
#include "cdfunc.h"
#include "ircmd.h"
#include "util.h"
#include "fs9660.h"
#include "framebuf.h"
//in cd.c
extern void do_cd_freerun();
//in mpegsys.c
extern void restart_audio_engine(void);
/*
** Abort()
**
** HIGH PRIORITY. IMMEDIATE
*/
void MacroAbort()
{
AVD_state = STATE_IDLE;
AVD_state_flags = 0;
SetIntrMask(0);
SetIntrFlag(0);
}
void MacroSync()
{
while (IsRPicStart || !IsVPicEnd);
}
void MacroPause()
{
}
void MacroContinue()
{
}
void MacroDisplayPreviewBackground(void)
{
}
void MacroSearch()
{
}
void MacroFreeze()
{
}
void MacroOSD_OnOff()
{
}
void InitializeCDPlayback(int playback_type)
{
playback_cd_init(playback_type);
stream_video = STREAM_VIDEO_DEFAULT; /* bondy_test */
#ifdef SUPPORT_DUAL_CHANNEL
if (cd_type_loaded == CDSVCD &&
(CheckUIRepAB(REPEAT_AB_IDLE) || CheckUIRepAB(REPEAT_FIND_A)))
stream_audio = STREAM_AUDIO_DEFAULT;
#else
stream_audio = STREAM_AUDIO_DEFAULT;
#endif
regs0->video_decode_time = 0x04;
if (playback_type == CDDA) {
#ifdef SUPPORT_AUD_MOVE
if (cd_type_loaded == CDSVCD)
regs0->eabya = MEM_CDDA_EABYA_DEF;
else if(cd_type_loaded == CDDA)
regs0->eabya = MEM_CDDA_EABYA_DEF;
#endif
}
pause_audio(0, 1);
#ifdef USE_MUTE_VCD_FUNCTION
AVAPI_control(C_WRITE, AVAPI_MUTE, FlagMuteOn);
#endif
FreezeState = 0;
}
void MacroPlay()
{
AVD_state_flags = AVD_LINEAR_PLAY | AVD_REALTIME;
AVD_ResetMediaStatus();
s_msf = CDMSF_FINDFIRST;
e_msf = 0xffffffff;
InitializeCDPlayback(cd_type_loaded);
stream_video = 0xe0; // STREAM_VIDEO_AUTO;
stream_audio = 0xc0; // STREAM_AUDIO_AUTO;
regs0->video_decode_time = 0x02;
CDSetPlay();
do_cd_freerun();
vcd_state = VCD_VIDEO | VCD_AUDIO;
SetIntrMask(INTR_MASK_NORMAL_LINEAR);
SetIntrFlag(0);
FreezeState = 0;
// timeout_playback = 0;
}
void MacroPlayMSF(void)
{
}
void MacroPlayMSFPreview(void)
{
}
void MacroPlayTrackPreview(void)
{
}
void MacroPlayTrack()
{
}
void MacroPlayEntry()
{
}
void MacroPlaySegment(void)
{
}
void MacroPlayMP3(void)
{
}
void MacroPlayRomSlide()
{
/*
** setup video source and server.
*/
romimage_ptr = MacroParam.PlayRomSlide.rom_addr;
srv_kernel = srv_rom;
SetIntrMask(INTR_MASK_NORMAL_ROM);
SetIntrFlag(0);
restart_video_engine();
restart_audio_engine();
/* if (play_hires) preset_framebuffer(MEM_CONFIG_HIRES);
else */ preset_framebuffer(MEM_CONFIG_LORES);
vpp_mode = VPP_CENTERED;
timeout_playback = 0;
regs0->rtc_31_16 = 0;
AVD_state = STATE_PLAYROMSLIDE;
AVD_state_flags = AVD_PLAY | AVD_SLIDE;
AVD_ResetMediaStatus();
B_skip = 0;
R_skip = 0;
/*
** play video elementary bitstream only.
*/
vcd_state = BITSTREAM_VIDEO;
FirstPlay |= 0x01; /* jhuang 01-6-1 16:33 diff nav header */
FreezeState = 0;
}
void MacroSetVideoFormat()
{
BYTE format = MacroParam.SetVideoFormat.format;
if (format == MODE_NTSC)
mode_display = MODE_NTSC;
else if (format == MODE_PAL)
mode_display = MODE_PAL;
else if (format == MODE_PALM)
mode_display = MODE_PALM;
#ifdef SUPPORT_GPIO_BUS_FUNCTION
TVSystem();
#endif
reset_video_decoder();
}
void MacroSlowMotion()
{
}
void MacroStep()
{
}
void MacroStop()
{
}
void ReShowState(void)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -