📄 csl_prevhwcontrol.c
字号:
/** @file csl_prevHwControl.c
*
* @brief File for functional layer of CSL API @a CSL_prevHwControl()
*
* Description
* - The @a CSL_prevHwControl() function definition & it's associated
* functions
*
* @date 19th October, 2004
* @author Vignesh LA.
*/
#include <csl_prev.h>
#include <csl_prev_aux.h>
#pragma CODE_SECTION (CSL_prevHwControl, ".text:csl_section:prev");
/** @brief Takes a command with an optional argument & implements it.
*/
CSL_Status CSL_prevHwControl(
/** Pointer to the object that holds reference to the
* instance of PREV requested after the call
*/
CSL_PrevHandle hPrev,
/** The command to this API indicates the action to be taken
*/
CSL_PrevHwControlCmd cmd,
/** An optional argument @a void* casted
*/
void *arg
){
CSL_Status status = CSL_SOK;
switch(cmd){
case CSL_PREV_CMD_ENABLE:
status = CSL_prevEnable(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_SET_MODE:
status = CSL_prevSetMode(hPrev, (CSL_PrevModeData *)arg);
break;
case CSL_PREV_CMD_SET_CFA:
status = CSL_prevSetCFA(hPrev, (CSL_PrevCFAData *)arg);
break;
case CSL_PREV_CMD_SET_AVG:
status = CSL_prevSetAve(hPrev, (CSL_PrevAveData *)arg);
break;
case CSL_PREV_CMD_SET_NOISE_FILTER:
status = CSL_prevSetNF(hPrev, (CSL_PrevNFData *)arg);
break;
case CSL_PREV_CMD_SET_HORIZ_MEDIAN_FILTER:
status = CSL_prevSetHMed(hPrev, (CSL_PrevHMedData *)arg);
break;
case CSL_PREV_CMD_SET_SHADING_COMP:
status = CSL_prevSetShadingComp(hPrev, *(Uint8*)arg);
break;
case CSL_PREV_CMD_SET_WHITE_BALANCE:
status = CSL_prevSetWhiteBal(hPrev, (CSL_PrevWBalData *)arg);
break;
case CSL_PREV_CMD_WB_COEF_SELECT:
status = CSL_prevWbCoefSel(hPrev, arg);
break;
case CSL_PREV_CMD_SET_BLACK_LEVEL_ADJUSTMENT:
status = CSL_prevSetBlackAdj(hPrev, (CSL_PrevBlackAdjData *)arg);
break;
case CSL_PREV_CMD_SET_RGB2RGB:
status = CSL_prevSetRGB2RGB(hPrev, (CSL_PrevRGB2RGBData *)arg);
break;
case CSL_PREV_CMD_SET_CSC:
status = CSL_prevSetCSC(hPrev, (CSL_PrevCSCData *)arg);
break;
case CSL_PREV_CMD_SET_CONTRAST_BRIGHNESS:
status = CSL_prevSetCntBrt(hPrev, (CSL_PrevCntBrtData *)arg);
break;
case CSL_PREV_CMD_SET_CHROMA_SUPPRESSION:
status = CSL_prevSetCSup(hPrev, (CSL_PrevCSupData *)arg);
break;
case CSL_PREV_CMD_SET_YC:
status = CSL_prevSetYC(hPrev, (CSL_PrevYCData *)arg);
break;
case CSL_PREV_CMD_ENABLE_GAMMA:
status = CSL_prevGammaEn(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_WRITE_TABLE:
status = CSL_prevWriteTable(hPrev, (CSL_PrevWriteTableData *)arg);
break;
case CSL_PREV_CMD_SET_READ_ADDRESS:
status = CSL_prevSetReadAddr(hPrev,(Uint32*)arg);
break;
case CSL_PREV_CMD_SET_DF_ADDRESS:
status = CSL_prevSetDFAddr(hPrev, (Uint32*)arg);
break;
case CSL_PREV_CMD_SET_WRITE_ADDRESS:
status = CSL_prevSetWriteAddr(hPrev, (Uint32*)arg);
break;
case CSL_PREV_CMD_SET_READ_OFFSET:
status = CSL_prevSetReadOffset(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_SET_DF_OFFSET:
status = CSL_prevSetDFOffset(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_SET_WRITE_OFFSET:
status = CSL_prevSetWriteOffset(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_ONE_SHOT_ENABLE:
status = CSL_prevOneShotEn(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_SDRAM_OUTPUT_ENABLE:
status = CSL_prevSdramOutEn(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_RSZ_OUTPUT_ENABLE:
status = CSL_prevRszOutEn(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_SET_INPUT_SOURCE:
status = CSL_prevSetInputSource(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_SET_INPUT_BIT_WIDTH:
status = CSL_prevSetInputBitWidth(hPrev, *(Uint16*)arg);
break;
case CSL_PREV_CMD_SET_HORZ_VERT:
status = CSL_prevSetHorzVert(hPrev, (CSL_PrevHorzVertData *)arg);
break;
case CSL_PREV_CMD_SET_PORTS:
status = CSL_prevSetPorts(hPrev, (CSL_PrevPortData *)arg);
break;
default:
status = CSL_ESYS_INVCMD ;
break;
};
return status;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -