karaoke.c

来自「一个两碟控制的VCD的代码,两碟之间的转动及连续播放,已大量生产的CODE.」· C语言 代码 · 共 71 行

C
71
字号
/* SCCSID @(#)karaoke.c	1.12 2/12/98 */ #include "options.h"#include "globals.h"#include "../mvd.h"#include "../vcd30.h"register volatile int *mvd asm("r27");extern unsigned int vcd20_start, vcd20_end ;#define PLAY_VIDEO_CLIP 1#define PLAY_WHOLE_VIDEO 0 void play_karaoke(int mmss1, int mmss2) {  if (currPage.flag_sound) au_end(0);  mmss1=logical2physical(mmss1+150);  mmss2=logical2physical(mmss2+150);  vcd20_start = mmss1;  vcd20_end = mmss2;  vcd20(1);}void play30_item(int msf1, int msf2, unsigned int item) {	char *buf;	unsigned char flag;		if (findfile("/VCD/INFO.VCD\0", 0) != 1) return;	buf = read_file();	flag = *(unsigned char *)(buf+55+item);	GX_free(buf);	vcd20_start = logical2physical(msf1+150);	vcd20_end = logical2physical(msf2+150);	#ifdef DEBUG	TVprintf("play30_item item %d flag %d", item , flag);	pause();#endif	switch (flag & 0x0c) {		case 0x0c: pic_type = 0;			vcd20(VCD30_PLAY_SEG);				break;		case 0x04: pic_type = 1;			vcd20(VCD30_PLAY_SEG); 			break;		case 0x08: pic_type = 2;			vcd20(VCD30_PLAY_SEG); 			break;		default:			break;	}}#if 0void play_video_clip(char *fname) {  int status, msf1;  save_html();  findfile("/MPEGAV\0", 1);  status=findfile(fname, 0);  if (status==1) play_karaoke(CurrFile.loc,CurrFile.sz);  restore_html();}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?