亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? play.c

?? 一個兩碟控制的VCD的代碼,兩碟之間的轉(zhuǎn)動及連續(xù)播放,已大量生產(chǎn)的CODE.
?? C
?? 第 1 頁 / 共 5 頁
字號:

#define VOCAL_LEFT_LEFT                 3
#define VOCAL_RIGHT_RIGHT               4

#define DIGEST_TRACK_PIC_LIMIT          9
#define MAX_TRACK_NUMBER                99
#define	MAX_PROGRAM_TRACKS		99

/* For OSD message buffers */
#define TRACK_NUM_POS   		13
#define CTRACK_NUM_POS   		9
#define SPEED_POS       		4
#define CSPEED_POS       		4
#define SLOW_SPEED_POS  		5
#define CSLOW_SPEED_POS  		3
#define SEL_NUM_POS			8
#define CSEL_NUM_POS			6

/* Play control variables                                               */
static unsigned int seg_sel = 1; /* Use in segment play (select E1 (1)  *
                                 * or E2 (2)                            */
static unsigned int resume_flag;       /* store the resume states */

#ifdef FAST_MODE_CONTROL
static int fast_mode_ctrl=0;
#endif

/*------------------------------------------------------------------------
 * Variables for display. If we want to save memory, we can use common
 * buffer for all osd display.
 *------------------------------------------------------------------------*/
char *SPA_msg;
static unsigned char *osd_msg;
#ifdef BILINGUAL_OSD
static unsigned char *c_osd_msg;
#endif

static unsigned char osd_region = OSD_FUNCTION_STATUS_REGION;/*default region*/
static unsigned char osd_timeout = DISPLAY_TIME_OUT;/*default timeout */

static unsigned char track_buf[] = "  TRACK SCAN XX   ";
static unsigned char sel_buf[] = "SELECT    ";
static unsigned char FF_buf[] = "FF X1 ";
static unsigned char FR_buf[] = "FR X1 ";
static unsigned char slow_buf[] = "SLOW   ";
static unsigned char clear_msg[] = " ";
static unsigned char error_msg[] = "#"; /* Show a hand */
#ifdef BILINGUAL_OSD
static unsigned char c_track_buf[] = {
	' ', CN_DAN1, ' ', CN_QU3, ' ', CN_LIU2, ' ' , CN_LAN3,
	' ', 'X', 'X', ' ' , ' ', ' ', '\0'
};
static unsigned char c_slow_buf[] = {
    CN_MAN4, CN_FANG4, ' ', ' ', ' ', '\0'
};
static unsigned char c_sel_buf[] = {
	CN_XUAN3, ' ', ' ', CN_ZE2, ' ', ' ', ' ', ' ', '\0'
};
static unsigned char c_FF_buf[] = {
	CN_KUAI4, CN_JIN4, ' ', 'X', '1', '\0'
};
static unsigned char c_FR_buf[] = {
	CN_KUAI4, CN_TUI4, ' ', 'X', '1', '\0'
};
#endif

#ifdef TWO_CDS
static unsigned char disc_buf[] = "DISC   ";
static unsigned char c_disc_buf[] = {CN_DIE2,FONT_SPACE,FONT_SPACE,FONT_SPACE,FONT_SPACE,FONT_SPACE,FONT_SPACE,0 };
#endif

/* OSD messages used outside play.c module */
unsigned char goto_buf[] = " GO TO   :  ";
#ifdef BILINGUAL_OSD
unsigned char c_goto_buf[] =
    { ' ', CN_SHI2, ' ', CN_JIAN1, ' ', ' ', ' ', ':', ' ', ' ', '\0' };
#endif

/*------------------------------------------------------------------------
    User defined data structures
------------------------------------------------------------------------*/
short      	           list_previous_list_offset=0;
short  		           list_next_list_offset=0;
static short               list_return_list_offset=0;
static short               play_list_playing_time=0;
static short               play_list_play_item_number=0;
static unsigned char       play_list_number_of_items=0;
static unsigned char       play_list_play_item_wait_time=0;
static unsigned char       play_list_auto_pause_wait_time=0;
static int		   play_still_retry;

#ifdef MDC_GAME
static short               mdc_game_list_buffer_size=0;
#endif

static int                 selection_list_loop_count;
static short               selection_list_default_list_offset=0;
static short               selection_list_time_out_list_offset=0;
static short               selection_list_play_item_number=0;
static unsigned char       selection_list_jump_time=0;
static unsigned char       selection_list_number_of_selections=0;
static unsigned char       selection_list_base_of_selection_number=0;
static unsigned char       selection_list_wait_time_for_timeout=0;
static unsigned char       selection_list_loop_count_and_jump_timing=0;

#ifdef SGAME
int play_item_begin_time;   /* mmssff : the begining mmssff */
int play_item_real_end_time;/* mmssff : the real end time of the item */
int play_item_start_time;   /* mmssff : the start playing mmssff */
int play_item_end_time;     /* mmssff : the play end time of the item */
int game_next_delay;  /* by maor */
#else
static int play_item_begin_time;   /* mmssff : the begining mmssff */
static int play_item_real_end_time;/* mmssff : the real end time of the item */
static int play_item_start_time;   /* mmssff : the start playing mmssff */
static int play_item_end_time;     /* mmssff : the play end time of the item */
#endif

static unsigned char play_item_mode=0; /* record stop or play mode. */
static unsigned char play_item_type=0; /* AUDIO or DATA track */

#ifdef JUMP_N_PAUSE
IMPORT int VID_frames_before_pause;
int PLAY_jump_n_pause = 0;
static char PLAY_in_pause_mode = 0; /* keep track of pause condition	  */
#endif

char wait_pause=0;
static char initCD_done;	/* the initCD() successfully complete. */
/*------------------------------------------------------------------------
  Global Variables
------------------------------------------------------------------------*/
#ifdef SGAME
extern unsigned char current_game_menu;
extern unsigned int game_number;
extern unsigned int game_menu_number;
extern unsigned int game_menu_entry[11];
extern unsigned int game_data_entry[99];
unsigned char vcd_game_video_key;
unsigned char vcd_game_loaded;
unsigned char game_still_over;
#endif

unsigned char   track_list[99]; /* the track play list */
unsigned int    track_list_max; /* max track used in track_list */
unsigned char   track_map[13];      /* track map for motion picture */

int current_key = NO_KEY;       /* The key received from users          */

#ifdef SGAME
int assign_key = NO_KEY; /* Key assigned from play machine.      */
#else
static int assign_key = NO_KEY; /* Key assigned from play machine.      */
#endif

int play_state;                 /* The state of play state machine      */
static int play_state_before_auto_pause;
static int auto_pause_reset_time;
int trigger_event;              /* Store why the state changed          */

static unsigned char vocal_assist_on=0;
static unsigned char audio_mode = 0;
static unsigned char repeat_mode = 0;
                                /* Store the repeat mode data.          */
static unsigned char program_on = 0;
static unsigned char shuffle_on = 0;
                                /* Store the shuffle mode data.         */
unsigned char cur_list_state=0;
                                /* Record whether we are playing track  */
                                /* list, selection list or play list.   */

char  cur_track_index=0;  /* index to the track play list */
static int pre_psd_offset;	/* store the previous psd offset, so we
				   can come back if the new psd offset
				   is not valid. */

static int cur_psd_offset;      /* current psd offset number            */
static unsigned int timeout_begin_time; /* the time in 1/64 second unit */
                                /* when the timer is set. */
int set_abort_ltoc;             /* 1 -> allow abort_ltoc_flag to be set */

static unsigned char fast_frame_index=0; /* FF/FR index of fast_rame_ary to */
                                /* control FF/FR speed.                */
static unsigned char slow_motion_index=0;
                                /* Indicate the speed of slow motion.  */
int repeat_a2b_start_time;      /* MMSSFF format of the start time in
                                   in repeata2b mode.                   */

unsigned char cd_opened = 0;	/* 1 -> CD is opened.               */
#ifdef TWO_CDS
static unsigned char cd_opened2 = 0;    /* 1 -> CD is opened.               */
#endif
static unsigned char disk_exist=0;        /* 1 -> CD is not empty.       */

unsigned char repeat_a2b=0;


static unsigned char intro_mode=0; /* 1 -> we are in intro mode          */
static unsigned char goto_absolute=0; /* 1 -> in the absolute goto mode */
unsigned char   cd_stop = 1;

/* variables store some data in info.vcd. */
int PSD_size;                   /* The size of PSD in bytes. */
unsigned char offset_mul=0;       /* offset_mul byte. */

/* variable relative to auto pause */
static unsigned char auto_pause=0;  /* 1 -> pause is caused by trigger bit.*/

/* variables relative to goto function */
static unsigned char goto_digit=0;        /* 1 -> 1st digit of min,
                                           2 -> 2nd digit of min,
                                           3 -> 1st digit of sec,
                                           4 -> 2nd digit of sec.
                                           */
static unsigned char goto_min=0, goto_sec=0; /* user inputs time */
static unsigned char got_goto_time=0;     /* 1 -> got go to time */
static unsigned char keep_goto_key=0;
unsigned int  goto_time; /* time to go relative to item start time */

/* variables relative to index+ and index- functions */
unsigned int track_entry_beg;   /* 1 base from the beginning of CD */
unsigned int track_entry_end;
unsigned int track_current_entry;
unsigned int track_entry_number;
int next_entry_time;  /* used to update index number on lcd */


/* variables to keep the valid selection numbers */
short upper_selection_limit;    /* the good selection upper bound */
short lower_selection_limit;    /* the good selection lower bound */

/* variables for program mode */
static int TotalProgramTime;	/* In mm:ss:ff (CD format, i.e. BCD)	*/
int TotalRemainTime;		/* In mm:ss:ff (CD format, i.e. BCD)	*/
int CurrentTrackTime;		/* In mm:ss:ff (CD format, i.e. BCD)	*/


static osd_time_key_index;	/* indicates what is on the screen */
int cd_disc_slot;
unsigned char cd_tray_just_closed = 0;
static unsigned char in_digest_mode = 0;	/* Is it in digest mode ? */

/* defines for PLAY_vcd_type */
#define VCD_TYPE_NONE	0
#define VCD_TYPE_11	1
#define VCD_TYPE_20	2
#define VCD_TYPE_30	4

#ifdef SGAME
#define VCD_TYPE_game	8
#endif

static unsigned char PLAY_vcd_type=VCD_TYPE_NONE;

static unsigned char cddigest_start_track=0;
static unsigned char set_mode_key=0;	/* flag to indicates that we need
					   to assign MODE_KEY to current_key
					   if the disc is vcd1.1 */

static unsigned char ResumeMinute=0, ResumeSecond=0, ResumeTrack=0;
static int ResumeVertSz, ResumeHorizSz;
static int just_init_CD;

#ifdef VOLUME_CONTROL
/* variables regarding to audio volume control */
PRIVATE unsigned short vcxVolume[] = {
    0x0000,	/*  0    */
    0x0101,	/*  1/16 */
    0x0202,	/*  2/16 */
    0x0303,	/*  3/16 */
    0x0404,	/*  4/16 */
    0x0505,	/*  5/16 */
    0x0606,	/*  6/16 */
    0x0707,	/*  7/16 */
    0x0808,	/*  8/16 */
    0x0909,	/*  9/16 */
    0x0a0a,	/* 10/16 */
    0x0b0b,	/* 11/16 */
    0x0c0c,	/* 12/16 */
    0x0d0d,	/* 13/16 */
    0x0e0e,	/* 14/16 */
    0x0f0f,	/* 15/16 */
    0x1010,	/* 16/16 */
};

#define AUDIO_MAX_LEVEL	16
#define AUDIO_MIN_LEVEL 0
#define	AUDIO_BUFSZ	(((AUDIO_MAX_LEVEL-1)/2) + 5) /*<level><space><digits>*/

int is_audio_mute;
#ifdef VCDROM
unsigned int before_mute;
#endif

#ifdef INTECH_GONGFA
 int audio_level = 8;
#else
 int audio_level = 16;
#endif

void process_mute_key();
void process_volume_key(int level);
static void    osdVolumeBar(int, int);

/*------------------------------------------------------------------------
  Function:

  Parameters:

  Description:
------------------------------------------------------------------------*/
void reset_audio()
{
    is_audio_mute = 0;
#ifdef INTECH_GONGFA
    audio_level = 8;
#else
   audio_level = AUDIO_MAX_LEVEL;
#endif
}

void process_mute_key()
{
    unsigned char *msg, *c_msg;

    is_audio_mute ^= 1;
    if (is_audio_mute) {    /* Set to 0 */
	assign_osd_msg(msg, MSG_mute, c_msg, MSG_c_mute);
#ifdef VCDROM
	before_mute = vcx_audio_volume;
#endif
        vcx_audio_volume = 0;
    } else {    /* Restore */
	assign_osd_msg(msg, clear_msg, c_msg, clear_msg);
        vcx_audio_volume =  (unsigned int) vcxVolume[audio_level];
    }

    /* Display indefinitely while MUTING */
    OUTOSD(OSD_AUDFX_REGION, msg, c_msg, 0);
}

void process_volume_key(int change_level)
{
    /* Turn off mute mode if we are in mute mode. */
    if (is_audio_mute) {
	process_mute_key();
    }

    audio_level += change_level;
    if (audio_level > AUDIO_MAX_LEVEL)
	audio_level = AUDIO_MAX_LEVEL;
    else if (audio_level < AUDIO_MIN_LEVEL)
	audio_level = AUDIO_MIN_LEVEL;

    vcx_audio_volume = (unsigned int) vcxVolume[audio_level];

    /* show osd */
    osdVolumeBar(audio_level, DISPLAY_TIME_OUT);
}

/*(This function is taken from po4tact.c)
 * Display the volume bar.
 *
 * Input:
 *	level:	an integer between AUDIO_MIN_LEVEL (0) and
 *		AUDIO_MAX_LEVEL (16).
 *	osdlen:	number of seconds to show this OSD
 */
PRIVATE unsigned char	volumebarbuf[AUDIO_BUFSZ] = "           ";
PRIVATE void osdVolumeBar(level, osdlen)
int level;
int osdlen;
{
    int i, tmp = 0;

    if (level > AUDIO_MIN_LEVEL) tmp = (level - 1) >> 1;

    for (i = tmp; i <= ((AUDIO_MAX_LEVEL - 1) >> 1); i++) {
	asm("nop");
	volumebarbuf[i] = FONT_SS;
    }

    for (i = 0; i < tmp; i++) {
	asm("nop");
	volumebarbuf[i] = FONT_LL;
    }

    if (level > 0) volumebarbuf[tmp] = ((level - 1) & 1) ? FONT_LL : FONT_LS;

    if (level <= 9) {
	volumebarbuf[AUDIO_BUFSZ - 3] = ' ';
    } else {
	level -= 10;
	volumebarbuf[AUDIO_BUFSZ - 3] = '1';
    }

    volumebarbuf[AUDIO_BUFSZ - 2] = '0' + level;
    OUTOSD(OSD_KARAOKE_REGION, volumebarbuf, volumebarbuf, osdlen);
}

#endif

/*------------------------------------------------------------------------
  Function:

  Parameters:

  Description:
------------------------------------------------------------------------*/
void reset_play_machine()
{
    current_key = STOP_KEY;
    play_state = ENTRY_STATE;
#ifdef TWO_CDS
    if (continue_play == 2)
       continue_play = 0;
#endif
}

/*------------------------------------------------------------------------
  Function: play_item
  Parameters:
      playitem_number: The playitem_number is from play_item in
                       selection list or play list.
  Description:
      This function will call proper function to play motion picture,
      segment item or entry item depending on the value of
      playitem_number.
------------------------------------------------------------------------*/
static void play_item(int playitem_number)
{
    /* reset entry variables. The values are chosen to no index at init */
    picture_type = 0xe0;
    track_entry_beg = 1000;
    track_entry_end = 0;
    track_entry_number = 1;
    next_entry_time = x00999999;/* set it a very big number, so we want
                                   update the lcd index number if we are
                                   not in play entry in track mode. */

    /* reset a2b if a2b flag is on */
    if (repeat_a2b) {/* REPEAT_AB_START or REPEAT_AB_END */
	repeat_a2b = REPEAT_AB_OFF;
	panel_repeat_ab(REPEAT_AB_OFF);
    }

    /* remember the play item */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级久久久| 成人小视频免费观看| 亚洲大片精品永久免费| 一区二区视频免费在线观看| 国产精品久久久久永久免费观看 | 亚洲视频小说图片| 国产精品另类一区| 中文字幕中文在线不卡住| 国产精品天美传媒| 亚洲欧美日韩国产综合| 一区二区高清视频在线观看| 亚洲综合偷拍欧美一区色| 亚洲午夜视频在线| 免费观看30秒视频久久| 久久国产精品免费| 国产v日产∨综合v精品视频| 国产成人精品三级麻豆| 成人av网在线| 一本色道久久加勒比精品| 欧美三区免费完整视频在线观看| 制服丝袜成人动漫| 久久久亚洲精品一区二区三区 | 日韩精品视频网| 免费成人性网站| 国产麻豆精品在线| 波多野结衣的一区二区三区| 欧美一区二区三区色| 欧美成人猛片aaaaaaa| 国产欧美视频在线观看| 亚洲精品亚洲人成人网在线播放| 婷婷中文字幕一区三区| 精品一区二区国语对白| av一区二区三区黑人| 欧美日韩精品综合在线| 久久网这里都是精品| 日韩毛片视频在线看| 视频精品一区二区| 懂色一区二区三区免费观看| 欧美在线不卡视频| 精品国产乱码久久久久久牛牛 | 国产一区二区免费视频| 91毛片在线观看| 日韩一区二区三区视频在线| 中文字幕不卡三区| 亚洲国产另类av| 国产91精品一区二区麻豆亚洲| 欧美在线一二三| 久久免费看少妇高潮| 一区二区欧美在线观看| 激情五月婷婷综合网| 91福利小视频| 久久精品网站免费观看| 性久久久久久久久久久久| 国产91丝袜在线播放| 欧美美女激情18p| 国产精品国产a| 麻豆专区一区二区三区四区五区| 99国产精品久久久久| 久久只精品国产| 视频一区二区不卡| 91免费看视频| 久久久久久**毛片大全| 五月天欧美精品| 色综合天天综合在线视频| 欧美videossexotv100| 亚洲国产成人高清精品| av亚洲精华国产精华精| 欧美精品一区二区高清在线观看 | 成人白浆超碰人人人人| 精品久久久久一区二区国产| 亚洲成人久久影院| 99九九99九九九视频精品| 久久久久国产精品麻豆ai换脸| 亚洲aaa精品| 日本精品视频一区二区| 日韩avvvv在线播放| 91免费观看视频| 国产欧美1区2区3区| 久久99精品国产麻豆婷婷| 欧美乱熟臀69xxxxxx| 亚洲精品菠萝久久久久久久| 成人性生交大片免费看在线播放| 精品国产乱码91久久久久久网站| 日韩中文字幕区一区有砖一区 | 91福利国产精品| 国产精品家庭影院| 国产成人精品一区二区三区网站观看| 91精品国产一区二区| 午夜一区二区三区在线观看| 欧美中文字幕不卡| 一区二区三区免费| 91高清视频免费看| 亚洲一区在线免费观看| 色婷婷av一区二区| 亚洲黄色在线视频| 欧美在线观看视频在线| 一区二区三区精品| 在线免费观看一区| 亚洲综合在线视频| 欧日韩精品视频| 亚洲国产cao| 69堂成人精品免费视频| 日本视频一区二区| 欧美xxxxx裸体时装秀| 国内精品免费**视频| 久久久精品免费观看| 国产成人综合在线| 国产精品久久久久婷婷| 91麻豆123| 亚洲精品成人精品456| 欧美四级电影在线观看| 日韩影视精彩在线| 欧美一区二区精品久久911| 精品一区二区三区免费| 国产天堂亚洲国产碰碰| 成人av综合在线| 夜夜亚洲天天久久| 欧美丰满高潮xxxx喷水动漫| 久久精工是国产品牌吗| 久久网站热最新地址| www.亚洲在线| 亚洲国产精品久久艾草纯爱| 51午夜精品国产| 国产高清精品在线| 亚洲丝袜制服诱惑| 欧美日韩综合在线免费观看| 久久精品二区亚洲w码| 国产精品欧美经典| 欧美日韩在线免费视频| 国模少妇一区二区三区| 中文字幕亚洲区| 欧美日韩不卡一区| 国产一区二区三区免费看| 亚洲欧洲日本在线| 欧美精品第一页| 国产成人在线视频网址| 亚洲午夜电影网| 精品盗摄一区二区三区| 色国产综合视频| 美女视频网站久久| 成人免费在线播放视频| 欧美久久久久久久久久| 成人黄页毛片网站| 午夜天堂影视香蕉久久| 久久久久国产成人精品亚洲午夜| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲福利视频一区| 国产欧美精品在线观看| 欧美日韩成人在线一区| 国产91精品一区二区| 亚洲成av人影院在线观看网| 国产日产欧产精品推荐色 | 亚洲午夜视频在线| 久久精品一区二区三区不卡| 欧美视频一区在线| 国产不卡一区视频| 日韩在线a电影| 国产精品视频看| 欧美高清视频一二三区| 成人av电影免费观看| 久久激情五月激情| 亚洲主播在线播放| 中文字幕欧美国产| 欧美一级片免费看| 欧美性猛片xxxx免费看久爱| 国产成人aaa| 美女视频黄免费的久久| 一区二区成人在线| 国产精品不卡视频| 久久久精品天堂| 日韩欧美电影一区| 欧美日韩美少妇| 91免费国产在线| 成a人片国产精品| 色欧美乱欧美15图片| 成人av电影免费观看| 国产激情一区二区三区桃花岛亚洲| 日韩激情在线观看| 亚洲成人自拍网| 亚洲精品网站在线观看| 国产精品区一区二区三| 久久老女人爱爱| 精品国产污网站| 日韩一区二区三区电影| 欧美三区在线观看| 欧美亚洲综合另类| 色综合久久久久网| 成人av网站在线| 成人一级视频在线观看| 国产精选一区二区三区| 美女网站在线免费欧美精品| 午夜不卡av免费| 偷拍一区二区三区四区| 夜夜嗨av一区二区三区中文字幕| 亚洲欧美一区二区三区国产精品 | 午夜日韩在线电影| 亚洲午夜久久久久中文字幕久| 一区二区三区日韩在线观看| 亚洲免费在线视频一区 二区| 亚洲人成在线播放网站岛国|