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

📄 play.cc

📁 一个两碟控制的VCD的代码,两碟之间的转动及连续播放,已大量生产的CODE.
💻 CC
📖 第 1 页 / 共 5 页
字号:
	    track_list_max++;
	    track_list[i] = track_num;
	} else {
	    track_list[i] = i + 1;
	}
    }

    track_list_max = CDinfo.lasttrack;

/* PV..don't want to do this when pbc on...
    cur_track_index = 0;
    cur_track_number = track_list[0];
*/
}

void show_audio_panel(int show_osd)
{
    unsigned char *msg, *c_msg;
    int region;

    region = OSD_AUDIO_REGION; /* default */
    if (audio_mode < VOCAL_LEFT_LEFT) {
	panel_vocal_mode(VOCAL_OFF);
	OSD_clear_region(OSD_VOCAL_REGION);
	vocal_assist_on = 0;
    }
    vcx_audio_channel = audio_mode;
    if (audio_mode == LEFT_LEFT) {
	panel_audio_mode(AUDIO_L_L);
	assign_osd_msg(msg, MSG_left, c_msg, MSG_c_left);
    } else if (vcx_audio_channel == RIGHT_RIGHT) {
	panel_audio_mode(AUDIO_R_R);
	assign_osd_msg(msg, MSG_right, c_msg, MSG_c_right);
    } else if (vcx_audio_channel == LEFT_RIGHT) {
	panel_audio_mode(AUDIO_L_R);
	assign_osd_msg(msg, MSG_stereo, c_msg, MSG_c_stereo);
    }
    else {
	vocal_assist_on = 1;
	vcx_audio_channel = LEFT_RIGHT;
	panel_audio_mode(AUDIO_L_R);
	if (audio_mode == VOCAL_LEFT_LEFT) {
	    panel_vocal_mode(VOCAL_LEFT);
	    assign_osd_msg(msg, MSG_vocal_left, c_msg,
			   MSG_c_vocal_left);
	}
	else if (audio_mode == VOCAL_RIGHT_RIGHT) {
	    panel_vocal_mode(VOCAL_RIGHT);
	    assign_osd_msg(msg, MSG_vocal_right, c_msg,
			   MSG_c_vocal_right);
	}
#ifdef FOUR_LINE_OSD
	region = OSD_VOCAL_REGION;
#endif
    }

    if (show_osd) {
	OUTOSD(region, msg, c_msg, DISPLAY_TIME_OUT);
    }
}

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

  Parameters:

  Description:
------------------------------------------------------------------------*/
extern int SystemStatus;

int process_non_play_keys()
{
    int min, sec;
    int key_processed = 1;
    int save_key;

    /* check if we are in power off key */
#ifdef DSC
    if (IS_POWER_DOWN) {
	if (current_key != POWER_KEY) {
	    current_key = NO_KEY;
	    return (1);
	}
    }
#endif

#ifdef DVD_VCD
    if (current_key == POWER_KEY){
	av_sys_power_down();
    }
#endif
    save_key = current_key;
    current_key = NO_KEY;

#ifdef SCREEN_ON_TIME_SAME_KEY

#if (defined(FOUR_LINE_OSD) && !defined(BF43))
#define SCREEN_KEY_INDEX_LIMIT	3
#define TIME_KEY_INDEX_LIMIT	5
#else
#define SCREEN_KEY_INDEX_LIMIT	2
#define TIME_KEY_INDEX_LIMIT	4
#endif /* FOUR_LINE_OSD && not BF43 */

    /* Convert the osd and  time key. */
    if (!cd_stop && (save_key == SCREEN_ON_KEY)
	&& ((!(DiscMode & DISC_PBC_ON) || (SystemStatus != SYSTEM_PLAYING)))
#ifdef VCDROM
	&& (play_clip != VCD30_PLAY_CLIP)
#endif
    ) {
	/* Sync with OSD & TimeMode */
	if (!osd_time_key_index && (DiscMode & DISC_OSD_ON))
	    osd_time_key_index = SCREEN_KEY_INDEX_LIMIT - 1;

	osd_time_key_index++;
	if (osd_time_key_index < SCREEN_KEY_INDEX_LIMIT) {
	    save_key = SCREEN_ON_KEY;
	} else if (osd_time_key_index == TIME_KEY_INDEX_LIMIT) {
	    save_key = SCREEN_ON_KEY;
	    osd_time_key_index = 0;
	} else {
	    save_key = TIME_KEY;
	}
    }
#endif

#ifdef ZOOM

#ifdef HUALU_REMOTE
     if (zoom_level >= 1) {
         /* reset zoom level if the key is not good for zoom mode. */
         if (save_key == FF_KEY)
             save_key = ZOOM_RIGHT_KEY;
         else if (save_key == FB_KEY)
             save_key = ZOOM_LEFT_KEY;
         else if (save_key == NEXT_KEY)
             save_key = ZOOM_DOWN_KEY;
         else if (save_key == PREVIOUS_KEY)
             save_key = ZOOM_UP_KEY;
     }
#endif

#ifdef DONGPENG_REMOTE
     if (zoom_level >= 1) {
         /* reset zoom level if the key is not good for zoom mode. */
         if (save_key == FF_KEY)
             save_key = ZOOM_RIGHT_KEY;
         else if (save_key == FB_KEY)
             save_key = ZOOM_LEFT_KEY;
         else if (save_key == NEXT_KEY)
             save_key = ZOOM_UP_KEY;
         else if (save_key == PREVIOUS_KEY)
             save_key = ZOOM_DOWN_KEY;
     }
#endif

/*
    if (((zoom_key_timer + ONE_SECOND) > glbTimer)
        && (save_key == ZOOM_IN_KEY))  {
           save_key = NO_KEY;
           return;
        }
*/

    if (zoom_level) {
	/* reset zoom level if the key is not good for zoom mode. */
	if ((save_key < ZOOM_IN_KEY) || (save_key > ZOOM_DOWN_KEY)) {
	    zoom_reset();
	}
    }
#endif

   if (play_state == PLAY_NORMAL_STATE) {
        if (save_key == FREEZE_KEY ) {
           vcx_playaudio_only ^= 1;
           if (vcx_playaudio_only == 1)
                OUTOSD(1,MSG_freeze,MSG_c_freeze,0);
           else
              OUTOSD(OSD_FUNCTION_STATUS_REGION, clear_msg, clear_msg, 2);
           save_key = NO_KEY;
           return;
         }
        if ((save_key == PLAY_KEY) && (vcx_playaudio_only) ) {
           vcx_playaudio_only = 0;
           save_key = NO_KEY;
           OUTOSD(1,MSG_play,MSG_c_play,5);
           return;
          }
       }

   if (save_key == TV_MODE_KEY) {
	play_change_tv_mode();
	return (1);
    }

  if ((save_key == PLAY_KEY) && ((play_state == PLAY_NORMAL_STATE)
	 )) {
	   save_key = PAUSE_KEY;
    }

#ifdef JINRE_STOPRETURN
    if ( save_key == STOPRETURN_KEY) {
        if (!PBC_on) {
           save_key = STOP_KEY;
          }
        else {
         if ((cur_list_state == PLAY_SELECTION_STATE) && (play_state != PLAY_NORMAL_STATE)
            && (upper_selection_limit >= 1) && (selection_list_default_list_offset == -1)) {
                     save_key = STOP_KEY;
           } else {
                save_key = RETURN_KEY;
          }
        }
     }
#endif

#ifdef JINRE_REMOTE
  if ((play_state != PLAY_NORMAL_STATE) && (save_key == MUTE_KEY))
       {
         save_key =OSD_LANGUAGE_KEY ;
    }
#endif

#ifdef  SUOJIA_NEW_REMOTE
    if (zoom_level == 0) {
       if (save_key == ZOOM_UP_KEY)
             save_key = SHUFFLE_KEY;
        }
    if (zoom_level >= 1) {
        if (save_key == AV_SW_KEY)
         save_key = ZOOM_DOWN_KEY;
      }
#endif

#ifdef SUOJIA_860
    if ((play_state == PLAY_PROGRAM_STATE) && (save_key == STOP_KEY)) {
        save_key = CLEAR_KEY;
    }
#endif


    if ((save_key == NEXT_KEY) || (save_key == PREVIOUS_KEY))
	forceDSAabort = 0;

    if ((save_key == EJECT_KEY)
#ifdef TWO_CDS
       || (save_key == DISC_1_EJECT_KEY)
       || (save_key == DISC_2_EJECT_KEY)
#endif
    ) {
        screen_display = 0;
        forceDSAabort = 0;
	if ((cd_opened > 0)
#ifdef TWO_CDS
       && (((save_key == DISC_1_EJECT_KEY) && (cd_disc_slot == 2))
       || ((save_key == DISC_2_EJECT_KEY) && (cd_disc_slot == 1))
       || (save_key == EJECT_KEY))
#endif
	) {
            OUTOSD(OSD_FUNCTION_STATUS_REGION, MSG_close, MSG_c_close,
		   DISPLAY_TIME_OUT);

            process_close_key();
        } else {
#ifndef THREE_CDS
#ifdef TWO_CDS
        if ((play_state == ENTRY_STATE) || (play_state == PLAY_MENU_STATE) || (cd_stop)) {
	       CLEARALLOSD();
	       asm("nop");
	    }
#else
	    CLEARALLOSD();
	    asm("nop");
#endif
#endif /* THREE_CDS */
            OUTOSD(OSD_FUNCTION_STATUS_REGION, MSG_open, MSG_c_open,
		   DISPLAY_TIME_OUT);

#ifdef MDC_GAME
   #ifdef  SUOJIA_AVGAME_SW
       AVSEL_VCD;
   #else
     stopgame_echo();
   #endif
#endif

#ifdef TWO_CDS
            if (((play_state == ENTRY_STATE) || (play_state == PLAY_MENU_STATE) || (cd_stop))
                || (((cd_disc_slot == 1) && (save_key == DISC_1_EJECT_KEY))
                   || ((cd_disc_slot == 2) && (save_key == DISC_2_EJECT_KEY)))
            ) {
            if (save_key == DISC_1_EJECT_KEY) {
                panel_system_status(SYSTEM_1OPEN);
            } else {
                panel_system_status(SYSTEM_2OPEN);
            }
            }
#endif
           process_open_key(save_key);
       }
      save_key = NO_KEY;
#ifndef THREE_CDS
#ifndef TWO_CDS
        play_state = ENTRY_STATE;
#endif
#endif /* THREE_CDS */
        return (1);
    }

    /* check rotation key */
#ifdef THREE_CDS
    if (save_key == FIRST_DISC_KEY) {
	if (cd_disc_slot == 2)
	    save_key = ROTATE_CLOCK_KEY;
	else if (cd_disc_slot == 3)
	    save_key = ROTATE_ANTI_CLOCK_KEY;
	else
	    return (1);
    }

    if (save_key == SECOND_DISC_KEY) {
	if (cd_disc_slot == 3)
	    save_key = ROTATE_CLOCK_KEY;
	else if (cd_disc_slot == 1)
	    save_key = ROTATE_ANTI_CLOCK_KEY;
	else
	    return (1);
    }

    if (save_key == THIRD_DISC_KEY) {
	if (cd_disc_slot == 1)
	    save_key = ROTATE_CLOCK_KEY;
	else if (cd_disc_slot == 2)
	    save_key = ROTATE_ANTI_CLOCK_KEY;
	else
	    return (1);
    }

    if (((save_key == ROTATE_CLOCK_KEY) || (save_key == ROTATE_ANTI_CLOCK_KEY))
        && (play_state != PLAY_MENU_STATE)) {
	forceDSAabort = 0;

        process_stop_key();
	repeat_a2b = REPEAT_AB_OFF;
	repeat_mode = 0;
	shuffle_on = 0;
	PBC_on = 0;

#ifdef MDC_GAME
     stopgame_echo();
#endif
        if (save_key == ROTATE_CLOCK_KEY)
            dsa_rotate_disk(0);
        else
            dsa_rotate_disk(1);

        CDinited = 0;
        initCD();
	dsa_stop();
        play_state = ENTRY_STATE;
        return (1);
    }
#else /* ifndef THREE_CDS */
#ifdef TWO_CDS
    if (save_key == FIRST_DISC_KEY) {
	if (cd_disc_slot == 2)
	    save_key = ROTATE_CLOCK_KEY;
	else
	    return (1);
    }

    if (save_key == SECOND_DISC_KEY) {
	if (cd_disc_slot == 1)
	    save_key = ROTATE_ANTI_CLOCK_KEY;
	else
	    return (1);
    }

     if (((save_key == ROTATE_CLOCK_KEY) || (save_key == ROTATE_ANTI_CLOCK_KEY))) {
#ifdef LEDON
        vfdled = 0xff;
#endif
#ifdef VCDROM
    vcd30_cwdloc = 0;
    play_clip = 0;
    VCD30_DISC = 0;
#endif
       	forceDSAabort = 0;
	CLEARALLOSD();
       if (1)
        {
	continue_play = 0;
        if ((play_state == ENTRY_STATE) && (cd_opened >= 1))  {
	   disc_ltoc &= 0x00;
	} else {
	   process_stop_key(0,0);
	   screen_display = 0;
	}
       	forceDSAabort = 0;
        trans_dsa(0x0b, 0);
	panel_system_status(SYSTEM_CLOSE);
	forceDSAabort = 0;
	show_still_pic();
	OSD_clear_all();
	dsa_stop();
	trans_dsa(0x14,0);
        dsa_stop();
	system_reset();
	clear_dec();
	vcx_user_video_stream = 0xe0;
	repeat_a2b = REPEAT_AB_OFF;
	repeat_mode = 0;
	shuffle_on = 0;
	PBC_on = 0;
        CDinited = 0;
        if (!process_change_disc(0)) {
	   if (cd_disc_slot == 2) {
	      TRAY_OPEN;
	      do {
		 receive_dsa();
	      } while (DISC_1_CLOSE_IS_HIGH);
	   } else {
	      TRAY_CLOSE;
	      do {
		 receive_dsa();
	      } while (DISC_2_CLOSE_IS_HIGH);
	   }
	   TRAY_STOP;
           trans_dsa(0x14,0);
           dsa_stop();
           process_change_disc(0);
	}

      #ifdef  FU271
         panel_disc_slot(cd_disc_slot);
      #endif

        if (cd_opened == 0) {
           if (forceDSAabort)
             return(1);
           dsa_stop();
           trans_dsa(0x0b, 0);
           play_state = ENTRY_STATE;
        }
        cd_opened = 0;
	CDinited = 0;

⌨️ 快捷键说明

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