hc
2024-03-26 e0728245c89800c2038c23308f2d88969d5b41c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "rk_aiq_uapi_agamma_int.h"
#include "agamma/rk_aiq_types_agamma_algo_prvt.h"
 
XCamReturn
rk_aiq_uapi_agamma_SetAttrib(RkAiqAlgoContext *ctx,
                             rk_aiq_gamma_attrib_V2_t attr,
                             bool need_sync)
{
    LOG1_AGAMMA("ENTER: %s \n", __func__);
    AgammaHandle_t *gamma_handle = (AgammaHandle_t *)ctx;
    XCamReturn ret = XCAM_RETURN_NO_ERROR;
 
    if(CHECK_ISP_HW_V21()) {
        gamma_handle->agammaAttr.atrrV21.mode = attr.atrrV21.mode;
        if(attr.atrrV21.mode == RK_AIQ_GAMMA_MODE_MANUAL)
            memcpy(&gamma_handle->agammaAttr.atrrV21.stManual, &attr.atrrV21.stManual, sizeof(Agamma_api_manualV21_t));
        if(attr.atrrV21.mode == RK_AIQ_GAMMA_MODE_FAST)
            memcpy(&gamma_handle->agammaAttr.atrrV21.stFast, &attr.atrrV21.stFast, sizeof(Agamma_api_Fast_t));
    }
    else if(CHECK_ISP_HW_V30()) {
        gamma_handle->agammaAttr.atrrV30.mode = attr.atrrV30.mode;
        if(attr.atrrV30.mode == RK_AIQ_GAMMA_MODE_MANUAL)
            memcpy(&gamma_handle->agammaAttr.atrrV30.stManual, &attr.atrrV30.stManual, sizeof(Agamma_api_manualV30_t));
        if(attr.atrrV30.mode == RK_AIQ_GAMMA_MODE_FAST)
            memcpy(&gamma_handle->agammaAttr.atrrV30.stFast, &attr.atrrV30.stFast, sizeof(Agamma_api_Fast_t));
    }
 
    LOG1_AGAMMA("EXIT: %s \n", __func__);
    return ret;
}
 
XCamReturn
rk_aiq_uapi_agamma_GetAttrib(const RkAiqAlgoContext *ctx,
                             rk_aiq_gamma_attrib_V2_t *attr)
{
    LOG1_AGAMMA("ENTER: %s \n", __func__);
 
    AgammaHandle_t* gamma_handle = (AgammaHandle_t*)ctx;
 
    if(CHECK_ISP_HW_V21()) {
        attr->atrrV21.mode = gamma_handle->agammaAttr.atrrV21.mode;
        memcpy(&attr->atrrV21.stManual, &gamma_handle->agammaAttr.atrrV21.stManual, sizeof(Agamma_api_manualV21_t));
        memcpy(&attr->atrrV21.stFast, &gamma_handle->agammaAttr.atrrV21.stFast, sizeof(Agamma_api_Fast_t));
    }
    else if(CHECK_ISP_HW_V30()) {
        attr->atrrV30.mode = gamma_handle->agammaAttr.atrrV30.mode;
        memcpy(&attr->atrrV30.stManual, &gamma_handle->agammaAttr.atrrV30.stManual, sizeof(Agamma_api_manualV30_t));
        memcpy(&attr->atrrV30.stFast, &gamma_handle->agammaAttr.atrrV30.stFast, sizeof(Agamma_api_Fast_t));
    }
 
    LOG1_AGAMMA("EXIT: %s \n", __func__);
    return XCAM_RETURN_NO_ERROR;
}