www.pudn.com > camera.rar > pdd_intf.cpp
// // Copyright (c) Microsoft Corporation. All rights reserved. // // // Use of this sample source code is subject to the terms of the Microsoft // license agreement under which you licensed this sample source code. If // you did not accept the terms of the license agreement, you are not // authorized to use this sample source code. For the terms of the license, // please see the license agreement between you and Microsoft or, if applicable, // see the LICENSE.RTF on your install media or the root of your tools installation. // THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES. // // // (C) Copyright 2006 Marvell International Ltd. // All Rights Reserved // #include#include #include "Cs.h" #include "Csmedia.h" #include "CameraPDDProps.h" #include "dstruct.h" #include "dbgsettings.h" #include #include "CameraDriver.h" #include "PinDriver.h" #include "CameraPDD.h" #include "wchar.h" #include "pdd_private.h" PVOID PDD_Init( PVOID MDDContext, PPDDFUNCTBL pPDDFuncTbl ) { DWORD dwRet = ERROR_SUCCESS; CCameraPdd *pDD = new CCameraPdd(); //NKDbgPrintfW(L"done"); if ( pDD == NULL ) { RETAILMSG(1, (TEXT("CAM: PDD New Failed!\r\n"))); return NULL; } dwRet = pDD->PDDInit( MDDContext, pPDDFuncTbl ); if( ERROR_SUCCESS != dwRet ) { RETAILMSG(1, (TEXT("CAM: PDD Initialize Failed!\r\n"))); return NULL; } RETAILMSG(1, (TEXT("CAM: PDD Initialize Successful!\r\n"))); return pDD; } DWORD PDD_DeInit( LPVOID PDDContext ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD != NULL ) { delete pDD; } return ERROR_SUCCESS; } DWORD PDD_GetAdapterInfo( LPVOID PDDContext, PADAPTERINFO pAdapterInfo ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if( NULL == pDD ) { return ERROR_INVALID_PARAMETER; } return pDD->GetAdapterInfo( pAdapterInfo ); } DWORD PDD_HandleVidProcAmpChanges( LPVOID PDDContext, DWORD dwPropId, LONG lFlags, LONG lValue) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->HandleVidProcAmpChanges( dwPropId, lFlags, lValue ); } DWORD PDD_HandleCamControlChanges( LPVOID PDDContext, DWORD dwPropId, LONG lFlags, LONG lValue ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->HandleCamControlChanges( dwPropId, lFlags, lValue ); } DWORD PDD_HandleVideoControlCapsChanges( LPVOID PDDContext, LONG lModeType ,ULONG ulCaps ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->HandleVideoControlCapsChanges( lModeType, ulCaps ); } DWORD PDD_SetPowerState( LPVOID PDDContext, CEDEVICE_POWER_STATE PowerState ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->SetPowerState( PowerState ); } DWORD PDD_HandleAdapterCustomProperties( LPVOID PDDContext, PUCHAR pInBuf, DWORD InBufLen, PUCHAR pOutBuf, DWORD OutBufLen, PDWORD pdwBytesTransferred ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->HandleAdapterCustomProperties( pInBuf, InBufLen, pOutBuf, OutBufLen, pdwBytesTransferred ); } DWORD PDD_InitSensorMode( LPVOID PDDContext, ULONG ulModeType, LPVOID ModeContext ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->InitSensorMode( ulModeType, ModeContext ); } DWORD PDD_DeInitSensorMode( LPVOID PDDContext, ULONG ulModeType ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->DeInitSensorMode( ulModeType ); } DWORD PDD_SetSensorState( LPVOID PDDContext, ULONG ulModeType, CSSTATE CsState ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->SetSensorState( ulModeType, CsState ); } DWORD PDD_TakeStillPicture( LPVOID PDDContext, LPVOID pBurstModeInfo ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } DEBUGMSG(ZONE_IOCTL, (_T("CAM: PDD_TakeStillPicture\r\n"))) ; return pDD->TakeStillPicture( pBurstModeInfo ); } DWORD PDD_GetSensorModeInfo( LPVOID PDDContext, ULONG ulModeType, PSENSORMODEINFO pSensorModeInfo ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->GetSensorModeInfo( ulModeType, pSensorModeInfo ); } DWORD PDD_SetSensorModeFormat( LPVOID PDDContext, ULONG ulModeType, PCS_DATARANGE_VIDEO pCsDataRangeVideo ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->SetSensorModeFormat( ulModeType, pCsDataRangeVideo ); } PVOID PDD_AllocateBuffer( LPVOID PDDContext, ULONG ulModeType ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return NULL; } return pDD->AllocateBuffer( ulModeType ); } DWORD PDD_DeAllocateBuffer( LPVOID PDDContext, ULONG ulModeType, PVOID pBuffer ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->DeAllocateBuffer( ulModeType, pBuffer ); } DWORD PDD_RegisterClientBuffer( LPVOID PDDContext, ULONG ulModeType, PVOID pBuffer ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->RegisterClientBuffer( ulModeType, pBuffer ); } DWORD PDD_UnRegisterClientBuffer( LPVOID PDDContext, ULONG ulModeType, PVOID pBuffer ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->UnRegisterClientBuffer( ulModeType, pBuffer ); } DWORD PDD_FillBuffer( LPVOID PDDContext, ULONG ulModeType, PUCHAR pImage ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->FillBuffer( ulModeType, pImage ); } DWORD PDD_HandleModeCustomProperties( LPVOID PDDContext, ULONG ulModeType, PUCHAR pInBuf, DWORD InBufLen, PUCHAR pOutBuf, DWORD OutBufLen, PDWORD pdwBytesTransferred ) { CCameraPdd *pDD = (CCameraPdd *)PDDContext; if ( pDD == NULL ) { return ERROR_INVALID_PARAMETER; } return pDD->HandleSensorModeCustomProperties( ulModeType, pInBuf, InBufLen, pOutBuf, OutBufLen, pdwBytesTransferred ); }