1: int32_t AG903_DSPMgrSetLutParam(
AG903_DSPMgrHandle *handle, _Bool en,
AG903_DSPMgrLutParam *param)
2: {
3: int32_t rc =
AG903_ENONE;
4: uint8_t ch;
5: uint32_t cnt;
6:
DSPPrmParamMOD mod;
7:
8:
if (handle == NULL)
9:
return -
AG903_EINVAL;
10:
11: rc = DSPMgrCheckHandle(handle, &ch);
12:
13:
if (rc ==
AG903_ENONE) {
14:
if (param != NULL) {
15:
DSPPrmParamLUTR lutr = {0};
16:
DSPPrmParamLUTG lutg = {0};
17:
DSPPrmParamLUTB lutb = {0};
18:
for (cnt = 0;cnt <
AG903_DSP_LUT_NUM;cnt++) {
19: lutr.r0 = param->LUTR[cnt].r0;
20: lutr.r1 = param->LUTR[cnt].r1;
21: lutr.r2 = param->LUTR[cnt].r2;
22: lutr.r3 = param->LUTR[cnt].r3;
23: lutg.g0 = param->LUTG[cnt].g0;
24: lutg.g1 = param->LUTG[cnt].g1;
25: lutg.g2 = param->LUTG[cnt].g2;
26: lutg.g3 = param->LUTG[cnt].g3;
27: lutb.b0 = param->LUTB[cnt].b0;
28: lutb.b1 = param->LUTB[cnt].b1;
29: lutb.b2 = param->LUTB[cnt].b2;
30: lutb.b3 = param->LUTB[cnt].b3;
31:
AG903_DSPPrmSetLUTR(ch, cnt, &lutr);
32:
AG903_DSPPrmSetLUTG(ch, cnt, &lutg);
33:
AG903_DSPPrmSetLUTB(ch, cnt, &lutb);
34: }
35: }
36:
AG903_DSPPrmGetMOD(ch, &mod);
37: mod.lut = en ?
true :
false;
38:
AG903_DSPPrmSetMOD(ch, &mod);
39: }
40:
41:
return rc;
42: }