📄 tile.c
字号:
//******************************************************************
//
// Copyright (C) 2003. GENESIS MICROCHIP INC.
// All rights reserved. No part of this program may be reproduced.
//
// Genesis Microchip Inc., 165 Commerce Valley Dr. West
// Thornhill, Ontario, Canada, L3T 7V8
// Genesis Microchip Corp., 2150 Gold Street
// Alviso, CA 95002 USA
//
//================================================================
//
// MODULE: Tile.c
//
// USAGE:
//
//******************************************************************************
#include "inc\all.h"
#include "..\OsdLib\extOsdLib.h"
//******************************************************************
// G L O B A L V A R I A B L E S
//******************************************************************
ST_OSD_TILE_CTRL ROM * xdata g_CurrentTiles[MAX_TILE_NUMBER];
// PDR #6755
#if (TILE_SUPPORT == 0)
extern ST_OSD_DIALOG_CTRL ROM * xdata g_CurrentDialog;
#endif
//******************************************************************
// L O C A L D E F I N E S
//******************************************************************
//extern BYTE ROM * ROM OsdDialogs[];
//******************************************************************
// C O D E
//******************************************************************
#ifdef Action_AllocateTile_WB_Used
//******************************************************************
// FUNCTION : AllocateTile
// USAGE : Setting OSD rectangle parameters
// DESCRIPTION : Setting addresses of CCF and fonts, position of
// rectangle and background for selected rectangle
// INPUT : none
// OUTPUT : None
// GLOBALS :
// USED_REGS :
//******************************************************************
void AllocateTile (void)
{
ST_OSD_TILE_CTRL ROM * Sp_Tile;
gm_GetActionOperand();
Sp_Tile = (ST_OSD_TILE_CTRL ROM *)ActionOp;
#ifdef DEBUG_OSD
gm_Print("Allocate Tile %d", Sp_Tile->TileId);
#endif
SelectRectangle(Sp_Tile->TileId);
OsdC_RectSetup (Sp_Tile->XSize,
Sp_Tile->YSize,
Sp_Tile->ChrTbl1Bpp * 2,
Sp_Tile->ChrTbl2Bpp *2,
Sp_Tile->Address *2);
g_CurrentTiles[Sp_Tile->TileId] = Sp_Tile;
SetTilePosition(Sp_Tile->TileId);
/*
this is not working AlekseyK PDR#5565
OsdC_CCFFill (Sp_Tile->Address,
Sp_Tile->XSize * Sp_Tile->YSize,
CABPP (SPACE_INDEX, Sp_Tile->ColorAttrib, 1));
*/
// AlekseyK PDR#5565
OsdC_FillRect( 0,
0,
Sp_Tile->XSize,
Sp_Tile->YSize,
SPACE_INDEX,
Sp_Tile->ColorAttrib);
}
#endif // Action_AllocateTile_WB_Used
#ifdef Action_DeallocateTile_WB_Used
//******************************************************************
// FUNCTION : DeallocateTile
// USAGE : remove tile information
// DESCRIPTION : Removed tile information from g_CurrentTile[]
//
// INPUT : none
// OUTPUT : None
// GLOBALS :
// USED_REGS :
//******************************************************************
void DeallocateTile (void)
{
ST_OSD_TILE_CTRL ROM * Sp_Tile;
gm_GetActionOperand();
Sp_Tile = (ST_OSD_TILE_CTRL ROM *)ActionOp;
g_CurrentTiles[Sp_Tile->TileId] = 0;
}
#endif // Action_DeallocateTile_WB_Used
#ifdef Action_ShowTile_WB_Used
//******************************************************************
// FUNCTION : ShowTile
// USAGE : Enable OSD rectangle
// DESCRIPTION : Select current rectangle and enable selected rect
// INPUT : none
// OUTPUT : None
// GLOBALS :
// USED_REGS :
//******************************************************************
void ShowTile (void)
{
ST_OSD_TILE_CTRL ROM * Sp_Tile;
gm_GetActionOperand();
Sp_Tile = (ST_OSD_TILE_CTRL ROM *)ActionOp;
#ifdef DEBUG_OSD
gm_Print("Show Tile %d", Sp_Tile->TileId);
#endif
SelectRectangle(Sp_Tile->TileId);
OsdC_Show();
}
#endif // Action_ShowTile_WB_Used
#ifdef Action_HideTile_WB_Used
//******************************************************************
// FUNCTION : HideTile
// USAGE : Disable OSD rectangle
// DESCRIPTION : Select current rectangle and disable selected rect
// INPUT : none
// OUTPUT : None
// GLOBALS :
// USED_REGS :
//******************************************************************
void HideTile (void)
{
ST_OSD_TILE_CTRL ROM * Sp_Tile;
gm_GetActionOperand();
Sp_Tile = (ST_OSD_TILE_CTRL ROM *)ActionOp;
#ifdef DEBUG_OSD
gm_Print("Hide Tile %d", Sp_Tile->TileId);
#endif
SelectRectangle(Sp_Tile->TileId);
OsdC_Hide();
}
#endif // Action_HideTile_WB_Used
//******************************************************************
// FUNCTION : SetTilePosition
// USAGE : Position OSD rectangle on screen
// DESCRIPTION : Positions the OSD rectangle on the screen
// INPUT : Number of tile
// OUTPUT : None
// GLOBALS :
// USED_REGS :
//******************************************************************
void SetTilePosition (BYTE TileId)
{
ST_OSD_TILE_CTRL ROM * Sp_Tile = g_CurrentTiles[TileId];
// PDR #6755
#if (TILE_SUPPORT != 0)
if(Sp_Tile)
{
SelectRectangle(TileId);
#ifdef DEBUG_OSD
gm_Print("SetTilePosition %d", TileId);
#endif
if(UserPrefOSDStretch == 0)
OsdC_PositionOsd (UserPrefHPosOSD,
200 - UserPrefVPosOSD,
((ST_OSD_DIALOG_CTRL ROM *)OsdDialogs[Sp_Tile->DialogId])->XSize,
((ST_OSD_DIALOG_CTRL ROM *)OsdDialogs[Sp_Tile->DialogId])->YSize,
Sp_Tile->XPos,
Sp_Tile->YPos,
0);
else//pkb1201
OsdC_PositionOsd (UserPrefHPosOSD,
200 - UserPrefVPosOSD,
(((ST_OSD_DIALOG_CTRL ROM *)OsdDialogs[Sp_Tile->DialogId])->XSize)*2,
(((ST_OSD_DIALOG_CTRL ROM *)OsdDialogs[Sp_Tile->DialogId])->YSize)*2,
Sp_Tile->XPos,
Sp_Tile->YPos,
3);
/*
OsdC_PositionOsd (UserPrefHPosOSD,
UserPrefVPosOSD,
((ST_OSD_DIALOG_CTRL ROM *)OsdDialogs[Sp_Tile->DialogId])->XSize,
((ST_OSD_DIALOG_CTRL ROM *)OsdDialogs[Sp_Tile->DialogId])->YSize,
Sp_Tile->XPos,
Sp_Tile->YPos,
0);
*/
}
#else
{
SelectRectangle(TileId);
#ifdef DEBUG_OSD
gm_Print("SetTilePosition %d", TileId);
#endif
OsdC_PositionOsd (UserPrefHPosOSD,
UserPrefVPosOSD,
g_CurrentDialog->XSize,
g_CurrentDialog->YSize,
0,
0,
0);
}
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -