mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
4.0 KiB
153 lines
4.0 KiB
/******************************************************************************\
|
|
* *
|
|
* HLI.C - Highlight related code. *
|
|
* *
|
|
* Copyright (c) C-Cube Microsystems 1996 *
|
|
* All Rights Reserved. *
|
|
* *
|
|
* Use of C-Cube Microsystems code is governed by terms and conditions *
|
|
* stated in the accompanying licensing statement. *
|
|
* *
|
|
\******************************************************************************/
|
|
|
|
#include "Headers.h"
|
|
#pragma hdrstop
|
|
#include "hli.h"
|
|
#include "cl6100.h"
|
|
|
|
#define TIMEOUT_COUNT 10
|
|
static DWORD dwTimeOut = TIMEOUT_COUNT;
|
|
|
|
BOOL bJustHighLight = FALSE;
|
|
|
|
extern void UpdateOrdinalNumber(IN PHW_DEVICE_EXTENSION pHwDevExt);
|
|
static void HighlightSetProp( PHW_DEVICE_EXTENSION pHwDevExt );
|
|
|
|
/*
|
|
** HighlightSetPropIfAdapterReady ()
|
|
**
|
|
** Set property handling routine for the Highlight.
|
|
**
|
|
** Arguments:
|
|
**
|
|
** pSrb -> property command block
|
|
** pSrb->CommandData.PropertyInfo describes the requested property
|
|
**
|
|
** Returns:
|
|
**
|
|
** Side Effects:
|
|
*/
|
|
void HighlightSetPropIfAdapterReady( PHW_DEVICE_EXTENSION pHwDevExt )
|
|
{
|
|
// PHW_DEVICE_EXTENSION pHwDevExt = (PHW_DEVICE_EXTENSION)pSrb->HwDeviceExtension;
|
|
PKSPROPERTY_SPHLI hli = &(pHwDevExt->hli);
|
|
|
|
if ( hli->StartPTM == 0 )
|
|
{
|
|
//
|
|
// Make sure that the next real Highlight is not executed before
|
|
// valid SPU is received (and before it's time).
|
|
//
|
|
|
|
pHwDevExt->bValidSPU = FALSE;
|
|
|
|
//
|
|
// Set HLI here to clean up the screen.
|
|
//
|
|
|
|
HighlightSetProp( pHwDevExt );
|
|
pHwDevExt->bHliPending = FALSE;
|
|
}
|
|
else
|
|
{
|
|
|
|
if ( ( !pHwDevExt->bValidSPU || (hli->StartPTM > DVD_GetSTC()) ) && dwTimeOut )
|
|
{
|
|
MonoOutStr( " !!! Schedule HLI CB !!! " );
|
|
|
|
dwTimeOut--;
|
|
|
|
StreamClassScheduleTimer( NULL, pHwDevExt,
|
|
100000,
|
|
(PHW_TIMER_ROUTINE)HighlightSetPropIfAdapterReady,
|
|
pHwDevExt );
|
|
if(pHwDevExt->bTimerScheduled) //temp fix //sri
|
|
{
|
|
pHwDevExt->bTimerScheduled = FALSE;
|
|
MonoOutStr("CallAdapterSend");
|
|
UpdateOrdinalNumber(pHwDevExt);
|
|
AdapterSendData(pHwDevExt);
|
|
}
|
|
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
//
|
|
// This set most likely will be called when menu is already ON.
|
|
//
|
|
HighlightSetProp( pHwDevExt );
|
|
pHwDevExt->bHliPending = FALSE;
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
** HighlightSetProp ()
|
|
**
|
|
** Set property handling routine for the Highlight.
|
|
**
|
|
** Arguments:
|
|
**
|
|
** pSrb -> property command block
|
|
** pSrb->CommandData.PropertyInfo describes the requested property
|
|
**
|
|
** Returns:
|
|
**
|
|
** Side Effects:
|
|
*/
|
|
static void HighlightSetProp( PHW_DEVICE_EXTENSION pHwDevExt )
|
|
{
|
|
DWORD dwContrast;
|
|
DWORD dwColor;
|
|
DWORD dwYGeom;
|
|
DWORD dwXGeom;
|
|
PKSPROPERTY_SPHLI hli = &(pHwDevExt->hli);
|
|
|
|
dwColor = ( (DWORD)(hli->ColCon.emph1col) << 8) +
|
|
( (DWORD)(hli->ColCon.emph2col) << 12) +
|
|
( (DWORD)(hli->ColCon.backcol) << 0) +
|
|
( (DWORD)(hli->ColCon.patcol) << 4);
|
|
|
|
dwContrast = ( (DWORD)(hli->ColCon.emph1con) << 8) +
|
|
( (DWORD)(hli->ColCon.emph2con) << 12) +
|
|
( (DWORD)(hli->ColCon.backcon) << 0) +
|
|
( (DWORD)(hli->ColCon.patcon) << 4);
|
|
|
|
dwYGeom = ( ((DWORD)(hli->StartY)) << 12) + (hli->StopY);
|
|
|
|
dwXGeom = ( ((DWORD)(hli->StartX)) << 12) + (hli->StopX);
|
|
|
|
MonoOutChar('<');
|
|
MonoOutULong( hli->StartPTM );
|
|
MonoOutChar('-');
|
|
MonoOutULong( hli->EndPTM );
|
|
MonoOutChar('>');
|
|
DVD_GetSTC();
|
|
|
|
//bJustHighLight = TRUE;
|
|
|
|
if((dwXGeom == 0)&& (dwYGeom==0))
|
|
return;
|
|
|
|
if ( !DVD_HighLight2( dwContrast, dwColor, dwYGeom, dwXGeom ) )
|
|
{
|
|
MonoOutStr( " !!!! DVD_HighLight2 has failed !!!! " );
|
|
}
|
|
|
|
//
|
|
// Restore the Timeout counter
|
|
//
|
|
dwTimeOut = TIMEOUT_COUNT;
|
|
}
|