📄 run_time.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/run_time.c 1.22 2001/06/13 03:15:32 dingming Exp $
/* $Log: run_time.c $
/* Revision 1.22 2001/06/13 03:15:32 dingming
/* Revision 1.21 2001/06/06 06:15:10 dingming
/* font 32X24 complile
/* Revision 1.20 2001/02/08 00:32:09 tia
/* Fix scratch pad overwrite bug.
/* Revision 1.19 2001/01/27 00:09:59 bhupeshv
/* In open_run_time() commented call to sc_SetBytes(). To be confirmed with Charlie.
/* Revision 1.18 2000/12/14 02:57:17 charlie
/* Support French language
/* Revision 1.17 2000/12/12 22:35:24 charlie
/* Partially fixed OSD problem when ejecting MP3 disc
/* Revision 1.16 2000/11/17 22:04:17 charlie
/* Fixed tmp msg/string erase problem
/* Revision 1.15 2000/11/17 18:54:18 charlie
/* Use C_FOCUSED
/* Revision 1.14 2000/11/09 04:07:33 cliff
/***********************************************************************/
#include <stdio.h>
#include <string.h>
#include "sysdefs.h"
#include "..\..\..\ui\menu_sys\ms_wdgt.h"
#include "..\..\..\ui\menu_sys\ms_lib.h"
#include "..\..\..\ui\menu_sys\osd_drv.h"
#include "..\..\..\decoder\osdrendr.h"
#include "..\..\..\decoder\osdlayou.h"
#ifdef FONT32X24 //DM0605
#include "..\..\..\customer\dragon\strings\strings.h"
#else
#include "..\..\..\ui\strings\strings.h"
#endif
#include "..\..\playcore\fileSys\filesrch.h"
#include "..\..\..\playcore\scpad\scmgr.h"
#include "menu_var.h"
static const MS_POS run_time_pos = {60, 60, 630, 360};
static const MS_COLOR screen_color = 0x0000;
extern const MS_STATIC c_time_stat;
extern const MS_STATIC t_time_stat;
static OSD_MESSAGES prev_msg=-1;
const MS_STATIC tmp_msg = {
{
MS_STRING_ON_SC,
ALIGN_LEFT,
I_COLOR,
{10, MS_LINE_0, 248+36, MS_LINE_HEIGHT},
NO_PARENT,
static_user_op,
},
(void *)SC_TMP_MSG_ADDR
};
const MS_STATIC tmp_string = {
{
MS_ASCII | MS_STRING_ON_SC,
ALIGN_LEFT,
I_COLOR,
{10, MS_LINE_0, 248+36, MS_LINE_HEIGHT},
NO_PARENT,
static_user_op,
},
(void *)SC_TMP_STR_ADDR
};
const MS_STATIC permanent_repeat_msg = {
{
MS_STRING_ON_SC,
ALIGN_LEFT,
I_COLOR,
#ifdef CHINESE_OSD
{492,MS_LINE_1,108,MS_LINE_HEIGHT},
#else //german or spanish osd
{400,MS_LINE_1,200,MS_LINE_HEIGHT}, //hqm, it is (492, 108) in default.
#endif
NO_PARENT,
static_user_op,
},
(void *)SC_PERMANENT_MSG_ADDR
};
const MS_STATIC permanent_msg = {
{
MS_STRING_ON_SC,
ALIGN_LEFT,
I_COLOR,
{10,MS_LINE_0, 248+36, MS_LINE_HEIGHT},
NO_PARENT,
static_user_op,
},
(void *)SC_PERMANENT_MSG_ADDR
};
const MS_STATIC mute_msg = {
{
MS_STRING_ON_SC,
ALIGN_LEFT,
I_COLOR,
{10,324,120,36},
NO_PARENT,
static_user_op,
},
(void *)SC_MUTE_MSG_ADDR
};
static void layout (void)
{
go_CurrentLayout.m_bBigMemMap =FALSE;
go_CurrentLayout.m_cPixRes = 0;
go_CurrentLayout.m_wOriginX = 0;
go_CurrentLayout.m_wOriginY = 60;
go_CurrentLayout.m_wWidth = 720;
go_CurrentLayout.m_wHeight = 360;
go_CurrentLayout.m_cNbrHole = 1;
go_CurrentLayout.m_oHolePos[0].m_wLineNbr = 132;
go_CurrentLayout.m_oHolePos[0].m_wHeight = 216;
go_CurrentLayout.m_cInitColor = 0;
go_CurrentLayout.m_cNbrColor = 16;
go_CurrentLayout.m_pColorPalette = (OSD_Palette *)MenuBitmapColor;
OSDSetLayout();
OSDSetFont(0);
// printf("RUN TIME LAYOUT\n");
}
static void on_run_time_close(void)
{
#ifdef NO_C_STDLIB
dbouts("\nRun time screen closed");
#endif
}
void init_run_time(void)
{
OSD_MESSAGES msg = S_NULL;
sc_Write(SC_PERMANENT_MSG_ADDR,1,(Sc_cont *)&msg);
sc_Write(SC_MUTE_MSG_ADDR,1,(Sc_cont *)&msg);
}
void open_run_time(void)
{
OSD_MESSAGES msg = S_NULL;
screen = MS_create_screen((MS_POS *)&run_time_pos,screen_color,MS_NO_BACKGROUND,on_run_time_close,layout);
sc_Write(SC_TMP_MSG_ADDR,1,(Sc_cont *)&msg);
sc_SetBytes(SC_TMP_STR_ADDR, 0, 2, (BYTE *)"");
sc_Write(SC_PERMANENT_MSG_ADDR,1,(Sc_cont *)&msg);
sc_Write(SC_MUTE_MSG_ADDR,1,(Sc_cont *)&msg);
sc_SetBytes(SC_CURRENT_TIME_MSG_ADDR, 0, 2, (BYTE *)"");
sc_SetBytes(SC_TOTAL_TIME_MSG_ADDR, 0, 2, (BYTE *)"");
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&permanent_msg,0);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&tmp_msg,0);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&tmp_string,0);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&mute_msg,0);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&c_time_stat,0);
MS_add_item((MS_DIALOG*)screen,(MS_WIDGET*)&t_time_stat,0);
MS_dialog_display((MS_DIALOG*)screen);
}
/*static const MS_STATIC mp3m_permanent_msg = {
{
MS_STRING_ON_SC,
ALIGN_LEFT_PAD,
I_COLOR,
{MSS_TMP_MSG_X, MS_LINE_0, 100, MS_LINE_HEIGHT},
NO_PARENT,
static_user_op,
},
(void *)SC_PERMANENT_MSG_ADDR
};
//dm
/*void mp3m_permanent_msg_display(OSD_MESSAGES msg)
{
MS_hide((MS_WIDGET*)&mp3m_permanent_msg,(MS_DIALOG *)screen);
sc_Write(SC_PERMANENT_MSG_ADDR,1,(Sc_cont *)&msg);
static_user_op((MS_WIDGET*)&mp3m_permanent_msg,MS_UOP_DISPLAY,0);
}*/
//dm
void tmp_msg_display(OSD_MESSAGES msg)
{
//AW0119:if the msg is the same as the prev one just do nothing
if(msg==S_LAST)
{
prev_msg=-1;
}
else
{
//fix the bug when osd is open and from setup menu to play state
#ifdef CUSTOMER_LENOXX
if(S_LOADING1 != msg && S_LOADING2 != msg && S_LOADING3 != msg && S_LOADING4 != msg
&& S_LOADING5 != msg && S_LOADING6 != msg && S_LOADING7 != msg && S_LOADING8 != msg)
#endif
if(prev_msg!=msg||S_PLAY==msg)
{
prev_msg=msg;
MS_hide((MS_WIDGET*)&tmp_msg,(MS_DIALOG *)screen);
}
if(msg!=S_NULL)
{
chg_pri(1,18);
sc_Write(SC_TMP_MSG_ADDR,1,(Sc_cont *)&msg);
static_user_op((MS_WIDGET*)&tmp_msg,MS_UOP_DISPLAY,0);
chg_pri(1,32);
}
}
if(S_PROHIBIT==msg) prev_msg=-1;
}
void tmp_string_display(char *str)
{
prev_msg=-1;
//change UI's priority
chg_pri(1,18);
MS_hide((MS_WIDGET*)&tmp_string,(MS_DIALOG *)screen);
sc_SetBytes(SC_TMP_STR_ADDR, 0, strlen(str)+1, (BYTE*)str );
static_user_op((MS_WIDGET*)&tmp_string,MS_UOP_DISPLAY,0);
chg_pri(1,32);
}
void permanent_repeat_msg_display(OSD_MESSAGES msg)
{
//AW0118:add compare and recording and folllow string osd dispay
MS_hide((MS_WIDGET*)&permanent_repeat_msg,(MS_DIALOG *)screen);
if(msg!=S_NULL&&(msg==S_REPEATAB_A||msg==S_REPEATAB_B))
{
sc_Write(SC_PERMANENT_MSG_ADDR,1,(Sc_cont *)&msg);
static_user_op((MS_WIDGET*)&permanent_repeat_msg,MS_UOP_DISPLAY,0);
}
}
void permanent_msg_display(OSD_MESSAGES msg)
{
prev_msg=-1;
MS_hide((MS_WIDGET*)&permanent_msg,(MS_DIALOG *)screen);
if(msg!=S_NULL)
{
sc_Write(SC_PERMANENT_MSG_ADDR,1,(Sc_cont *)&msg);
static_user_op((MS_WIDGET*)&permanent_msg,MS_UOP_DISPLAY,0);
}
}
void mute_msg_display(int mute)
{
if (mute) {
long cnt = S_MUTE;
sc_Write(SC_MUTE_MSG_ADDR,1,(Sc_cont *)&cnt);
static_user_op((MS_WIDGET*)&mute_msg,MS_UOP_DISPLAY,0);
}
else {
OSD_MESSAGES msg = S_NULL;
MS_hide((MS_WIDGET*)&mute_msg,(MS_DIALOG *)screen);
sc_Write(SC_MUTE_MSG_ADDR,1,(Sc_cont *)&msg);
static_user_op((MS_WIDGET*)&mute_msg,MS_UOP_DISPLAY,0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -