⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 play.cc

📁 一个两碟控制的VCD的代码,两碟之间的转动及连续播放,已大量生产的CODE.
💻 CC
📖 第 1 页 / 共 5 页
字号:
        forceDSAabort = 0;
        cd_tray_just_closed = 1;
        return (1);
	} else {
	  save_key = NO_KEY;
	  forceDSAabort = 0;
	  return(1);
	}
	save_key = NO_KEY;
        return (1);
    }
#else
    /* check cd type and tray status first */
    if (cd_opened) {
        if (initCD()) {
            current_key = save_key;
        }
        return (1);
    }
#endif /* TWO_CDS   */
#endif /* THREE_CDS */

    if (CDinfo.type == CD_NODISC) {
	assign_osd_msg(osd_msg, MSG_no_disc, c_osd_msg, MSG_c_no_disc);
        play_state = ENTRY_STATE;
        return (1);
    } else if (CDinfo.type == CD_UNKNOWN) {
        OUTOSD(OSD_FUNCTION_STATUS_REGION, MSG_unknown_disc, MSG_c_unknown_disc, 0);
        play_state = ENTRY_STATE;
        return (1);
    }

  if ((play_state != PLAY_MENU_STATE)
#ifdef SGAME
     && (play_state != PLAY_GAME_MENU_STATE)
     && (PLAY_vcd_type != VCD_TYPE_game)
#endif

#ifdef  MDC_GAME
	&& (play_state != PLAY_GAME_STATE)
#endif
	) {
    switch (save_key) {

    case ERROR_KEY:
         if (concealment_mode == BLOCKY)
             {
               concealment_mode = JERKY;
                OUTOSD(OSD_FUNCTION_STATUS_REGION, MSG_ma_you, MSG_ma_you,DISPLAY_TIME_OUT);

             }
         else
            {
            concealment_mode = BLOCKY;
            OUTOSD(OSD_FUNCTION_STATUS_REGION, MSG_ma_wu, MSG_ma_wu,DISPLAY_TIME_OUT);
             }
        break;
   case KEY_PLUS:
	if (vcx_karaokey < 7)
	  vcx_karaokey++;
	panel_key_shift(vcx_karaokey);
        break;

    case KEY_MINUS:
	if (vcx_karaokey > -7)
	  vcx_karaokey--;
	panel_key_shift(vcx_karaokey);
        break;

    case KEY_RESUME_KEY:
        vcx_karaokey = 0;
	panel_key_shift(vcx_karaokey);
        break;

#ifdef SUOJIA_AVGAME_SW
   case AV_SW_KEY:
     if (avinto_flag==1) {
        av_sw_flag ^= 1;
        if (av_sw_flag == 1) {
            current_key = PAUSE_KEY;
            AVSEL_GAME;
            vcx_echo = 0;
            if (vcx_echo == -1)  vcx_echo = 0;
            if (vcx_echo == 0) { /* -1 -> 0 */
		MIC_init();
		MIC_start_take_in();
	    }

       } else {
           current_key = PLAY_KEY;
           AVSEL_VCD;
         }
      }
       break;
#endif



#ifdef ECHO
#ifdef JINRE_USE_ECHO
    case ECHO_PLUS:
#ifdef MDC_GAME
      if (play_state == PLAY_GAME_STATE) return;
#endif

       if (EAUX9_HIGH)
        {
        if (vcx_echo < vcx_echo_max_level) {
           vcx_echo ++;
           vcx_echo1=vcx_echo;
           if (vcx_echo == 0) { /* -1 -> 0 */
              MIC_init();
              MIC_start_take_in();
	    }
          MIC_clear_buffer();
	}
	OSD_echo();
       }
	break;
    case ECHO_MINUS:
#ifdef MDC_GAME
      if (play_state == PLAY_GAME_STATE) return;
#endif

       if (EAUX9_HIGH)
        {
	if (vcx_echo > -1) {
	    vcx_echo --;
            vcx_echo1=vcx_echo;
	    if (vcx_echo == -1) { /* 0 -> -1 */
		MIC_stop_take_in();
	    }
	}
	OSD_echo();
        }
        break;
#else
    case ECHO_PLUS:
#ifdef MDC_GAME
      if (play_state == PLAY_GAME_STATE) return;
#endif
        if (vcx_echo < vcx_echo_max_level) {
	    vcx_echo ++;
	    if (vcx_echo == 0) { /* -1 -> 0 */
		MIC_init();
		MIC_start_take_in();
	    }
            MIC_clear_buffer();
	}
	OSD_echo();
	break;
    case ECHO_MINUS:
#ifdef MDC_GAME
      if (play_state == PLAY_GAME_STATE) return;
#endif
	if (vcx_echo > -1) {
	    vcx_echo --;
	    if (vcx_echo == -1) { /* 0 -> -1 */
		MIC_stop_take_in();
	    }
	}
	OSD_echo();
	break;
#endif
#endif

#ifdef USE_SLEEP
    case AUTO_POWER_OFF_KEY:
        sleep_flag += 1;
        if (sleep_flag == 11)
	   sleep_flag = 0;
	if (sleep_flag == 1) {
	     sleep_limit_timer = NINETY_NINE_MINUTE;
	     assign_osd_msg(osd_msg, MSG_ninimi_msg, c_osd_msg, MSG_c_ninimi_msg);
	} else if (sleep_flag == 2) {
	     sleep_limit_timer = NINETY_MINUTE;
	     assign_osd_msg(osd_msg, MSG_nimi_msg, c_osd_msg, MSG_c_nimi_msg);
	} else if (sleep_flag == 3) {
	     sleep_limit_timer = EIGHTY_MINUTE;
	     assign_osd_msg(osd_msg, MSG_eimi_msg, c_osd_msg, MSG_c_eimi_msg);
	} else if (sleep_flag == 4) {
	     sleep_limit_timer = SEVENTY_MINUTE;
	     assign_osd_msg(osd_msg, MSG_semi_msg, c_osd_msg, MSG_c_semi_msg);
	} else if (sleep_flag == 5) {
	     sleep_limit_timer = SIXTY_MINUTE;
	     assign_osd_msg(osd_msg, MSG_simi_msg, c_osd_msg, MSG_c_simi_msg);
	} else if (sleep_flag == 6) {
	     sleep_limit_timer = FIFTY_MINUTE;
	     assign_osd_msg(osd_msg, MSG_fimi_msg, c_osd_msg, MSG_c_fimi_msg);
	} else if (sleep_flag == 7) {
	     sleep_limit_timer = FOURTY_MINUTE;
	     assign_osd_msg(osd_msg, MSG_fomi_msg, c_osd_msg, MSG_c_fomi_msg);
	} else if (sleep_flag == 8) {
	     sleep_limit_timer = THIRTY_MINUTE;
	     assign_osd_msg(osd_msg, MSG_thmi_msg, c_osd_msg, MSG_c_thmi_msg);
	} else if (sleep_flag == 9) {
	     sleep_limit_timer = TWENTY_MINUTE;
	     assign_osd_msg(osd_msg, MSG_twmi_msg, c_osd_msg, MSG_c_twmi_msg);
	} else if (sleep_flag == 10) {
	     sleep_limit_timer = TEN_MINUTE;
	     assign_osd_msg(osd_msg, MSG_temi_msg, c_osd_msg, MSG_c_temi_msg);
	} else if (sleep_flag == 0) {
	     assign_osd_msg(osd_msg, MSG_tioff_msg, c_osd_msg, MSG_c_tioff_msg);
	}
	sleep_timer = glbTimer;
	break;
#endif

#if SPATIAL & KARAOKE
    case SURROUND_KEY:
#ifdef MDC_GAME
      if (play_state == PLAY_GAME_STATE) return;
#endif
	SPA_msg = SPA_set_level((SPA_level >= SPA_VOCAL_CUT) ? SPA_OFF
			    : SPA_level + 1);
	assign_osd_msg(osd_msg, SPA_msg, c_osd_msg, SPA_msg);
	osd_region = OSD_AUDFX_REGION;
	break;
#endif

#ifdef JINRE_USE_ECHO
    case VOCAL_ASSIST_KEY:
#ifdef MDC_GAME
      if (play_state == PLAY_GAME_STATE) return;
#endif
     audio_mode++;
     if (echo_vocal_flag ==1)  {
       audio_mode1=audio_mode;
       if ((play_item_type == DATA_TRACK) &&
           (audio_mode > (LEFT_RIGHT + 2)))

	{
            audio_mode = LEFT_LEFT;
        } else if ((play_item_type == AUDIO_TRACK) &&
		   (audio_mode > LEFT_RIGHT)) {	/* Audio track..no vocal assist */
            audio_mode = LEFT_LEFT;
	}
      } else  {
        if ((play_item_type == DATA_TRACK) &&
          (audio_mode > (LEFT_RIGHT)))

	{
            audio_mode = LEFT_LEFT;
        } else if ((play_item_type == AUDIO_TRACK) &&
		   (audio_mode > LEFT_RIGHT)) {	/* Audio track..no vocal assist */
            audio_mode = LEFT_LEFT;
	}
     }
       show_audio_panel(1); /* 1 -> show osd */
       break;
#else
    case VOCAL_ASSIST_KEY:
#ifdef MDC_GAME
      if (play_state == PLAY_GAME_STATE) return;
#endif
        audio_mode++;

	/* additional vocal LL/RR */
#ifdef ONE
        if ((play_item_type == DATA_TRACK) &&
          (audio_mode > (LEFT_RIGHT)))
#else
#ifdef  SUOJIA_NEW_REMOTE
	if ((play_item_type == DATA_TRACK) &&
	    (audio_mode > (LEFT_RIGHT)))
#else
        if ((play_item_type == DATA_TRACK) &&
	    (audio_mode > (LEFT_RIGHT + 2)))
#endif
#endif
	{
            audio_mode = LEFT_LEFT;
        } else if ((play_item_type == AUDIO_TRACK) &&
		   (audio_mode > LEFT_RIGHT)) {	/* Audio track..no vocal assist */
            audio_mode = LEFT_LEFT;
	}

	show_audio_panel(1); /* 1 -> show osd */
        break;

#endif
    case REPEAT_KEY:
#ifdef VCDROM
	if (play_clip) {
	    key_processed = 0;	/* do not accept key repeat in vcd3.0 */
	} else {
           if (PBC_on) {
             assign_osd_msg(osd_msg, error_msg, c_osd_msg, error_msg);
           } else {
             repeat_mode = panel_repeat_mode_change();
          }
	}
#else
	repeat_mode = panel_repeat_mode_change();
#endif
        break;
    case PBC_KEY:
#ifdef VCDROM
	if (play_clip == VCD30_PLAY_CLIP) {
	    play_clip = VCD30_PLAY_VCD;
	    VCD30_event = VCD30_PLAY_VCD;
	    return;
	}
#endif

        if ((!play_clip) && (CDinfo.type == CD_VCD) &&
	    (PLAY_vcd_type & VCD_TYPE_20)) {
            if (!cd_stop)
                process_stop_key();

            if (play_state == PLAY_MENU_STATE) {
                vcx_user_video_stream = 0xe0;
                fill_screen(COLOR_BLUE);
            }

	    /* process_PBC_key() after process_stop_key()..OSD related */
            process_PBC_key();

            play_state = ENTRY_STATE;

        } else {
            /* PBC off can not change to PBC on */
	    assign_osd_msg(osd_msg, error_msg, c_osd_msg, error_msg);
        }
        break;
    case TIME_KEY:
#ifdef REAL_CLOCK
	if (play_state != ENTRY_STATE) {
	    /* when ENTRY_TATE, time key is used for clock setting. */
#endif
       if (!screen_display) {
           start_timer = glbTimer;
           screen_flag = 1;
           screen_display = 1;
        }
       panel_time_mode_change();

#ifdef REAL_CLOCK
       } else {
	   key_processed = 0;
       }
#endif
        break;

#ifdef JINRE_REMOTE
    case SCREEN_ON_KEY:
        screen_display += 1;
        if (screen_display == 4)
	   screen_display = 0;
        else if (screen_display >= 1)
           panel_time_mode_change();
	if (!screen_display)
	    OSD_clear_all();
        break;
#else
    case SCREEN_ON_KEY:
         if (!play_clip)
           screen_display ^= 1;
         if (!screen_display)
           OSD_clear_all();

#ifdef SCREEN_ON_TIME_SAME_KEY
	if (!cd_stop && (osd_time_key_index == 0))
	    panel_time_mode_change();
#endif
        break;

#endif


#ifdef VOLUME_CONTROL
    case MUTE_KEY:
	process_mute_key();
	break;
    case VOLUME_UP_KEY:
	process_volume_key(1);	/* increase one level. */
	break;
    case VOLUME_DOWN_KEY:
	process_volume_key(-1);	/* decrease one level. */
	break;
#endif

     case XUECHANG_KEY:
        xuechang_flag +=1;
        if (xuechang_flag ==1) {
           if (PBC_on) {
                xuechang_flag =0;
                assign_osd_msg(osd_msg, error_msg, c_osd_msg, error_msg);
          } else {
           if (play_state == PLAY_NORMAL_STATE) {
              continue_sec = (servo_info & 0xff);
              continue_min = ((servo_info >> 8) & 0xff);

	   if (continue_sec < 0x05 ) {
	       continue_sec += 0x55;
	       if (continue_min >= 1)
		  continue_min -= 1;
	       else
		  continue_sec = 0x00;
	    } else {
	       continue_sec -= 0x05;
	       if ((continue_sec & 0x0f) >= 0x0a) {
		   continue_sec -= 0x06;
	       }
	    }

           continuetime = ((continue_min << 16) | (continue_sec << 8)) | 0 ;
	   servo_info = (continue_min << 8) | continue_sec;
	   get_current_track_time();
	   get_track_info(track_list[cur_track_index], &play_item_start_time,
		   &play_item_end_time, &play_item_type);
	   play_item_real_end_time = play_item_end_time;
	   play_item_begin_time = play_item_start_time;
	   continuetime1 = adjCDtime(play_item_start_time, continuetime, 1);
	   compute_cd_total_remain();
	   cur_list_state = PLAY_TRACK_LIST_STATE;
	   check_entry_number(cur_track_number, continuetime1);
	   panel_play_track(cur_track_number);
	   play_item_mode = PLAY_INFO_STOP_MODE;
	   play_item_start_time = continuetime1;
           xuechang_flag =0;
           }
         }
     }



       break;



#ifdef USE_CLEAR_KEY
    case CLEAR_KEY:
        /* clear repeat a2b mode */
        if (repeat_a2b == REPEAT_AB_END) {
            /* reset the play time back to normal */
            repeat_a2b = REPEAT_AB_OFF;
	    second_endCDtime = x00999999;
            play_item_start_time = play_item_begin_time;
            play_item_end_time = play_item_real_end_time;
            endCDtime = play_item_end_time;
	    if (play_item_type == AUDIO_TRACK)
	    	dsa_release(play_item_begin_time, play_item_real_end_time);
            panel_repeat_ab(REPEAT_AB_OFF);
        }  e

⌨️ 快捷键说明

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