/* 
 | 
 *  Copyright {c) 2019 Rockchip Corporation 
 | 
 * 
 | 
 * Licensed under the Apache License; Version 2.0 {the "License";}; 
 | 
 * you may not use this file except in compliance with the License. 
 | 
 * You may obtain a copy of the License at 
 | 
 * 
 | 
 *      http://www.apache.org/licenses/LICENSE-2.0 
 | 
 * 
 | 
 * Unless required by applicable law or agreed to in writing; software 
 | 
 * distributed under the License is distributed on an "AS IS" BASIS; 
 | 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND; either express or implied. 
 | 
 * See the License for the specific language governing permissions and 
 | 
 * limitations under the License. 
 | 
 * 
 | 
 */ 
 | 
  
 | 
#ifndef RK_AIQ_USER_API_SYSCTL_PTL_H 
 | 
#define RK_AIQ_USER_API_SYSCTL_PTL_H 
 | 
#pragma pack(1) 
 | 
#include "rk_aiq.h" 
 | 
#include "rk_aiq_algo_des.h" 
 | 
  
 | 
RKAIQ_BEGIN_DECLARE 
 | 
  
 | 
typedef struct rk_aiq_sys_ctx_s rk_aiq_sys_ctx_t; 
 | 
  
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_init { 
 | 
    char sns_ent_name[200]; 
 | 
    char iq_file_dir[200]; 
 | 
    rk_aiq_error_cb err_cb; 
 | 
    rk_aiq_metas_cb metas_cb; 
 | 
    rk_aiq_sys_ctx_t* return_ctx; 
 | 
} rk_aiq_uapi_sysctl_init_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_deinit { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
} rk_aiq_uapi_sysctl_deinit_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_prepare { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
    uint32_t width; 
 | 
    uint32_t height; 
 | 
    rk_aiq_working_mode_t mode; 
 | 
    XCamReturn xcamreturn; 
 | 
} rk_aiq_uapi_sysctl_prepare_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_start { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
   XCamReturn xcamreturn; 
 | 
} rk_aiq_uapi_sysctl_start_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_stop { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
     XCamReturn xcamreturn; 
 | 
} rk_aiq_uapi_sysctl_stop_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_getStaticMetas { 
 | 
    char sns_ent_name[200]; 
 | 
    rk_aiq_static_info_t static_info 
 | 
} rk_aiq_uapi_sysctl_getStaticMetas_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_getMetaData { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
    uint32_t frame_id; 
 | 
    rk_aiq_metas_t metas; 
 | 
} rk_aiq_uapi_sysctl_getMetaData_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_setModuleCtl { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
    int32_t mod_en; 
 | 
} rk_aiq_uapi_sysctl_setModuleCtl_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_getModuleCtl { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
} rk_aiq_uapi_sysctl_getModuleCtl_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_regLib { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
} rk_aiq_uapi_sysctl_regLib_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_unRegLib { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
    int algo_type; 
 | 
    int lib_id; 
 | 
} rk_aiq_uapi_sysctl_unRegLib_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_enableAxlib { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
    int algo_type; 
 | 
    int lib_id; 
 | 
    bool enable; 
 | 
} rk_aiq_uapi_sysctl_enableAxlib_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_getAxlibStatus { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
    int algo_type; 
 | 
    int lib_id; 
 | 
} rk_aiq_uapi_sysctl_getAxlibStatus_t; 
 | 
  
 | 
typedef struct rk_aiq_uapi_sysctl_getEnabledAxlibCtx { 
 | 
    rk_aiq_sys_ctx_t* ctx; 
 | 
    int algo_type; 
 | 
} rk_aiq_uapi_sysctl_getEnabledAxlibCtx_t; 
 | 
  
 | 
RKAIQ_END_DECLARE 
 | 
  
 | 
#endif 
 |