Ejemplo n.º 1
0
static int mp_disk_detach_proc()
{
	int vol_num, tot_vol_num = 0;
	int ret;
	
	DM_DEBUG("Enter %s() ...\n", __FUNCTION__);
	
	ret = dm_ioctl(DM_CMD1_GET_VOL_NUM, DM_CMD_PARAM(MNT_TYPE_USB, 0, 0), &vol_num, sizeof(int));
	if (ret == 0 && vol_num > 0)
		tot_vol_num += vol_num;

	ret = dm_ioctl(DM_CMD1_GET_VOL_NUM, DM_CMD_PARAM(MNT_TYPE_SD, 0, 0), &vol_num, sizeof(int));
	if (ret == 0 && vol_num > 0)
		tot_vol_num += vol_num;

	ret = dm_ioctl(DM_CMD1_GET_VOL_NUM, DM_CMD_PARAM(MNT_TYPE_IDE, 0, 0), &vol_num, sizeof(int));
	if (ret == 0 && vol_num > 0)
		tot_vol_num += vol_num;

	ret = dm_ioctl(DM_CMD1_GET_VOL_NUM, DM_CMD_PARAM(MNT_TYPE_SATA, 0, 0), &vol_num, sizeof(int));
	if (ret == 0 && vol_num > 0)
		tot_vol_num += vol_num;
	
	if (tot_vol_num <= 0)
	{
		ap_udisk_close();
	}

	return 0;
}
Ejemplo n.º 2
0
PRESULT ap_mp_message_proc(UINT32 msg_type, UINT32 msg_code)
{
	UINT32 dev_type = DM_DEV_TYPE(msg_code);
	UINT32 dev_id   = DM_DEV_ID(msg_code);
	UINT8 back_saved;
	
#ifdef DVR_PVR_SUPPORT
	ap_pvr_message_proc(msg_type, msg_code, 0);
#endif
	
	if (msg_type == CTRL_MSG_SUBTYPE_STATUS_USBMOUNT)
	{
		if (dev_type != MNT_TYPE_SD)
		{
			pvr_disk_attach_proc(FALSE);
			disk_usb_num++;
		}
		mp_disk_attach_proc();
		win_disk_info_update(TRUE);
	#if (defined(GZ1110006)||defined(GZ1110007))
		win_compopup_init(WIN_POPUP_TYPE_SMSG);
		win_compopup_set_msg( NULL,OSD_GetUnicodeString(RS_USB_DIS_CO), 0);
		#ifdef SUPPORT_CAS9
            win_compopup_set_frame(290, 250, 448, 100);
             #endif
	       win_compopup_open_ext(&back_saved);	
	       osal_task_sleep(1000);
	      win_compopup_smsg_restoreback();
	#else
		dm_disk_show_hint(dev_type, dev_id, DM_HINT_CONNECT);
	#endif
		ap_send_msg(CTRL_MSG_SUBTYPE_CMD_STO, USB_STATUS_OVER, FALSE);
	}
	else if (msg_type == CTRL_MSG_SUBTYPE_STATUS_USBREMOUNT)
	{
		pvr_disk_attach_proc(TRUE);
	}
	else if (msg_type == CTRL_MSG_SUBTYPE_STATUS_USBUNMOUNT)
	{
		if (dev_type != MNT_TYPE_SD)
		{
			pvr_disk_detach_proc();

			if(disk_usb_num==2)
			{
				pvr_disk_attach_proc(FALSE);
			}
			disk_usb_num--;
		}
		mp_disk_detach_proc();
		win_disk_info_update(TRUE);
		SetReplayHintState(0);
		ShowReplayHintOSDOnOff(0);
	#if (defined(GZ1110006)||defined(GZ1110007))
		win_compopup_init(WIN_POPUP_TYPE_SMSG);
		win_compopup_set_msg( NULL,OSD_GetUnicodeString(RS_USB_DIS_DISCO), 0);
		#ifdef SUPPORT_CAS9
            win_compopup_set_frame(290, 250, 448, 100);
             #endif
	       win_compopup_open_ext(&back_saved);	
	       osal_task_sleep(1000);
	      win_compopup_smsg_restoreback();
	#else	
		dm_disk_show_hint(dev_type, dev_id, DM_HINT_DISCONNECT);
	#endif
		if (dev_type != MNT_TYPE_SD)
		{
			win_pvr_detach_proc();	// must call after pvr_disk_detach_proc()
		}
		win_mp_detach_proc(); // must call after mp_disk_detach_proc()
		ap_send_msg(CTRL_MSG_SUBTYPE_CMD_STO, USB_STATUS_OVER, FALSE);
	}
	else if (msg_type == CTRL_MSG_SUBTYPE_STATUS_USBREFLASH)
	{
		ap_udisk_close();
#ifdef NEW_DEMO_FRAME
		win_media_player_init((mp_callback_func)(mp_apcallback));
		mp_udisk_id = 0;
#else
        udisk_set_ingore_dir(PVR_ROOT_DIR);
 		mp_udisk_id = udisk_init(mp_udisk_id,(mp_callback_func)(mp_apcallback), __MM_MP_BUFFER_ADDR, __MM_MP_BUFFER_LEN);
#endif
	}
	return PROC_LOOP;
}
Ejemplo n.º 3
0
void power_off_process(void)
{
	struct  YCbCrColor bgcolor;
	extern struct rfm_device*   g_rfm_dev;
	extern struct scart_device* g_scart_dev;

#ifdef DVR_PVR_SUPPORT
	api_pvr_clear_up_all();
#endif	

	// SE: Mute before scart power off to avoid noise
	api_audio_set_mute(TRUE);

#if defined(HW_SS830C)||defined(HW_SS830C2)
	//Wirte GPIO#5 to high to avoid noise (used on SS830C)
	HAL_GPIO_BIT_DIR_SET(5, HAL_GPIO_O_DIR);
	HAL_GPIO_BIT_SET(5, 1);
#endif

	api_Scart_TVSAT_Switch(0);
	api_Scart_Power_OnOff(0);
	api_Scart_RGB_OnOff(0);/*CVBS mode*/
#ifdef VDAC_USE_SVIDEO_TYPE
	api_Svideo_OnOff(0);
#endif
	api_Scart_OutPut_Switch(0);
	SetLNBShortDetect(0);
	Set12VShortDetect(0);
	api_LNB_power(0);
#if(SYS_12V_SWITCH == SYS_FUNC_ON)
	 api_diseqc_set_12v(g_nim_dev, 0);
#endif    

#ifdef USB_MP_SUPPORT
	if(system_state == SYS_STATE_USB_MP)
	{
		ap_udisk_close();
	}
#endif

#ifndef NEW_DEMO_FRAME
	if(hde_get_mode() != VIEW_MODE_MULTI)
	    UIChChgStopProg(TRUE);    
#endif

#if	(TTX_ON == 1)
	ttx_enable(FALSE);
#endif
#if (SUBTITLE_ON == 1)
	subt_enable(FALSE);
#endif
	sie_close();

	OSD_ShowOnOff(OSDDRV_OFF);
#ifdef NEW_DEMO_FRAME
	sim_close_monitor(0);
#else
	si_monitor_off(0xFFFFFFFF);
#endif
	stop_tdt();
	epg_off();
	vpo_win_onoff(g_vpo_dev, FALSE);
#ifdef DUAL_VIDEO_OUTPUT
	if(g_sd_vpo_dev != NULL)
		vpo_win_onoff(g_sd_vpo_dev,TRUE);
#endif
	dm_set_onoff(0);

	bgcolor.uY = 16;
	bgcolor.uCb = 128;
	bgcolor.uCr = 128;		
	vpo_ioctl(g_vpo_dev,VPO_IO_SET_BG_COLOR,(UINT32)&bgcolor);

	//close drivers	
	dmx_stop( g_dmx_dev);
	dmx_close( g_dmx_dev);
    if (g_dmx_dev2)
    {
    	dmx_stop(g_dmx_dev2);
	    dmx_close(g_dmx_dev2);
    }
	deca_stop(g_deca_dev,0,ADEC_STOP_IMM);
	deca_close(g_deca_dev);
	vdec_close(g_decv_dev);

// Power HDMI phy at standby mode.
#ifdef HDTV_SUPPORT
	struct hdmi_device *hdmi_dev;
	hdmi_dev = (struct hdmi_device *)dev_get_by_id(HLD_DEV_TYPE_HDMI, 0);
	if (hdmi_dev != NULL)
	{
		if (SUCCESS != hdmi_dev->close(hdmi_dev))
		{
			PRINTF("hdmi_close failed!!\n");
			ASSERT(0);
		}
	}
#endif
	
	vpo_close(g_vpo_dev);
#ifdef DUAL_VIDEO_OUTPUT
	if(RET_SUCCESS!=vpo_close((struct vpo_device *)dev_get_by_id(HLD_DEV_TYPE_DIS, 1)))
		ASSERT(0);
#endif
    snd_close(g_snd_dev);
	nim_close(g_nim_dev);
	if(g_nim_dev2)
		nim_close(g_nim_dev2);
	if(g_rfm_dev)
		rfm_close(g_rfm_dev);
#if (SYS_MAIN_BOARD == BOARD_M3329E_DEMO01V01 || SYS_MAIN_BOARD == BOARD_DB_M3602_02V01 || SYS_MAIN_BOARD == BOARD_DB_M3602_04V01)
	if(g_scart_dev)
		scart_close(g_scart_dev);
#endif
	led_display_flag = 0;
#if (SYS_MAIN_BOARD == BOARD_S3602_DEMO)
	// Power off
	HAL_GPIO_BIT_DIR_SET(25, HAL_GPIO_O_DIR);
	HAL_GPIO_BIT_SET(25, 0);
#elif (SYS_MAIN_BOARD == BOARD_DB_M3602_02V01 || SYS_MAIN_BOARD == BOARD_DB_M3602_04V01)
	// Power off
/*alfred.wu 不允许ali的power off*/	
/*	
	HAL_GPIO_BIT_DIR_SET(61, HAL_GPIO_O_DIR);
	HAL_GPIO_BIT_SET(61, 1);
	
	// Tuner LNB power off
	HAL_GPIO_BIT_DIR_SET(73, HAL_GPIO_O_DIR);
	HAL_GPIO_BIT_SET(73, 1);
*//*end*/
#endif
}