hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
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
54
55
56
57
58
59
60
#include "rk_aiq_uapi_amerge_int.h"
#include "rk_aiq_types_amerge_algo_prvt.h"
 
XCamReturn
rk_aiq_uapi_amerge_SetAttrib
(
    RkAiqAlgoContext* ctx,
    amerge_attrib_t attr,
    bool need_sync
)
{
    XCamReturn ret = XCAM_RETURN_NO_ERROR;
    if(ctx == NULL) {
        LOGE_AMERGE("%s(%d): null pointer\n", __FUNCTION__, __LINE__);
        return XCAM_RETURN_ERROR_PARAM;
    }
    AmergeContext_t* pAmergeCtx = (AmergeContext_t*)ctx;
 
    if(CHECK_ISP_HW_V21()) {
        pAmergeCtx->mergeAttr.attrV21.opMode = attr.attrV21.opMode;
        if (attr.attrV21.opMode == MERGE_OPMODE_MANU)
            memcpy(&pAmergeCtx->mergeAttr.attrV21.stManual, &attr.attrV21.stManual, sizeof(mmergeAttrV21_t));
    }
    else if(CHECK_ISP_HW_V30()) {
        pAmergeCtx->mergeAttr.attrV30.opMode = attr.attrV30.opMode;
        if(attr.attrV30.opMode == MERGE_OPMODE_MANU)
            memcpy(&pAmergeCtx->mergeAttr.attrV30.stManual, &attr.attrV30.stManual, sizeof(mMergeAttrV30_t));
    }
 
    return ret;
}
 
XCamReturn
rk_aiq_uapi_amerge_GetAttrib
(
    RkAiqAlgoContext*  ctx,
    amerge_attrib_t* attr
)
{
    XCamReturn ret = XCAM_RETURN_NO_ERROR;
    if(ctx == NULL || attr == NULL) {
        LOGE_AMERGE("%s(%d): null pointer\n", __FUNCTION__, __LINE__);
        return XCAM_RETURN_ERROR_PARAM;
    }
 
    AmergeContext_t* pAmergeCtx = (AmergeContext_t*)ctx;
 
    if(CHECK_ISP_HW_V20() || CHECK_ISP_HW_V21()) {
        attr->attrV21.opMode = pAmergeCtx->mergeAttr.attrV21.opMode;
        memcpy(&attr->attrV21.stManual, &pAmergeCtx->mergeAttr.attrV21.stManual, sizeof(mmergeAttrV21_t));
        memcpy(&attr->attrV21.CtlInfo, &pAmergeCtx->mergeAttr.attrV21.CtlInfo, sizeof(MergeCurrCtlData_t));
    }
    else if(CHECK_ISP_HW_V30()) {
        attr->attrV30.opMode = pAmergeCtx->mergeAttr.attrV30.opMode;
        memcpy(&attr->attrV30.stManual, &pAmergeCtx->mergeAttr.attrV30.stManual, sizeof(mMergeAttrV30_t));
        memcpy(&attr->attrV30.CtlInfo, &pAmergeCtx->mergeAttr.attrV30.CtlInfo, sizeof(MergeCurrCtlData_t));
    }
 
    return ret;
}