Leaked source code of windows server 2003
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.
|
|
//==========================================================================;
//
// Decoder specific initialization routines
//
// $Date: 21 Aug 1998 21:46:10 $
// $Revision: 1.1 $
// $Author: Tashjian $
//
// $Copyright: (c) 1997 - 1998 ATI Technologies Inc. All Rights Reserved. $
//
//==========================================================================;
extern "C" { #include "strmini.h"
#include "ksmedia.h"
}
#include "wdmvdec.h"
#include "capmain.h"
#include "wdmdrv.h"
#include "Device.h"
#include "capdebug.h"
CVideoDecoderDevice * InitializeDevice(PPORT_CONFIGURATION_INFORMATION pConfigInfo, PBYTE pWorkspace) { UINT nErrorCode = 0; Device * pDevice = NULL; PDEVICE_DATA_EXTENSION pDevExt = (PDEVICE_DATA_EXTENSION) pWorkspace;
DBGTRACE(("InitializeDevice()\n"));
ENSURE { CI2CScript *pI2cScript = (CI2CScript *) new ((PVOID)&pDevExt->CScript) CI2CScript(pConfigInfo, &nErrorCode); if (nErrorCode != WDMMINI_NOERROR) { DBGERROR(("CI2CScript creation failure = %lx\n", nErrorCode)); TRAP(); FAIL; } if (!pI2cScript->LockI2CProviderEx()) { DBGERROR(("Couldn't get I2CProvider.\n")); TRAP(); FAIL; } { CATIHwConfiguration CATIHwConfig(pConfigInfo, pI2cScript, &nErrorCode);
pI2cScript->ReleaseI2CProvider();
if(nErrorCode != WDMMINI_NOERROR) { DBGERROR(("CATIHwConfig constructor failure = %lx\n", nErrorCode)); TRAP(); FAIL; }
UINT uiDecoderId; UCHAR chipAddr; CATIHwConfig.GetDecoderConfiguration(&uiDecoderId, &chipAddr); // check the device installed before enabling any access to it
if((uiDecoderId != VIDEODECODER_TYPE_BT829) && (uiDecoderId != VIDEODECODER_TYPE_BT829A)) { TRAP(); FAIL; }
CATIHwConfig.EnableDecoderI2CAccess(pI2cScript, TRUE);
int outputEnablePolarity = CATIHwConfig.GetDecoderOutputEnableLevel(); if(outputEnablePolarity == UINT(-1)) { DBGERROR(("Unexpected outputEnablePolarity")); TRAP(); FAIL; }
pDevExt->deviceParms.pI2cScript = pI2cScript; pDevExt->deviceParms.chipAddr = chipAddr; pDevExt->deviceParms.outputEnablePolarity = outputEnablePolarity; pDevExt->deviceParms.ulVideoInStandardsSupportedByCrystal = CATIHwConfig.GetVideoInStandardsSupportedByCrystal(); //Paul
pDevExt->deviceParms.ulVideoInStandardsSupportedByTuner = CATIHwConfig.GetVideoInStandardsSupportedByTuner(); //Paul
}
pDevice = (Device*) new ((PVOID)&pDevExt->CDevice) Device(pConfigInfo, &pDevExt->deviceParms, &nErrorCode);
if (nErrorCode) { pDevice = NULL; TRAP(); FAIL; } } END_ENSURE; DBGTRACE(("Exit : InitializeDevice()\n")); return pDevice; }
size_t DeivceExtensionSize() { return (sizeof(DEVICE_DATA_EXTENSION)); }
|