?? lr.c
字號:
/***********************************************************************/
/* File: */
/* Copyright (c) 2000 ZORAN Corporation, All Rights Reserved */
/* THIS IS PROPRIETARY SOURCE CODE OF ZORAN CORPORATION */
/* */
/* =========== */
/* Descripton: */
/* =========== */
/* */
/* Log: */
/* === */
/* $Name: V_1_16 V_1_15 V_1_14 V_1_13 V_1_12 NV_1_00 V_1_11 $
/* $Header: v:/dsg/rcs/dsg/vp2k/Customer/menu/zoran/lr.c 1.11 2001/06/06 06:15:08 dingming Exp $
/* $Log: lr.c $
/* Revision 1.11 2001/06/06 06:15:08 dingming
/* font 32X24 complile
/* Revision 1.10 2001/03/09 05:11:10 charlie
/* Cast MS_create_choice text_list parameter as non-const
/* Revision 1.9 2000/11/17 18:54:13 charlie
/* Use C_FOCUSED
/* Revision 1.8 2000/11/09 04:07:31 cliff
/***********************************************************************/
#include <stdio.h>
#include <string.h>
#include "sysdefs.h"
#include "..\..\..\ui\menu_sys\ms_wdgt.h"
#include "..\..\..\ui\menu_sys\osd_drv.h"
#include "..\..\..\decoder\osdrendr.h"
#include "..\..\..\decoder\osdlayou.h"
#ifdef FONT32X24
#include "..\..\..\customer\dragon\strings\strings.h" //DM0605
#else
#include "..\..\..\ui\strings\strings.h"
#endif
#include "menu_var.h"
#include "..\..\..\playcore\ps\ps.h"
#include "..\..\..\playcore\coremain\coregdef.h"
#include "..\..\..\kernel\eventdef.h"
// REMINDER This is not needed if we don't use oHWLimit
#include "..\..\..\Decoder\decoder.h"
#include "lr.h"
/*
//
// Choice labels which should be defined and added to the parent by the caller
//
const MS_STATIC mssLRMode = {
{
0,
ALIGN_LEFT,
I_COLOR,
{LRMODE_X, LRMODE_Y, 200, OPTION_HEIGHT},
NO_PARENT,
static_user_op,
},
(void *)S_LR_MODE
};
*/
//
// L/R Mode (no karaoke) item information
//
const OSD_MESSAGES lr_nokar_list_c[] = {
S_STEREO,
S_LEFT,
S_RIGHT,
S_MIX
};
const MS_TEXT_LIST lr_nokar_list = {
4,(int *)lr_nokar_list_c
};
//
// L/R Mode Karaoke (non-AC3) item information
//
const OSD_MESSAGES lr_kar_list_c[] = {
S_STEREO,
S_LEFT,
S_RIGHT,
S_MIX,
S_PARTNER_LEFT,
S_PARTNER_RIGHT
};
const MS_TEXT_LIST lr_kar_list = {
6,(int *)lr_kar_list_c
};
//
// L/R Mode Karaoke AC3 item information
//
const OSD_MESSAGES lr_kar_ac3_list_c[] = {
S_STEREO,
S_LEFT,
S_RIGHT,
S_NO_VOCAL,
S_PARTNER_STEREO,
S_PARTNER_LEFT,
S_PARTNER_RIGHT
};
const MS_TEXT_LIST lr_kar_ac3_list = {
7,(int *)lr_kar_ac3_list_c
};
//
// L/R Mode (no karaoke) handling
//
void lr_adjust( MS_CHOICE *msChoice, int bKaraokeSetting )
{
switch ( bKaraokeSetting )
{
case KARAOKE_SETTING_OFF:
msChoice->text_list = (MS_TEXT_LIST *) &lr_nokar_list;
msChoice->action = lr_nokar_action;
break;
case KARAOKE_SETTING_ON:
if ( gcst.mAudioStream == AUDIO_STREAM_AC3 )
{
msChoice->text_list = (MS_TEXT_LIST *) &lr_kar_ac3_list;
msChoice->action = lr_kar_ac3_action;
}
else
{
msChoice->text_list = (MS_TEXT_LIST *) &lr_kar_list;
msChoice->action = lr_kar_action;
}
break;
} // switch
}
void lr_nokar_choice(MS_CHOICE *msChoice)
{
int iChoice;
switch (gtps.mDMM)
{
case DMM_SETTING_LEFT_ONLY:
iChoice = ITEMNUM_NOKAR_LEFT;
break;
case DMM_SETTING_RIGHT_ONLY:
iChoice = ITEMNUM_NOKAR_RIGHT;
break;
case DMM_SETTING_AVERAGE:
iChoice = ITEMNUM_NOKAR_MIX;
break;
case DMM_SETTING_NORMAL:
// Fall through
default:
iChoice = ITEMNUM_NOKAR_STEREO;
break;
}
msChoice->current_choice = iChoice;
}
void lr_nokar_action(int num)
{
DWORD d_Cmd;
int iLR[] = { DMM_SETTING_NORMAL, DMM_SETTING_LEFT_ONLY, DMM_SETTING_RIGHT_ONLY, DMM_SETTING_AVERAGE };
dbouts("\nL/R Mode is ");
dbouti( num );
num = iLR[ num ];
d_Cmd = (((DWORD)PS_UPDATE_DMM_SETTING)<<16) + (DWORD) num;
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
d_Cmd = (DWORD) PARTNER_SETTING_OFF;
d_Cmd += (((DWORD)PS_UPDATE_PARTNER_SETTING)<<16);
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
}
//
// L/R Mode Karaoke (non-AC3) handling
//
void lr_kar_choice(MS_CHOICE *msChoice)
{
int iChoice;
switch (gtps.mDMM)
{
case DMM_SETTING_LEFT_ONLY:
if ( gtps.mPartner )
iChoice = ITEMNUM_KAR_PARTNER_LEFT;
else
iChoice = ITEMNUM_KAR_LEFT;
break;
case DMM_SETTING_RIGHT_ONLY:
if ( gtps.mPartner )
iChoice = ITEMNUM_KAR_PARTNER_RIGHT;
else
iChoice = ITEMNUM_KAR_RIGHT;
break;
case DMM_SETTING_AVERAGE:
iChoice = ITEMNUM_KAR_MIX;
break;
case DMM_SETTING_NORMAL:
// Fall through
default:
iChoice = ITEMNUM_KAR_STEREO;
break;
}
msChoice->current_choice = iChoice;
}
void lr_kar_action(int num)
{
DWORD d_Cmd;
int iLR[] = { DMM_SETTING_NORMAL, DMM_SETTING_LEFT_ONLY, DMM_SETTING_RIGHT_ONLY, DMM_SETTING_AVERAGE, DMM_SETTING_LEFT_ONLY, DMM_SETTING_RIGHT_ONLY };
int iPartner[] = { PARTNER_SETTING_OFF, PARTNER_SETTING_OFF, PARTNER_SETTING_OFF, PARTNER_SETTING_OFF, PARTNER_SETTING_ON, PARTNER_SETTING_ON };
dbouts("\nL/R Mode is ");
dbouti( num );
d_Cmd = (DWORD) iLR[ num ];
d_Cmd += (((DWORD)PS_UPDATE_DMM_SETTING)<<16);
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
d_Cmd = (DWORD) iPartner[ num ];
d_Cmd += (((DWORD)PS_UPDATE_PARTNER_SETTING)<<16);
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
}
//
// L/R Mode Karaoke AC3 handling
//
void lr_kar_ac3_choice(MS_CHOICE *msChoice)
{
int iChoice;
switch (gtps.mDMM)
{
case DMM_SETTING_LEFT_ONLY:
if ( gtps.mPartner )
iChoice = ITEMNUM_KAR_AC3_PARTNER_LEFT;
else
iChoice = ITEMNUM_KAR_AC3_LEFT;
break;
case DMM_SETTING_RIGHT_ONLY:
if ( gtps.mPartner )
iChoice = ITEMNUM_KAR_AC3_PARTNER_RIGHT;
else
iChoice = ITEMNUM_KAR_AC3_RIGHT;
break;
case DMM_SETTING_AVERAGE:
iChoice = ITEMNUM_KAR_AC3_NO_VOCAL;
break;
case DMM_SETTING_NORMAL:
// Fall through
default:
if ( gtps.mPartner )
iChoice = ITEMNUM_KAR_AC3_PARTNER_STEREO;
else
iChoice = ITEMNUM_KAR_AC3_STEREO;
break;
}
msChoice->current_choice = iChoice;
}
void lr_kar_ac3_action(int num)
{
DWORD d_Cmd;
int iLR[] = { DMM_SETTING_NORMAL, DMM_SETTING_LEFT_ONLY, DMM_SETTING_RIGHT_ONLY, DMM_SETTING_AVERAGE, DMM_SETTING_NORMAL, DMM_SETTING_LEFT_ONLY, DMM_SETTING_RIGHT_ONLY };
int iPartner[] = { PARTNER_SETTING_OFF, PARTNER_SETTING_OFF, PARTNER_SETTING_OFF, PARTNER_SETTING_OFF, PARTNER_SETTING_ON, PARTNER_SETTING_ON, PARTNER_SETTING_ON };
dbouts("\nL/R Mode is ");
dbouti( num );
d_Cmd = (DWORD) iLR[ num ];
d_Cmd += (((DWORD)PS_UPDATE_DMM_SETTING)<<16);
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
d_Cmd = (DWORD) iPartner[ num ];
d_Cmd += (((DWORD)PS_UPDATE_PARTNER_SETTING)<<16);
ie_send_ex(IE_CORE_UPDATE_PS, (void *)d_Cmd);
}
/*
//
// These must be done in the caller's close function for the container menu
//
static void on_lr_close(void)
{
printf("LR closed\n");
SAFELY_DELETE(LR_CHOICE);
}
*/
MS_CHOICE *open_lr_choice(const MS_POS *p_pos, MS_COLOR msColor, const MS_POS *p_choice_pos)
{
MS_CHOICE *choice;
if ( !gtps.mKaraoke )
{
choice = MS_create_choice(p_pos,msColor,&lr_nokar_list,p_choice_pos,lr_nokar_action,MS_HOT_SPOT);
lr_nokar_choice(choice);
}
else
if ( gcst.mAudioStream == AUDIO_STREAM_AC3 )
{
choice = MS_create_choice(p_pos,msColor,&lr_kar_ac3_list,p_choice_pos,lr_kar_ac3_action,MS_HOT_SPOT);
lr_kar_ac3_choice(choice);
}
else
{
choice = MS_create_choice(p_pos,msColor,&lr_kar_list,p_choice_pos,lr_kar_action,MS_HOT_SPOT);
lr_kar_choice(choice);
}
return choice;
}
/*
//
// These must be done in the caller's open function for the container menu
//
void open_lr(void)
{
screen = MS_create_screen((MS_POS *)&screen_pos,screen_color,0,on_lr_close,layout);
#ifdef DISABLE
if ( !gtps.mKaraoke )
{
LR_CHOICE = MS_create_choice(&lr_choice_pos,i_color,&lr_nokar_list,&dont_care_pos,lr_nokar_action,MS_HOT_SPOT);
lr_nokar_choice(LR_CHOICE);
}
else
if ( gcst.mAudioStream == AUDIO_STREAM_AC3 )
{
LR_CHOICE = MS_create_choice(&lr_choice_pos,i_color,&lr_kar_ac3_list,&dont_care_pos,lr_kar_ac3_action,MS_HOT_SPOT);
lr_kar_ac3_choice(LR_CHOICE);
}
else
{
LR_CHOICE = MS_create_choice(&lr_choice_pos,i_color,&lr_kar_list,&dont_care_pos,lr_kar_action,MS_HOT_SPOT);
lr_kar_choice(LR_CHOICE);
}
#else
LR_CHOICE = open_lr_choice(&lr_choice_pos, i_color, &dont_care_pos);
#endif // DISABLE
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)LR_CHOICE, C_FOCUSED);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&mssTitle, !C_FOCUSED);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&mssLRMode, !C_FOCUSED);
MS_dialog_display((MS_DIALOG*)screen);
}
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -