1 /* 2 * Copyright (c) 2019 Rockchip Corporation 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 * 16 */ 17 18 #ifndef _RK_AIQ_CALIB_PARSER_H_ 19 #define _RK_AIQ_CALIB_PARSER_H_ 20 #include <string.h> 21 #include "tinyxml2.h" 22 23 #include "RkAiqCalibDbTypes.h" 24 #include "RkAiqCalibTag.h" 25 #include "xmltags.h" 26 #include "RkAiqCalibApi.h" 27 28 using namespace tinyxml2; 29 30 #if defined(_MSC_VER) 31 #define strcasecmp _stricmp 32 #define snprintf(buf,len, format,...) _snprintf_s(buf, len, len-1, format, __VA_ARGS__) 33 #endif 34 35 36 37 #if defined(__linux__) 38 #include "smartptr.h" 39 #include <xcam_common.h> 40 #include "xcam_log.h" 41 42 #ifdef DCT_ASSERT 43 #undef DCT_ASSERT 44 #endif 45 #define DCT_ASSERT assert 46 47 #elif defined(_WIN32) 48 49 #ifdef DCT_ASSERT 50 #undef DCT_ASSERT 51 #endif 52 #define DCT_ASSERT(x) if(!(x))return false 53 54 #define LOGI printf 55 #define LOGD printf 56 #define LOGW printf 57 #define LOGE printf 58 #define LOG1 printf 59 60 #endif 61 62 #define XML_PARSER_READ 0 63 #define XML_PARSER_WRITE 1 64 65 66 namespace RkCam { 67 68 class RkAiqCalibParser 69 { 70 private: 71 typedef bool (RkAiqCalibParser::*parseCellContent)(const XMLElement*, void* param); 72 typedef bool (RkAiqCalibParser::*parseCellContent2)(const XMLElement*, void* param, int index); 73 74 // parse helper 75 bool parseCellNoElement(const XMLElement* pelement, int noElements, int &RealNo); 76 bool parseEntryCell(const XMLElement*, int, parseCellContent, void* param = NULL, 77 uint32_t cur_id = 0, uint32_t parent_id = 0); 78 bool parseEntryCell2(const XMLElement*, int, parseCellContent2, void* param = NULL, 79 uint32_t cur_id = 0, uint32_t parent_id = 0); 80 bool parseEntryCell3(XMLElement*, int, int, parseCellContent, void* param = NULL, 81 uint32_t cur_id = 0, uint32_t parent_id = 0); 82 bool parseEntryCell4(XMLElement*, int, int, parseCellContent2, void* param = NULL, 83 uint32_t cur_id = 0, uint32_t parent_id = 0); 84 // parse read/write control 85 bool xmlParseReadWrite; 86 char autoTabStr[128]; 87 int autoTabIdx; 88 void parseReadWriteCtrl(bool ctrl); 89 void autoTabForward(); 90 void autoTabBackward(); 91 92 // parse Kit 93 int ParseCharToHex(XmlTag* tag, uint32_t* reg_value); 94 int ParseByteArray(const XMLNode *pNode, uint8_t* values, const int num); 95 int ParseFloatArray(const XMLNode *pNode, float* values, const int num, int printAccuracy = 4); 96 int ParseDoubleArray(const XMLNode *pNode, double* values, const int num); 97 int ParseUintArray(const XMLNode *pNode, uint32_t* values, const int num); 98 int ParseIntArray(const XMLNode *pNode, int32_t* values, const int num); 99 int ParseUcharArray(const XMLNode *pNode, uint8_t* values, const int num); 100 int ParseCharArray(const XMLNode *pNode, int8_t* values, const int num); 101 int ParseUshortArray(const XMLNode *pNode, uint16_t* values, const int num); 102 int ParseShortArray(const XMLNode *pNode, int16_t* values, const int num); 103 int ParseString(const XMLNode *pNode, char* values, const int size); 104 int ParseLscProfileArray(const XMLNode *pNode, CalibDb_Lsc_ProfileName_t values[], const int num); 105 106 107 // parse Header 108 bool parseEntryHeader(const XMLElement*, void* param = NULL); 109 bool parseEntrySensor(const XMLElement*, void* param = NULL); 110 bool parseEntrySensorAwb(const XMLElement*, void* param = NULL); 111 bool parseEntrySensorAwbCalibParaV200(const XMLElement*, void* param, int index); 112 bool parseEntrySensorAwbCalibParaV201(const XMLElement*, void* param, int index); 113 bool parseEntrySensorAwbAdjustPara(const XMLElement*, void* param, int index); 114 bool parseEntrySensorAwbMeasureGlobalsV200(const XMLElement*, void* param = NULL); 115 bool parseEntrySensorAwbMeasureLightSourcesV200(const XMLElement*, void* param, int index); 116 bool parseEntrySensorAwbMeasureGlobalsV201(const XMLElement*, void* param = NULL); 117 bool parseEntrySensorAwbLightXYRegionV201(const XMLElement*, void* param = NULL); 118 bool parseEntrySensorAwbLightRTYUVRegionV201(const XMLElement*, void* param = NULL); 119 bool parseEntrySensorAwbMeasureLightSourcesV201(const XMLElement*, void* param, int index); 120 bool parseEntrySensorAwbStrategyLightSources(const XMLElement*, void* param, int index); 121 bool parseEntrySensorAwbStrategyGlobals(const XMLElement*, void* param = NULL); 122 bool parseEntrySensorAwbLsForYuvDet(const XMLElement*, void* param, int index); 123 bool parseEntrySensorAwbLsForYuvDetV201(const XMLElement*, void* param, int index); 124 bool parseEntrySensorAwbWindowV201(const XMLElement*, void* param, int index); 125 bool parseEntrySensorAwbMeasureWindowV201(const XMLElement*, void* param = NULL); 126 bool parseEntrySensorAwbLimitRangeV201(const XMLElement*, void* param = NULL); 127 bool parseEntrySensorAwbWpDiffWeiEnableTh(const XMLElement*, void* param = NULL); 128 bool parseEntrySensorAwbWpDiffwei_w_HighLV(const XMLElement*, void* param = NULL); 129 bool parseEntrySensorAwbWpDiffwei_w_LowLV(const XMLElement*, void* param = NULL); 130 bool parseEntrySensorAwbWpDiffLumaWeight(const XMLElement*, void* param = NULL); 131 bool parseEntrySensorAwbFrameChoose(const XMLElement*, void* param = NULL); 132 bool parseEntrySensorAwbFrameChooseV201(const XMLElement*, void* param = NULL); 133 bool parseEntrySensorAwbMeasureWindow(const XMLElement*, void* param = NULL); 134 bool parseEntrySensorAwbLimitRange(const XMLElement*, void* param = NULL); 135 bool parseEntrySensorAwbWindow(const XMLElement*, void* param, int index); 136 bool parseEntrySensorAwbSingleColorV200(const XMLElement*, void* param); 137 bool parseEntrySensorAwbColBlkV200(const XMLElement*, void* param, int index); 138 bool parseEntrySensorAwbLsForEstimationV200(const XMLElement*, void* param, int index); 139 bool parseEntrySensorAwbSingleColorV201(const XMLElement*, void* param); 140 bool parseEntrySensorAwbColBlkV201(const XMLElement*, void* param, int index); 141 bool parseEntrySensorAwbLsForEstimationV201(const XMLElement*, void* param, int index); 142 143 144 145 bool parseEntrySensorAwbwbGainAdjust(const XMLElement*, void* param = NULL); 146 bool parseEntrySensorAwbwbGainOffset(const XMLElement*, void* param = NULL); 147 bool parseEntrySensorAwbDampFactor(const XMLElement*, void* param = NULL); 148 bool parseEntrySensorAwbXyRegionStableSelection(const XMLElement*, void* param = NULL); 149 bool parseEntrySensorAwbwbGainDaylightClipV200(const XMLElement*, void* param = NULL); 150 bool parseEntrySensorAwbwbGainClipV200(const XMLElement*, void* param = NULL); 151 bool parseEntrySensorAwbwbGainDaylightClipV201(const XMLElement*, void* param = NULL); 152 bool parseEntrySensorAwbwbGainClipV201(const XMLElement*, void* param = NULL); 153 bool parseEntrySensorAwbCctLutAll(const XMLElement*, void* param, int index); 154 bool parseEntrySensorAwbGlobalsExclude(const XMLElement*, void* param, int index); 155 bool parseEntrySensorAwbLightXYRegion(const XMLElement*, void* param = NULL); 156 bool parseEntrySensorAwbLightYUVRegion(const XMLElement*, void* param = NULL); 157 bool parseEntrySensorAwbGlobalsExcludeV201(const XMLElement*, void* param, int index); 158 bool parseEntrySensorAwbLightSources(const XMLElement*, void* param = NULL); 159 bool parseEntrySensorAwbRemosaicPara(const XMLElement*, void* param = NULL); 160 bool parseEntrySensorAwbXyRegionWpnumthCell(const XMLElement*, void* param, int index); 161 bool parseEntrySensorAwbwbWpTh(const XMLElement*, void* param, int index); 162 bool parseEntrySensorAwbLimitRangeCell(const XMLElement*, void* param, int index); 163 bool parseEntrySensorAwbLimitRangeV201Cell(const XMLElement*, void* param, int index); 164 bool parseEntrySensorAecLinAlterExp(const XMLElement*, void* param = NULL); 165 bool parseEntrySensorAecHdrAlterExp(const XMLElement*, void* param = NULL); 166 bool parseEntrySensorAecAlterExp(const XMLElement*, void* param = NULL); 167 bool parseEntrySensorAecSyncTest(const XMLElement*, void* param = NULL); 168 bool parseEntrySensorAecSpeed(const XMLElement*, void* param = NULL); 169 bool parseEntrySensorAecDelayFrmNum(const XMLElement*, void* param = NULL); 170 bool parseEntrySensorAecVBNightMode(const XMLElement*, void* param = NULL); 171 bool parseEntrySensorAecIRNightMode(const XMLElement*, void* param = NULL); 172 bool parseEntrySensorAecDNSwitch(const XMLElement*, void* param = NULL); 173 bool parseEntrySensorAecAntiFlicker(const XMLElement*, void* param = NULL); 174 bool parseEntrySensorAecFrameRateMode(const XMLElement*, void* param = NULL); 175 bool parseEntrySensorAecRangeLinearAE(const XMLElement*, void* param = NULL); 176 bool parseEntrySensorAecRangeHdrAE(const XMLElement*, void* param = NULL); 177 bool parseEntrySensorAecRange(const XMLElement*, void* param = NULL); 178 bool parseEntrySensorAecInitValueLinearAE(const XMLElement*, void* param = NULL); 179 bool parseEntrySensorAecInitValueHdrAE(const XMLElement*, void* param = NULL); 180 bool parseEntrySensorAecInitValue(const XMLElement*, void* param = NULL); 181 bool parseEntrySensorAecGridWeight(const XMLElement*, void* param = NULL); 182 bool parseEntrySensorAecIrisCtrlPAttr(const XMLElement*, void* param = NULL); 183 bool parseEntrySensorAecIrisCtrlDCAttr(const XMLElement*, void* param = NULL); 184 bool parseEntrySensorAecIrisCtrlHDCAttr(const XMLElement*, void* param = NULL); 185 bool parseEntrySensorAecIrisCtrl(const XMLElement*, void* param = NULL); 186 bool parseEntrySensorAecManualCtrlLinearAE(const XMLElement*, void* param = NULL); 187 bool parseEntrySensorAecManualCtrlHdrAE(const XMLElement*, void* param = NULL); 188 bool parseEntrySensorAecManualCtrl(const XMLElement*, void* param = NULL); 189 bool parseEntrySensorAecEnvLvCalib(const XMLElement*, void* param = NULL); 190 bool parseEntrySensorAecRoute(const XMLElement*, void* param = NULL); 191 bool parseEntrySensorLinearAECtrlAoe(const XMLElement*, void* param = NULL); 192 bool parseEntrySensorLinearAECtrl(const XMLElement*, void* param = NULL); 193 bool parseEntrySensorLinearAECtrlWeightMethod(const XMLElement*, void* param = NULL); 194 bool parseEntrySensorLinearAECtrlDarkROIMethod(const XMLElement*, void* param = NULL); 195 bool parseEntrySensorLinearAECtrlBackLight(const XMLElement*, void* param = NULL); 196 bool parseEntrySensorLinearAECtrlOverExp(const XMLElement*, void* param = NULL); 197 bool parseEntrySensorIntervalAdjustStrategy(const XMLElement*, void* param = NULL); 198 bool parseEntrySensorLinearAECtrlHist2hal(const XMLElement*, void* param = NULL); 199 bool parseEntrySensorHdrAECtrlExpRatioCtrl(const XMLElement*, void* param = NULL); 200 bool parseEntrySensorHdrAECtrlLframeCtrl(const XMLElement*, void* param = NULL); 201 bool parseEntrySensorHdrAECtrlLframeMode(const XMLElement*, void* param = NULL); 202 bool parseEntrySensorHdrAECtrlMframeCtrl(const XMLElement*, void* param = NULL); 203 bool parseEntrySensorHdrAECtrlSframeCtrl(const XMLElement*, void* param = NULL); 204 bool parseEntrySensorHdrAECtrl(const XMLElement*, void* param = NULL); 205 bool parseEntrySensorAec(const XMLElement*, void* param = NULL); 206 bool parseEntrySensorAecLinearAeRoute(const XMLElement*, void* param = NULL); 207 bool parseEntrySensorAecHdrAeRoute(const XMLElement*, void* param = NULL); 208 bool parseEntrySensorAecLinearAeDynamicPoint(const XMLElement*, void* param = NULL); 209 210 bool parseEntrySensorAecLinAlterExpV21(const XMLElement*, void* param, int index); 211 bool parseEntrySensorAecHdrAlterExpV21(const XMLElement*, void* param, int index); 212 bool parseEntrySensorAecAlterExpV21(const XMLElement*, void* param = NULL); 213 bool parseEntrySensorAecSyncTestV21(const XMLElement*, void* param = NULL); 214 bool parseEntrySensorAecSpeedV21(const XMLElement*, void* param = NULL); 215 bool parseEntrySensorAecDelayFrmNumV21(const XMLElement*, void* param = NULL); 216 bool parseEntrySensorAecVBNightModeV21(const XMLElement*, void* param = NULL); 217 bool parseEntrySensorAecIRNightModeV21(const XMLElement*, void* param = NULL); 218 bool parseEntrySensorAecDNSwitchV21(const XMLElement*, void* param = NULL); 219 bool parseEntrySensorAecAntiFlickerV21(const XMLElement*, void* param = NULL); 220 bool parseEntrySensorAecFrameRateModeV21(const XMLElement*, void* param = NULL); 221 bool parseEntrySensorAecRangeLinearAEV21(const XMLElement*, void* param = NULL); 222 bool parseEntrySensorAecRangeHdrAEV21(const XMLElement*, void* param = NULL); 223 bool parseEntrySensorAecRangeV21(const XMLElement*, void* param = NULL); 224 bool parseEntrySensorAecInitValueLinearAEV21(const XMLElement*, void* param = NULL); 225 bool parseEntrySensorAecInitValueHdrAEV21(const XMLElement*, void* param = NULL); 226 bool parseEntrySensorAecInitValueV21(const XMLElement*, void* param = NULL); 227 bool parseEntrySensorAecIrisCtrlPAttrV21(const XMLElement*, void* param = NULL); 228 bool parseEntrySensorAecIrisCtrlDCAttrV21(const XMLElement*, void* param = NULL); 229 bool parseEntrySensorAecIrisCtrlHDCAttrV21(const XMLElement*, void* param = NULL); 230 bool parseEntrySensorAecIrisCtrlV21(const XMLElement*, void* param = NULL); 231 bool parseEntrySensorAecManualCtrlLinearAEV21(const XMLElement*, void* param = NULL); 232 bool parseEntrySensorAecManualCtrlHdrAEV21(const XMLElement*, void* param = NULL); 233 bool parseEntrySensorAecManualCtrlV21(const XMLElement*, void* param = NULL); 234 bool parseEntrySensorAecEnvLvCalibV21(const XMLElement*, void* param = NULL); 235 bool parseEntrySensorAecLinearRouteV21(const XMLElement*, void* param = NULL); 236 bool parseEntrySensorAecHdrRouteV21(const XMLElement*, void* param = NULL); 237 bool parseEntrySensorAecRouteV21(const XMLElement*, void* param = NULL); 238 bool parseEntrySensorAecLinearAeDynamicPointV21(const XMLElement*, void* param = NULL); 239 bool parseEntrySensorLinearAECtrlBackLightV21(const XMLElement*, void* param = NULL); 240 bool parseEntrySensorLinearAECtrlOverExpV21(const XMLElement*, void* param = NULL); 241 bool parseEntrySensorLinearAECtrlV21(const XMLElement*, void* param = NULL); 242 bool parseEntrySensorIntervalAdjustStrategyV21(const XMLElement*, void* param = NULL); 243 bool parseEntrySensorLinearAECtrlHist2halV21(const XMLElement*, void* param = NULL); 244 bool parseEntrySensorHdrAECtrlExpRatioCtrlV21(const XMLElement*, void* param = NULL); 245 bool parseEntrySensorHdrAECtrlLframeCtrlV21(const XMLElement*, void* param = NULL); 246 bool parseEntrySensorHdrAECtrlLframeModeV21(const XMLElement*, void* param = NULL); 247 bool parseEntrySensorHdrAECtrlMframeCtrlV21(const XMLElement*, void* param = NULL); 248 bool parseEntrySensorHdrAECtrlSframeCtrlV21(const XMLElement*, void* param = NULL); 249 bool parseEntrySensorHdrAECtrlV21(const XMLElement*, void* param = NULL); 250 bool parseEntrySensorAecWinScaleV21(const XMLElement*, void* param = NULL); 251 bool parseEntrySensorAecCalibPara(const XMLElement*, void* param, int index); 252 bool parseEntrySensorAecTunePara(const XMLElement*, void* param, int index); 253 bool parseEntrySensorAecV21(const XMLElement*, void* param = NULL); 254 255 bool parseEntrySensorAhdrMerge(const XMLElement* pelement, void* param = NULL); 256 bool parseEntrySensorAhdrTmo(const XMLElement* pelement, void* param = NULL); 257 bool parseEntrySensorAhdrTmoEn(const XMLElement* pelement, void* param = NULL); 258 bool parseEntrySensorAhdrTmoGlobalLuma(const XMLElement* pelement, void* param = NULL); 259 bool parseEntrySensorAhdrTmoDetailsHighLight(const XMLElement* pelement, void* param = NULL); 260 bool parseEntrySensorAhdrTmoDetailsLowLight(const XMLElement* pelement, void* param = NULL); 261 bool parseEntrySensorAhdrLocalTMO(const XMLElement* pelement, void* param = NULL); 262 bool parseEntrySensorAhdrGlobalTMO(const XMLElement* pelement, void* param = NULL); 263 bool parseEntrySensorDrc(const XMLElement* pelement, void* param = NULL); 264 bool parseEntrySensorDrcCalibPara(const XMLElement* pelement, void* param = NULL); 265 bool parseEntrySensorDrcTuningPara(const XMLElement* pelement, void* param = NULL); 266 bool parseEntrySensorBlcModeCell(const XMLElement* pelement, void* param = NULL); 267 bool parseEntrySensorBlc(const XMLElement* pelement, void* param = NULL); 268 bool parseEntrySensorLut3d(const XMLElement* pelement, void* param = NULL); 269 bool parseEntrySensorDpcc(const XMLElement* pelement, void* param = NULL); 270 bool parseEntrySensorDpccFastMode(const XMLElement* pelement, void* param = NULL); 271 bool parseEntrySensorDpccExpertMode(const XMLElement* pelement, void* param = NULL); 272 bool parseEntrySensorDpccSetCell(const XMLElement* pelement, void* param = NULL); 273 bool parseEntrySensorDpccSetCellRK(const XMLElement* pelement, int index ); 274 bool parseEntrySensorDpccSetCellLC(const XMLElement* pelement, int index ); 275 bool parseEntrySensorDpccSetCellPG(const XMLElement* pelement, int index ); 276 bool parseEntrySensorDpccSetCellRND(const XMLElement* pelement, int index ); 277 bool parseEntrySensorDpccSetCellRG(const XMLElement* pelement, int index); 278 bool parseEntrySensorDpccSetCellRO(const XMLElement* pelement, int index ); 279 bool parseEntrySensorDpccPdaf(const XMLElement* pelement, void* param = NULL); 280 bool parseEntrySensorDpccSensor(const XMLElement* pelement, void* param = NULL); 281 bool parseEntrySensorBayerNr(const XMLElement* pelement, void* param = NULL); 282 bool parseEntrySensorBayerNrModeCell(const XMLElement* pelement, void* param = NULL); 283 bool parseEntrySensorBayerNrSetting(const XMLElement* pelement, void* param = NULL, int index = 0); 284 bool parseEntrySensorLsc(const XMLElement* pelement, void* param = NULL); 285 bool parseEntrySensorLscAlscCof(const XMLElement* pelement, void* param = NULL); 286 bool parseEntrySensorLscAlscCofResAll(const XMLElement* pelement, void* param = NULL); 287 bool parseEntrySensorLscAlscCofIllAll(const XMLElement* pelement, void* param = NULL); 288 bool parseEntrySensorLscTableAll(const XMLElement* pelement, void* param = NULL); 289 bool parseEntrySensorRKDM(const XMLElement* pelement, void* param = NULL); 290 bool parseEntrySensorlumaCCMGAC(const XMLElement* pelement, void* param = NULL, int index = 0); 291 bool parseEntrySensorlumaCCM(const XMLElement* pelement, void* param = NULL, int index = 0); 292 bool parseEntrySensorCCM(const XMLElement* pelement, void* param = NULL); 293 bool parseEntrySensorCCMModeCell(const XMLElement* pelement, void* param = NULL); 294 bool parseEntrySensorCcmAccmCof(const XMLElement* pelement, void* param = NULL, int index = 0); 295 bool parseEntrySensorCcmAccmCofIllAll(const XMLElement* pelement, void* param = NULL, int index = 0); 296 bool parseEntrySensorCcmMatrixAll(const XMLElement* pelement, void* param = NULL, int index = 0); 297 bool parseEntrySensorUVNR(const XMLElement* pelement, void* param = NULL); 298 bool parseEntrySensorUVNRModeCell(const XMLElement* pelement, void* param = NULL); 299 bool parseEntrySensorUVNRSetting(const XMLElement* pelement, void* param = NULL, int index = 0); 300 bool parseEntrySensorGamma(const XMLElement* pelement, void* param = NULL); 301 bool parseEntrySensorDegamma(const XMLElement* pelement, void* param = NULL); 302 bool parseEntrySensorDegammaModeCell(const XMLElement* pelement, void* param = NULL); 303 bool parseEntrySensorYnr(const XMLElement* pelement, void* param = NULL); 304 bool parseEntrySensorYnrModeCell(const XMLElement* pelement, void* param = NULL); 305 bool parseEntrySensorYnrSetting(const XMLElement* pelement, void* param = NULL, int index = 0); 306 bool parseEntrySensorYnrISO(const XMLElement* pelement, void* param = NULL, int index = 0); 307 bool parseEntrySensorGic(const XMLElement* pelement, void* param = NULL); 308 bool parseEntrySensorGicCalibParaV20(const XMLElement* pelement, void* param); 309 bool parseEntrySensorGicTuningParaV20(const XMLElement* pelement, void* param); 310 bool parseEntrySensorGicCalibSettingV20( const XMLElement* pelement, void* param, int index) ; 311 bool parseEntrySensorGicTuningSettingV20( const XMLElement* pelement, void* param, int index) ; 312 bool parseEntrySensorGicCalibParaV21(const XMLElement* pelement, void* param); 313 bool parseEntrySensorGicTuningParaV21(const XMLElement* pelement, void* param); 314 bool parseEntrySensorGicCalibSettingV21( const XMLElement* pelement, void* param, int index) ; 315 bool parseEntrySensorGicTuningSettingV21( const XMLElement* pelement, void* param, int index) ; 316 bool parseEntrySensorMFNR(const XMLElement* pelement, void* param = NULL); 317 bool parseEntrySensorMFNRDynamic(const XMLElement* pelement, void* param = NULL, int index = 0); 318 bool parseEntrySensorMFNRMotionDetection(const XMLElement* pelement, void* param = NULL, int index = 0); 319 bool parseEntrySensorMFNRModeCell(const XMLElement* pelement, void* param = NULL); 320 bool parseEntrySensorMFNRAwbUvRatio(const XMLElement* pelement, void* param = NULL); 321 bool parseEntrySensorMFNRISO(const XMLElement* pelement, void* param = NULL, int index = 0); 322 bool parseEntrySensorMFNRSetting(const XMLElement* pelement, void* param = NULL, int index = 0); 323 bool parseEntrySensorSharp(const XMLElement* pelement, void* param = NULL); 324 bool parseEntrySensorSharpModeCell(const XMLElement* pelement, void* param = NULL); 325 bool parseEntrySensorSharpSetting(const XMLElement* pelement, void* param = NULL, int index = 0); 326 bool parseEntrySensorSharpISO(const XMLElement* pelement, void* param = NULL, int index = 0); 327 bool parseEntrySensorEdgeFilter(const XMLElement* pelement, void* param = NULL); 328 bool parseEntrySensorEdgeFilterModeCell(const XMLElement* pelement, void* param = NULL ); 329 bool parseEntrySensorEdgeFilterSetting(const XMLElement* pelement, void* param = NULL, int index = 0); 330 bool parseEntrySensorEdgeFilterISO(const XMLElement* pelement, void* param = NULL, int index = 0); 331 bool parseEntrySensorDehaze(const XMLElement* pelement, void* param = NULL); 332 bool parseEntrySensorDehazeCalibParaV20(const XMLElement* pelement, void* param = NULL); 333 bool parseEntrySensorDehazeCalibParaV21(const XMLElement* pelement, void* param = NULL); 334 bool parseEntrySensorDehazeTuningParaV20(const XMLElement* pelement, void* param = NULL); 335 bool parseEntrySensorDehazeTuningParaV21(const XMLElement* pelement, void* param = NULL); 336 bool parseEntrySensorDehazeSettingV20(const XMLElement* pelement, void* param = NULL, int index = 0); 337 bool parseEntrySensorEnhanceSettingV20(const XMLElement* pelement, void* param = NULL, int index = 0); 338 bool parseEntrySensorHistSettingV20(const XMLElement* pelement, void* param = NULL, int index = 0); 339 bool parseEntrySensorDehazeTuningSettingV20(const XMLElement* pelement, void* param = NULL, int index = 0); 340 bool parseEntrySensorEnhanceTuningSettingV20(const XMLElement* pelement, void* param = NULL, int index = 0); 341 bool parseEntrySensorHistTuningSettingV20(const XMLElement* pelement, void* param = NULL, int index = 0); 342 bool parseEntrySensorDehazeSettingV21(const XMLElement* pelement, void* param = NULL, int index = 0); 343 bool parseEntrySensorEnhanceSettingV21(const XMLElement* pelement, void* param = NULL, int index = 0); 344 bool parseEntrySensorHistSettingV21(const XMLElement* pelement, void* param = NULL, int index = 0); 345 bool parseEntrySensorDehazeTuningSettingV21(const XMLElement* pelement, void* param = NULL, int index = 0); 346 bool parseEntrySensorEnhanceTuningSettingV21(const XMLElement* pelement, void* param = NULL, int index = 0); 347 bool parseEntrySensorHistTuningSettingV21(const XMLElement* pelement, void* param = NULL, int index = 0); 348 bool parseEntrySensorIIRSetting(const XMLElement* pelement, void* param = NULL, int index = 0); 349 bool parseEntrySensorAfWindow(const XMLElement* pelement, void* param = NULL); 350 bool parseEntrySensorAfFixedMode(const XMLElement* pelement, void* param = NULL); 351 bool parseEntrySensorAfMacroMode(const XMLElement* pelement, void* param = NULL); 352 bool parseEntrySensorAfInfinityMode(const XMLElement* pelement, void* param = NULL); 353 bool parseEntrySensorAfContrastAf(const XMLElement* pelement, void* param = NULL); 354 bool parseEntrySensorAfLaserAf(const XMLElement* pelement, void* param = NULL); 355 bool parseEntrySensorAfPdaf(const XMLElement* pelement, void* param = NULL); 356 bool parseEntrySensorAfVcmCfg(const XMLElement* pelement, void* param = NULL); 357 bool parseEntrySensorAfMeasISO(const XMLElement* pelement, void* param = NULL); 358 bool parseEntrySensorAfZoomFocusTbl(const XMLElement* pelement, void* param = NULL); 359 bool parseEntrySensorAf(const XMLElement* pelement, void* param = NULL); 360 bool parseEntrySensorLdch(const XMLElement* pelement, void* param = NULL); 361 bool parseEntrySensorFec(const XMLElement* pelement, void* param = NULL); 362 bool parseEntrySensorEis(const XMLElement* pelement, void* param = NULL); 363 bool parseEntrySensorLumaDetect(const XMLElement* pelement, void* param = NULL); 364 bool parseEntrySensorOrb(const XMLElement* pelement, void* param = NULL); 365 bool parseEntrySensorInfoGainRange(const XMLElement* pelement, void* param = NULL); 366 bool parseEntrySensorInfo(const XMLElement* pelement, void* param = NULL); 367 bool parseEntrySensorModuleInfo(const XMLElement* pelement, void* param = NULL); 368 bool parseEntrySensorCpsl(const XMLElement* pelement, void* param = NULL); 369 bool parseEntrySensorColorAsGrey(const XMLElement* pelement, void* param = NULL); 370 bool parseEntrySensorCproc(const XMLElement* pelement, void* param = NULL); 371 bool parseEntrySensorIE(const XMLElement* pelement, void* param = NULL); 372 bool parseEntrySystemHDR(const XMLElement* pelement, void* param = NULL); 373 bool parseEntrySystemDcgNormalGainCtrl(const XMLElement* pelement, void* param = NULL); 374 bool parseEntrySystemDcgHdrGainCtrl(const XMLElement* pelement, void* param = NULL); 375 bool parseEntrySystemDcgNormalEnvCtrl(const XMLElement* pelement, void* param = NULL); 376 bool parseEntrySystemDcgHdrEnvCtrl(const XMLElement* pelement, void* param = NULL); 377 bool parseEntrySystemDcgNormalSetting(const XMLElement* pelement, void* param = NULL); 378 bool parseEntrySystemDcgHdrSetting(const XMLElement* pelement, void* param = NULL); 379 bool parseEntrySystemDcgSetting(const XMLElement* pelement, void* param = NULL); 380 bool parseEntrySystemExpDelayHdr(const XMLElement* pelement, void* param = NULL); 381 bool parseEntrySystemExpDelayNormal(const XMLElement* pelement, void* param = NULL); 382 bool parseEntrySystemExpDelay(const XMLElement* pelement, void* param = NULL); 383 bool parseEntrySystem(const XMLElement*, void* param = NULL); 384 bool parseEntryExpSet(const XMLElement* pelement, void* param = NULL); 385 bool parseEntryExpSetGain2Reg(const XMLElement* pelement, void* param = NULL); 386 bool parseEntryExpSetGainSet(const XMLElement* pelement, void* param = NULL); 387 bool parseEntryExpSetTimeSet(const XMLElement* pelement, void* param = NULL); 388 bool parseEntryExpSetHdrTimeSet(const XMLElement* pelement, void* param = NULL); 389 bool parseEntryExpSetNormalTimeSet(const XMLElement* pelement, void* param = NULL); 390 bool parseEntryExpSetHdrSet(const XMLElement* pelement, void* param = NULL); 391 bool parseEntryExpSetDcgSet(const XMLElement* pelement, void* param = NULL); 392 bool parseEntryExpSetDcgNormalSet(const XMLElement* pelement, void* param = NULL); 393 bool parseEntryExpSetDcgHdrSet(const XMLElement* pelement, void* param = NULL); 394 bool parseEntryExpSetDcgNormalGainCtrl(const XMLElement* pelement, void* param = NULL); 395 bool parseEntryExpSetDcgHdrGainCtrl(const XMLElement* pelement, void* param = NULL); 396 bool parseEntryExpSetDcgNormalEnvCtrl(const XMLElement* pelement, void* param = NULL); 397 bool parseEntryExpSetDcgHdrEnvCtrl(const XMLElement* pelement, void* param = NULL); 398 bool parseEntryExpSetExpUpdateHdr(const XMLElement* pelement, void* param = NULL); 399 bool parseEntryExpSetExpUpdateNormal(const XMLElement* pelement, void* param = NULL); 400 bool parseEntryExpSetExpUpdate(const XMLElement* pelement, void* param = NULL); 401 bool parseEntryModuleInfo(const XMLElement* pelement, void* param = NULL); 402 403 404 bool parseEntrySensorBayernrV2 405 ( 406 const XMLElement* pelement, 407 void* param = NULL 408 ) ; 409 410 bool parseEntryBayernrV2Setting_2D 411 ( 412 const XMLElement* pelement, 413 void* param, 414 int index 415 ); 416 417 bool parseEntryBayernrV2Setting_3D 418 ( 419 const XMLElement* pelement, 420 void* param, 421 int index 422 ); 423 424 bool parseEntrySensorBayernrV2Setting2D 425 ( 426 const XMLElement* pelement, 427 void* param 428 ); 429 430 bool parseEntrySensorBayernrV2Setting3D 431 ( 432 const XMLElement* pelement, 433 void* param 434 ); 435 bool parseEntrySensorYnrV2 436 ( 437 const XMLElement* pelement, 438 void* param 439 ); 440 bool parseEntryYnrV2Setting 441 ( 442 const XMLElement* pelement, 443 void* param, 444 int index 445 ); 446 bool parseEntrySensorCnrV1 447 ( 448 const XMLElement* pelement, 449 void* param 450 ); 451 bool parseEntryCnrV1Setting 452 ( 453 const XMLElement* pelement, 454 void* param, 455 int index 456 ); 457 bool parseEntrySharpV3Setting 458 ( 459 const XMLElement* pelement, 460 void* param, 461 int index 462 ); 463 bool parseEntrySensorSharpV3 464 ( 465 const XMLElement* pelement, 466 void* param 467 ); 468 public: 469 explicit RkAiqCalibParser(CamCalibDbContext_t *pCalibDb); 470 virtual ~RkAiqCalibParser(); 471 bool doParse(const char* device); 472 bool doGenerate(const char* deviceRef, const char* deviceOutput); 473 void updateXmlParseReadWriteFlag(int flag); 474 475 476 private: 477 CamCalibDbContext_t *mCalibDb; 478 479 #if defined(__linux__) 480 XCAM_DEAD_COPY (RkAiqCalibParser); 481 #endif 482 }; 483 484 } //namespace RkCam 485 486 #endif 487