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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? play.old

?? 一個兩碟控制的VCD的代碼,兩碟之間的轉動及連續播放,已大量生產的CODE.
?? OLD
?? 第 1 頁 / 共 5 頁
字號:
    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 NGAME
static unsigned char       game_list_local_cpu_type=0;
static short               game_list_misc_def=0;
static short               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;

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 */
static unsigned char play_item_mode=0; /* record stop or play mode. */
static unsigned char play_item_type=0; /* AUDIO or DATA track */

char wait_pause=0;
static int initCD_done;		/* the initCD() successfully complete. */
/*------------------------------------------------------------------------
  Global Variables
------------------------------------------------------------------------*/
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          */
static int assign_key = NO_KEY;	/* Key assigned from play machine.      */
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.               */
static unsigned char cd_opened2 = 0;    /* 1 -> CD is opened.               */
static unsigned char disk_exist=0;        /* 1 -> CD is not empty.       */

unsigned char repeat_a2b=0;

/*add*/

static int    continuetime1;
static int    continuetime;
static unsigned char    continue_min;
static unsigned char    continue_sec;
unsigned char    continue_play;
unsigned char    disc_ltoc;

int vfdled = 0xff;
static unsigned char    karaoke_flag = 0 ;
static unsigned char    xuechang_flag = 0 ;
static unsigned char    stopresume_flag = 0;

#ifdef MEIXINDA_REMOTE
unsigned char    mode_state = 0;
#endif




#ifdef  TWO_CDS
static void write_disc_ltoc(int);
int process_change_disc(int);
unsigned char    opening = 0;
unsigned char    closing = 0;
static unsigned char    closing2 = 0;
static int              rotate_change = 0;
#endif

int              rotate_timer = 0;
static unsigned char    rotate_flag = 0;





#ifdef ALLONE
#define VOCAL_MIC_HIGH            (EAUX5_HIGH)
#define VOCAL_MIC_LOW             (!VOCAL_MIC_HIGH)
#else
#define VOCAL_MIC_HIGH            (EAUX12_HIGH)
#define VOCAL_MIC_LOW             (!VOCAL_MIC_HIGH)
#endif

static int      start_timer;
static unsigned char screen_flag = 1 ;
unsigned char    screen_display = 0 ;
static int     panel_osd_timer;


#ifdef USE_SLEEP
static  int sleep_timer;
static  int sleep_limit_timer;
static unsigned char sleep_flag = 0 ;
#endif


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 */
unsigned int ProgramedTrack;    /* keep the track ids in 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 ? */
static unsigned char VCD_11_or_20=0;
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;
int audio_level = 16;

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;
    audio_level = AUDIO_MAX_LEVEL;
}

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);
        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 */
#ifdef KANGHUI
    OUTOSD(OSD_FUNCTION_STATUS_REGION, msg, c_msg, 0);
#else
    OUTOSD(OSD_AUDFX_REGION, msg, c_msg, 0);
#endif
}

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 NEW_THREE_CDS
    if (continue_play == 3)
       continue_play = 0;
#endif

#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 */
    cur_vcd_playitem = playitem_number;

    /* 2..99 -> play track */
    if ((playitem_number > 1) && (playitem_number < 100)) {
        play_track(playitem_number - 1); /* convert to 1 base */

        cur_track_number = playitem_number - 1; /* for display purpose */
    } else if ((playitem_number > 99) && (playitem_number < 600)) {
        play_entry(playitem_number - 99); /* 100..599 -> play entry */
    } else if ((playitem_number > 999) && (playitem_number < 2980)) {
        play_segment(playitem_number - 999); /* 1000..2979 -> play segment */
    } else {
        /* wrong item number. We go to the PLAY_WAIT_TIME_STATE and
	   hopefully, we will get good play item next time after
	   time expired or user inputs.*/
	play_state = PLAY_WAIT_TIME_STATE;
    }
}

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

  Parameters:

  Description: This function checks if we need to adjust the
               play_item_end_time.
------------------------------------------------------------------------*/
void check_playing_time()
{
    int mmssff;

    /* if we are playing item from play list, we need to check the */
    /* playing time.                                               */
    if ((cur_list_state ==  PLAY_LIST_STATE) &&
        (play_list_playing_time > 0)) {
        mmssff = logical2physical(5*(play_list_playing_time));
        play_item_end_time =
            adjCDtime(play_item_start_time, mmssff, 1);
    }
}

/*------------------------------------------------------------------------
  Function: play_track
  Parameters:
      track_number: The track number to be played. The track number is
          1 base. For VideoCD, the mpeg track number starts at 2 is
          converted to 1 base. Fox example: If we want to play track 2
          on video CD, the track_number should be 1.
  Description:
      It plays an MPEG audio/video track.
------------------------------------------------------------------------*/
static void play_track(int track_number)
{
    int mmssff;

    /* reset bad audio frame counter to zero at the beginning */
       bad_track_len = 0;

    /* reset picture_type to normal */
    picture_type = 0xe0;
    /* update panel */
    panel_play_track(track_number);

    /* 15-08-96 Alger */
    getTrackTime(track_number, &CurrentTrackTime);
    dsa_reset();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91黄色免费网站| 日欧美一区二区| 国产精品剧情在线亚洲| 久久嫩草精品久久久久| 中文字幕欧美激情一区| 亚洲欧美激情视频在线观看一区二区三区| 国产蜜臀av在线一区二区三区| 国产精品免费看片| 亚洲一区二区不卡免费| 看片网站欧美日韩| 国产999精品久久| 在线观看欧美精品| 欧美mv日韩mv国产网站app| 国产精品久久久久久久蜜臀| 亚洲人快播电影网| 老司机精品视频线观看86| 成人黄色小视频在线观看| 欧美日韩国产123区| 精品国产一区二区在线观看| 国产精品色婷婷久久58| 午夜精品久久久久久久99樱桃 | 美女视频免费一区| 97久久精品人人做人人爽 | 午夜精品久久久久久久| 99精品欧美一区二区三区小说| 欧美色国产精品| 亚洲免费伊人电影| 国产精品69久久久久水密桃| 欧美在线视频日韩| 亚洲天堂a在线| 成人动漫av在线| 国产视频在线观看一区二区三区| 亚洲国产精品久久久久婷婷884 | 久久久精品国产99久久精品芒果| 五月激情综合色| 欧美久久久久中文字幕| 亚洲综合一区二区精品导航| 91丨九色丨国产丨porny| 国产三级久久久| 久久99国产精品成人| 欧美日韩国产高清一区二区| 亚洲成人中文在线| 欧美日韩一区 二区 三区 久久精品 | 欧美日韩的一区二区| 亚洲一区二区视频在线| 在线精品视频免费播放| 亚洲一区二区三区四区在线| 在线观看网站黄不卡| 丝袜诱惑亚洲看片| 欧美一区在线视频| 国产精品一区二区三区99 | 精品在线一区二区三区| 国产亚洲婷婷免费| 在线亚洲一区观看| 日韩 欧美一区二区三区| 精品国产91九色蝌蚪| 国产精品一区二区在线观看网站| 国产亚洲欧美一区在线观看| 粉嫩高潮美女一区二区三区 | 精品在线视频一区| 1024精品合集| 欧美久久久久久蜜桃| 国产电影一区二区三区| 亚洲精选一二三| 欧美精品一区二区在线观看| 国产91对白在线观看九色| 亚洲一区二区综合| 久久精品欧美日韩精品| 欧美久久久一区| 91免费国产在线| 国产成人自拍网| 蜜臀91精品一区二区三区| 中文字幕成人av| 久久久噜噜噜久久人人看| 欧美日本不卡视频| 成人av网站在线| 国产在线精品免费| 日韩在线a电影| 亚洲成人久久影院| 亚洲精品视频一区| 亚洲欧美另类图片小说| 国产精品嫩草久久久久| 2021国产精品久久精品| 91精品婷婷国产综合久久性色| 色一情一伦一子一伦一区| 欧美日韩精品免费| 亚洲特黄一级片| 国产精品久久久久影院| 久久久久久亚洲综合| 久久综合色播五月| 欧美激情在线免费观看| 国产精品欧美久久久久无广告| 国产喷白浆一区二区三区| 欧美激情在线一区二区三区| 国产精品久久久久一区| 亚洲黄色免费网站| 日韩vs国产vs欧美| 久久99国产精品久久| 国产91露脸合集magnet| 91玉足脚交白嫩脚丫在线播放| 欧美亚洲国产一区二区三区va| 欧美区在线观看| 国产欧美一区二区精品性| 一区二区视频在线看| 免费欧美日韩国产三级电影| 国v精品久久久网| 在线免费精品视频| 日韩午夜在线观看视频| 国产日韩欧美激情| 日韩av午夜在线观看| 福利一区二区在线| 欧美一级片在线| 久久综合狠狠综合| 日韩影院精彩在线| 99久久综合国产精品| 日韩美一区二区三区| 亚洲免费在线视频一区 二区| 国产一区二区在线免费观看| 97se亚洲国产综合自在线| 精品sm在线观看| 五月婷婷综合网| 欧洲另类一二三四区| 中文字幕免费在线观看视频一区| 久久av资源网| 91精品国产欧美一区二区18| 亚洲精品成a人| 91成人看片片| 1024国产精品| 一本大道久久a久久综合| 国产精品久久久久影院| 成人午夜在线视频| 国产精品网站一区| 波多野结衣的一区二区三区| 国产婷婷色一区二区三区四区| 国产一区二区三区在线观看免费视频| 欧美视频一区二| 麻豆精品久久精品色综合| 欧美刺激午夜性久久久久久久| 秋霞国产午夜精品免费视频| 日韩午夜在线播放| 国产精品综合二区| 综合激情成人伊人| 欧美日高清视频| 免费观看在线色综合| 中文久久乱码一区二区| 不卡视频在线看| 婷婷久久综合九色综合伊人色| 欧美日韩国产综合一区二区| 成人免费观看男女羞羞视频| 亚洲国产精品久久艾草纯爱| 精品捆绑美女sm三区| av在线不卡电影| 久久国产视频网| 午夜婷婷国产麻豆精品| 中文字幕亚洲综合久久菠萝蜜| 日韩欧美国产一区二区在线播放| 国产成人综合在线| 一区二区三区免费在线观看| 精品国产一二三区| 欧美美女直播网站| 欧美做爰猛烈大尺度电影无法无天| 国产一区二区成人久久免费影院 | 麻豆国产欧美一区二区三区| 日韩一区有码在线| 国产精品欧美极品| 国产精品毛片久久久久久久| 欧美xingq一区二区| 欧美一区二区三区日韩视频| 欧美一区二区在线免费播放| 91国偷自产一区二区三区成为亚洲经典 | 欧美揉bbbbb揉bbbbb| 欧美综合一区二区| 欧美亚洲国产一区在线观看网站 | 亚洲三级在线播放| 一区二区三区欧美亚洲| 一二三四社区欧美黄| 亚洲综合一区二区精品导航| 午夜在线成人av| 激情国产一区二区| 成人午夜免费电影| 懂色av中文一区二区三区| 99免费精品在线| 精品视频1区2区| 久久久精品中文字幕麻豆发布| 欧美国产一区二区| 午夜欧美大尺度福利影院在线看| 蜜臀av性久久久久蜜臀aⅴ| 国产一区美女在线| 99精品视频中文字幕| 欧美一区二区三区免费在线看| 久久久久久久久久久久久久久99 | 国产精品每日更新在线播放网址| 亚洲另类春色国产| 久88久久88久久久| aaa欧美日韩| 26uuu亚洲婷婷狠狠天堂| 亚洲视频 欧洲视频| 久久99国产精品久久99| 欧美日韩高清一区二区三区| 国产精品久线观看视频|