////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: Parameter Parser V5.5.1 (2411131018)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  tuningsetmanager.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


#include "parametersetmanager.h"
#include "parametermodule.h"
#include "parametertypes.h"
#include "aanr_atf_2_0_0.h"
#include "ioteis_2_6_0.h"
#include "iwarp_1_0_0.h"
#include "svhdr_1_0_0.h"
#include "abf_3_4_0.h"
#include "abf_4_0_0.h"
#include "adaptiveanr_1_0_0.h"
#include "adaptivetf_1_0_0.h"
#include "aidenoiser_1_0_0.h"
#include "aidenoiser_2_0_0.h"
#include "anr_1_0_0.h"
#include "asf_3_0_0.h"
#include "asf_3_2_0.h"
#include "bds_1_0.h"
#include "bincorr_1_0_0.h"
#include "bls_1_2_0.h"
#include "bpcabf_4_1_0.h"
#include "bpcbcc_5_0_0.h"
#include "cac_2_2_0.h"
#include "cac_2_3_0.h"
#include "cc_1_2_0.h"
#include "cc_1_3_0.h"
#include "cs_2_0_0.h"
#include "csmce_1_1_0.h"
#include "cst_1_2_0.h"
#include "cv_1_2_0.h"
#include "cvp_1_0_0.h"
#include "cvp_2_0_0.h"
#include "defog_1_0_0.h"
#include "demosaic_3_6_0.h"
#include "demosaic_3_7_0.h"
#include "demux_1_3_0.h"
#include "demuxblklevel_1_4_0.h"
#include "ds4to1_1_0_0.h"
#include "ds4to1_1_1_0.h"
#include "dsx_1_0_0.h"
#include "eis_1_0_0.h"
#include "eis_1_1_0.h"
#include "eis_1_2_0.h"
#include "eis_1_3_0.h"
#include "gamma_1_5_0.h"
#include "gamma_1_6_0.h"
#include "gic_3_0_0.h"
#include "gra_1_0_0.h"
#include "gtm_1_0_0.h"
#include "gtm_1_2_0.h"
#include "gtm_1_3_0.h"
#include "hdr10p_1_0_0.h"
#include "hdr_2_0_0.h"
#include "hdr_2_2_0.h"
#include "hdr_2_3_0.h"
#include "hdr_3_0_0.h"
#include "hdr_4_0_0.h"
#include "hdrvideo_1_0_0.h"
#include "hnr_1_0_0.h"
#include "ica_1_0_0.h"
#include "ica_2_0_0.h"
#include "ica_3_0_0.h"
#include "ica_3_3_0.h"
#include "ldc_1_0_0.h"
#include "ldc_1_1_0.h"
#include "lenr_1_0_0.h"
#include "linearization_3_3_0.h"
#include "linearization_3_4_0.h"
#include "lrme_1_0_0.h"
#include "lsc_3_4_0.h"
#include "lsc_3_5_0.h"
#include "lsc_4_0_0.h"
#include "ltm_1_3_0.h"
#include "ltm_1_4_0.h"
#include "ltm_1_5_0.h"
#include "ltm_1_6_0.h"
#include "mf_1_0_0.h"
#include "mf_1_1_0.h"
#include "mfnr_2_0_0.h"
#include "nradj_1_0_0.h"
#include "nrm_1_0_0.h"
#include "pdpc_1_1_0.h"
#include "pdpc_2_0_0.h"
#include "pdpc_3_0_0.h"
#include "pedestal_1_3_0.h"
#include "preference_1_0_0.h"
#include "qll_1_0_0.h"
#include "sat_1_0_0.h"
#include "sce_1_1_0.h"
#include "shdr_1_0_0.h"
#include "shdr_1_1_0.h"
#include "shdr_3_0_0.h"
#include "swmctf_1_0_0.h"
#include "swmctf_2_0_0.h"
#include "swmfnr_2_0_0.h"
#include "swmfnr_3_0_0.h"
#include "tdl_1_0_0.h"
#include "tf_1_0_0.h"
#include "tf_2_0_0.h"
#include "tintless_2_0_0.h"
#include "tmc_1_0_0.h"
#include "tmc_1_1_0.h"
#include "tmc_1_2_0.h"
#include "tmc_1_3_0.h"
#include "upscale_2_0_0.h"
#include "video_1_0_0.h"
#include "video_1_1_0.h"
#include "wnr_2_4_0.h"
#include "camxt2tconfig.h"
#include "aecarbitration.h"
#include "aecconvergence.h"
#include "aecdepth.h"
#include "aecextension.h"
#include "aecface.h"
#include "aecflash.h"
#include "aecgyro.h"
#include "aecir.h"
#include "aecmetering.h"
#include "aecparamextension.h"
#include "aecsensorconfig.h"
#include "aecshdr.h"
#include "aecskip.h"
#include "aecsnapshotctrl.h"
#include "aecstartup.h"
#include "aecstatsconfig.h"
#include "aecsync.h"
#include "aectouch.h"
#include "aectracker.h"
#include "aecx1dvectorprocessor.h"
#include "aecxadvancedinfo.h"
#include "aecxarbitration.h"
#include "aecxconvergence.h"
#include "aecxcorestatsconfig.h"
#include "aecxdb1dmeterweight.h"
#include "aecxdb2dmeterweight.h"
#include "aecxdbactiveanalyzers.h"
#include "aecxdbactivecalculators.h"
#include "aecxdbarbitrationlut.h"
#include "aecxdbarbitrationorder.h"
#include "aecxdbarbitrationrange.h"
#include "aecxdbarbitrationtable.h"
#include "aecxdbconvactivescd.h"
#include "aecxdbconvbase.h"
#include "aecxdbconvsettle.h"
#include "aecxdbconvstretch.h"
#include "aecxdbroi.h"
#include "aecxdbsceneanalyzer.h"
#include "aecxdbsnapshot.h"
#include "aecxdbstatscalculator.h"
#include "aecxev.h"
#include "aecxextension.h"
#include "aecxexternalmapprocessor.h"
#include "aecxface.h"
#include "aecxflash.h"
#include "aecxflashsnapshot.h"
#include "aecxhdrsensor.h"
#include "aecxhwstatsconfig.h"
#include "aecxmetering.h"
#include "aecxmeteringsaalgorithm.h"
#include "aecxmeteringsceneanalyzer.h"
#include "aecxmeteringstatscalculator.h"
#include "aecxmtrtablegen.h"
#include "aecxparamextension.h"
#include "aecxscenechangedetector.h"
#include "aecxskipcontrol.h"
#include "aecxspectralsensor.h"
#include "aecxstartup.h"
#include "aecxsync.h"
#include "aecxtouch.h"
#include "afalgotuningelements.h"
#include "afbafelements.h"
#include "afcontrastafelements.h"
#include "afdciafelements.h"
#include "afdepthafelements.h"
#include "afextensionelements.h"
#include "afhafelements.h"
#include "afmonitorelements.h"
#include "afpdafelements.h"
#include "afpdlibelements.h"
#include "afsoftwarestatelements.h"
#include "aftofelements.h"
#include "afdtuning.h"
#include "asdtuning.h"
#include "modawbbestshotv1.h"
#include "modawbfaceassistv1.h"
#include "modawbfaceprocessorv1.h"
#include "modawbinitv1.h"
#include "modbgstatsconfigv1.h"
#include "modcustrefptv1.h"
#include "moddav1.h"
#include "moddepth16v1.h"
#include "moddistwvv1.h"
#include "moddsfv1.h"
#include "moddualcamsyncv1.h"
#include "modflashdecv1.h"
#include "modflashrefptv1.h"
#include "modflashwv1.h"
#include "modgeneralwvv1.h"
#include "modhistctrlv1.h"
#include "modilluwvv1.h"
#include "modmlczv1.h"
#include "modmlczv2.h"
#include "modmlczv3.h"
#include "modmwbv1.h"
#include "modparamextv1.h"
#include "modrefptv1.h"
#include "modsaagwv1.h"
#include "modsaagwv2.h"
#include "modsagenv1.h"
#include "modsagenv2.h"
#include "modsaspatialgenv1.h"
#include "modscconvv1.h"
#include "modsensorcalv1.h"
#include "modsfddv1.h"
#include "modsfstatscrv1.h"
#include "modsfsubsmpv1.h"
#include "modspecilluv1.h"
#include "modspectralsensorinfoassistawbv1.h"
#include "modstatdistv1.h"
#include "modtmpconvv1.h"
#include "modtrigladjv1.h"
#include "rertuning.h"
#include "statsnn.h"

#ifndef TUNINGSETMANAGER_H
#define TUNINGSETMANAGER_H

#include <iostream>
#include <unordered_map>

class TuningSetManager : public ParameterSetManager
{
public:
    TuningSetManager();
    virtual ~TuningSetManager();

    void AddModule(ParameterModule* const module);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// UpdateBinaryParameters
    ///
    /// @brief Replaces exising parameters with the ones in a buffer. LoadBinaryParameters must be called first
    /// @brief After calling UpdateBinaryParameters, call FreeReplacedParameter to free up any replaced parameter objects
    ///
    /// @param buffer   Binary parameter buffer
    /// @param length   Length of the binary parameter buffer
    ///
    /// @return Node
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    bool UpdateBinaryParameters(
        UINT8* const buffer,
        const SIZE_T length);

    aanr_atf_2_0_0::aanr_atf20Type* GetModule_aanr_atf20(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aanr_atf_2_0_0::aanr_atf20Type* const release = nullptr);

    ioteis_2_6_0::ioteis26Type* GetModule_ioteis26(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ioteis_2_6_0::ioteis26Type* const release = nullptr);

    iwarp_1_0_0::iwarp10Type* GetModule_iwarp10(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        iwarp_1_0_0::iwarp10Type* const release = nullptr);

    svhdr_1_0_0::svhdr10Type* GetModule_svhdr10(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        svhdr_1_0_0::svhdr10Type* const release = nullptr);

    abf_3_4_0::chromatix_abf34Type* GetModule_abf34_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        abf_3_4_0::chromatix_abf34Type* const release = nullptr);

    abf_4_0_0::chromatix_abf40Type* GetModule_abf40_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        abf_4_0_0::chromatix_abf40Type* const release = nullptr);

    abf_4_0_0::chromatix_abf40Type* GetModule_abf40_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        abf_4_0_0::chromatix_abf40Type* const release = nullptr);

    adaptiveANR_1_0_0::adaptiveANR10Type* GetModule_adaptiveANR10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        adaptiveANR_1_0_0::adaptiveANR10Type* const release = nullptr);

    adaptiveTF_1_0_0::adaptiveTF10Type* GetModule_adaptiveTF10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        adaptiveTF_1_0_0::adaptiveTF10Type* const release = nullptr);

    aidenoiser_1_0_0::chromatix_aidenoiser10Type* GetModule_aidenoiser10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aidenoiser_1_0_0::chromatix_aidenoiser10Type* const release = nullptr);

    aidenoiser_2_0_0::chromatix_aidenoiser20Type* GetModule_aidenoiser20_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aidenoiser_2_0_0::chromatix_aidenoiser20Type* const release = nullptr);

    anr_1_0_0::chromatix_anr10Type* GetModule_anr10_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        anr_1_0_0::chromatix_anr10Type* const release = nullptr);

    asf_3_0_0::chromatix_asf30Type* GetModule_asf30_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        asf_3_0_0::chromatix_asf30Type* const release = nullptr);

    asf_3_2_0::chromatix_asf32Type* GetModule_asf32_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        asf_3_2_0::chromatix_asf32Type* const release = nullptr);

    bds_1_0::chromatix_bds10Type* GetModule_bds10_tfe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        bds_1_0::chromatix_bds10Type* const release = nullptr);

    bincorr_1_0_0::chromatix_bincorr10Type* GetModule_bincorr10_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        bincorr_1_0_0::chromatix_bincorr10Type* const release = nullptr);

    bincorr_1_0_0::chromatix_bincorr10Type* GetModule_bincorr10_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        bincorr_1_0_0::chromatix_bincorr10Type* const release = nullptr);

    bls_1_2_0::chromatix_bls12Type* GetModule_bls12_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        bls_1_2_0::chromatix_bls12Type* const release = nullptr);

    bls_1_2_0::chromatix_bls12Type* GetModule_bls12_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        bls_1_2_0::chromatix_bls12Type* const release = nullptr);

    bls_1_2_0::chromatix_bls12Type* GetModule_bls12_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        bls_1_2_0::chromatix_bls12Type* const release = nullptr);

    bpcabf_4_1_0::chromatix_bpcabf41Type* GetModule_bpcabf41_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        bpcabf_4_1_0::chromatix_bpcabf41Type* const release = nullptr);

    bpcbcc_5_0_0::chromatix_bpcbcc50Type* GetModule_bpcbcc50_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        bpcbcc_5_0_0::chromatix_bpcbcc50Type* const release = nullptr);

    cac_2_2_0::chromatix_cac22Type* GetModule_cac22_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cac_2_2_0::chromatix_cac22Type* const release = nullptr);

    cac_2_3_0::chromatix_cac23Type* GetModule_cac23_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cac_2_3_0::chromatix_cac23Type* const release = nullptr);

    cc_1_2_0::chromatix_cc12Type* GetModule_cc12_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cc_1_2_0::chromatix_cc12Type* const release = nullptr);

    cc_1_3_0::chromatix_cc13Type* GetModule_cc13_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cc_1_3_0::chromatix_cc13Type* const release = nullptr);

    cc_1_3_0::chromatix_cc13Type* GetModule_cc13_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cc_1_3_0::chromatix_cc13Type* const release = nullptr);

    cc_1_3_0::chromatix_cc13Type* GetModule_cc13_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cc_1_3_0::chromatix_cc13Type* const release = nullptr);

    cc_1_3_0::chromatix_cc13Type* GetModule_cc13_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cc_1_3_0::chromatix_cc13Type* const release = nullptr);

    cs_2_0_0::chromatix_cs20Type* GetModule_cs20_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cs_2_0_0::chromatix_cs20Type* const release = nullptr);

    csmce_1_1_0::chromatix_csmce11Type* GetModule_csmce11_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        csmce_1_1_0::chromatix_csmce11Type* const release = nullptr);

    cst_1_2_0::chromatix_cst12Type* GetModule_cst12_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cst_1_2_0::chromatix_cst12Type* const release = nullptr);

    cst_1_2_0::chromatix_cst12Type* GetModule_cst12_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cst_1_2_0::chromatix_cst12Type* const release = nullptr);

    cst_1_2_0::chromatix_cst12Type* GetModule_cst12_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cst_1_2_0::chromatix_cst12Type* const release = nullptr);

    cst_1_2_0::chromatix_cst12Type* GetModule_cst12_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cst_1_2_0::chromatix_cst12Type* const release = nullptr);

    cv_1_2_0::chromatix_cv12Type* GetModule_cv12_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cv_1_2_0::chromatix_cv12Type* const release = nullptr);

    cv_1_2_0::chromatix_cv12Type* GetModule_cv12_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cv_1_2_0::chromatix_cv12Type* const release = nullptr);

    cvp_1_0_0::chromatix_cvp10Type* GetModule_cvp10_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cvp_1_0_0::chromatix_cvp10Type* const release = nullptr);

    cvp_2_0_0::chromatix_cvp20Type* GetModule_cvp20_ipe_mac(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cvp_2_0_0::chromatix_cvp20Type* const release = nullptr);

    cvp_2_0_0::chromatix_cvp20Type* GetModule_cvp20_ipe_temporal(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cvp_2_0_0::chromatix_cvp20Type* const release = nullptr);

    cvp_2_0_0::chromatix_cvp20Type* GetModule_cvp20_ipe_sat(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        cvp_2_0_0::chromatix_cvp20Type* const release = nullptr);

    defog_1_0_0::iotdefog10Type* GetModule_iotdefog10(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        defog_1_0_0::iotdefog10Type* const release = nullptr);

    demosaic_3_6_0::chromatix_demosaic36Type* GetModule_demosaic36_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        demosaic_3_6_0::chromatix_demosaic36Type* const release = nullptr);

    demosaic_3_6_0::chromatix_demosaic36Type* GetModule_demosaic36_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        demosaic_3_6_0::chromatix_demosaic36Type* const release = nullptr);

    demosaic_3_6_0::chromatix_demosaic36Type* GetModule_demosaic36_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        demosaic_3_6_0::chromatix_demosaic36Type* const release = nullptr);

    demosaic_3_7_0::chromatix_demosaic37Type* GetModule_demosaic37_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        demosaic_3_7_0::chromatix_demosaic37Type* const release = nullptr);

    demux_1_3_0::chromatix_demux13Type* GetModule_demux13_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        demux_1_3_0::chromatix_demux13Type* const release = nullptr);

    demux_1_3_0::chromatix_demux13Type* GetModule_demux13_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        demux_1_3_0::chromatix_demux13Type* const release = nullptr);

    demuxblklevel_1_4_0::chromatix_demuxblklevel14Type* GetModule_demuxblklevel14_tfe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        demuxblklevel_1_4_0::chromatix_demuxblklevel14Type* const release = nullptr);

    demuxblklevel_1_4_0::chromatix_demuxblklevel14Type* GetModule_demuxblklevel14_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        demuxblklevel_1_4_0::chromatix_demuxblklevel14Type* const release = nullptr);

    ds4to1_1_0_0::chromatix_ds4to1v10Type* GetModule_ds4to1v10_bps_full_dc4(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_0_0::chromatix_ds4to1v10Type* const release = nullptr);

    ds4to1_1_0_0::chromatix_ds4to1v10Type* GetModule_ds4to1v10_bps_dc4_dc16(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_0_0::chromatix_ds4to1v10Type* const release = nullptr);

    ds4to1_1_0_0::chromatix_ds4to1v10Type* GetModule_ds4to1v10_ife_full_dc4(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_0_0::chromatix_ds4to1v10Type* const release = nullptr);

    ds4to1_1_0_0::chromatix_ds4to1v10Type* GetModule_ds4to1v10_ife_dc4_dc16(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_0_0::chromatix_ds4to1v10Type* const release = nullptr);

    ds4to1_1_0_0::chromatix_ds4to1v10Type* GetModule_ds4to1v10_ife_disp_full_dc4(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_0_0::chromatix_ds4to1v10Type* const release = nullptr);

    ds4to1_1_0_0::chromatix_ds4to1v10Type* GetModule_ds4to1v10_ife_disp_dc4_dc16(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_0_0::chromatix_ds4to1v10Type* const release = nullptr);

    ds4to1_1_0_0::chromatix_ds4to1v10Type* GetModule_ds4to1v10_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_0_0::chromatix_ds4to1v10Type* const release = nullptr);

    ds4to1_1_1_0::chromatix_ds4to1v11Type* GetModule_ds4to1v11_ife_video_dc4_dc16(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_1_0::chromatix_ds4to1v11Type* const release = nullptr);

    ds4to1_1_1_0::chromatix_ds4to1v11Type* GetModule_ds4to1v11_ife_disp_full_dc4(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_1_0::chromatix_ds4to1v11Type* const release = nullptr);

    ds4to1_1_1_0::chromatix_ds4to1v11Type* GetModule_ds4to1v11_ife_disp_dc4_dc16(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_1_0::chromatix_ds4to1v11Type* const release = nullptr);

    ds4to1_1_1_0::chromatix_ds4to1v11Type* GetModule_ds4to1v11_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ds4to1_1_1_0::chromatix_ds4to1v11Type* const release = nullptr);

    dsx_1_0_0::chromatix_dsx10Type* GetModule_dsx10_ife_video_full_dc4(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        dsx_1_0_0::chromatix_dsx10Type* const release = nullptr);

    dsx_1_0_0::chromatix_dsx10Type* GetModule_dsx10_ipe_tf_dc4(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        dsx_1_0_0::chromatix_dsx10Type* const release = nullptr);

    eis_1_0_0::chromatix_eis10Type* GetModule_eis10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        eis_1_0_0::chromatix_eis10Type* const release = nullptr);

    eis_1_1_0::chromatix_eis11Type* GetModule_eis11_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        eis_1_1_0::chromatix_eis11Type* const release = nullptr);

    eis_1_2_0::chromatix_eis12Type* GetModule_eis12_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        eis_1_2_0::chromatix_eis12Type* const release = nullptr);

    eis_1_3_0::chromatix_eis13Type* GetModule_eis13_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        eis_1_3_0::chromatix_eis13Type* const release = nullptr);

    gamma_1_5_0::chromatix_gamma15Type* GetModule_gamma15_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gamma_1_5_0::chromatix_gamma15Type* const release = nullptr);

    gamma_1_5_0::chromatix_gamma15Type* GetModule_gamma15_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gamma_1_5_0::chromatix_gamma15Type* const release = nullptr);

    gamma_1_6_0::chromatix_gamma16Type* GetModule_gamma16_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gamma_1_6_0::chromatix_gamma16Type* const release = nullptr);

    gamma_1_6_0::chromatix_gamma16Type* GetModule_gamma16_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gamma_1_6_0::chromatix_gamma16Type* const release = nullptr);

    gic_3_0_0::chromatix_gic30Type* GetModule_gic30_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gic_3_0_0::chromatix_gic30Type* const release = nullptr);

    gra_1_0_0::chromatix_gra10Type* GetModule_gra10_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gra_1_0_0::chromatix_gra10Type* const release = nullptr);

    gtm_1_0_0::chromatix_gtm10Type* GetModule_gtm10_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gtm_1_0_0::chromatix_gtm10Type* const release = nullptr);

    gtm_1_0_0::chromatix_gtm10Type* GetModule_gtm10_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gtm_1_0_0::chromatix_gtm10Type* const release = nullptr);

    gtm_1_2_0::chromatix_gtm12Type* GetModule_gtm12_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gtm_1_2_0::chromatix_gtm12Type* const release = nullptr);

    gtm_1_3_0::chromatix_gtm13Type* GetModule_gtm13_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        gtm_1_3_0::chromatix_gtm13Type* const release = nullptr);

    hdr10p_1_0_0::chromatix_hdr10p10Type* GetModule_hdr10p10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hdr10p_1_0_0::chromatix_hdr10p10Type* const release = nullptr);

    hdr_2_0_0::chromatix_hdr20Type* GetModule_hdr20_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hdr_2_0_0::chromatix_hdr20Type* const release = nullptr);

    hdr_2_2_0::chromatix_hdr22Type* GetModule_hdr22_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hdr_2_2_0::chromatix_hdr22Type* const release = nullptr);

    hdr_2_2_0::chromatix_hdr22Type* GetModule_hdr22_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hdr_2_2_0::chromatix_hdr22Type* const release = nullptr);

    hdr_2_3_0::chromatix_hdr23Type* GetModule_hdr23_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hdr_2_3_0::chromatix_hdr23Type* const release = nullptr);

    hdr_3_0_0::chromatix_hdr30Type* GetModule_hdr30_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hdr_3_0_0::chromatix_hdr30Type* const release = nullptr);

    hdr_3_0_0::chromatix_hdr30Type* GetModule_hdr30_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hdr_3_0_0::chromatix_hdr30Type* const release = nullptr);

    hdr_4_0_0::chromatix_hdr40Type* GetModule_hdr40_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hdr_4_0_0::chromatix_hdr40Type* const release = nullptr);

    hdrvideo_1_0_0::chromatix_hdrvideo10Type* GetModule_hdrvideo10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hdrvideo_1_0_0::chromatix_hdrvideo10Type* const release = nullptr);

    hnr_1_0_0::chromatix_hnr10Type* GetModule_hnr10_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hnr_1_0_0::chromatix_hnr10Type* const release = nullptr);

    hnr_1_0_0::chromatix_hnr10Type* GetModule_hnr10_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        hnr_1_0_0::chromatix_hnr10Type* const release = nullptr);

    ica_1_0_0::chromatix_ica10Type* GetModule_ica10_ipe_module1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_1_0_0::chromatix_ica10Type* const release = nullptr);

    ica_1_0_0::chromatix_ica10Type* GetModule_ica10_ipe_module2(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_1_0_0::chromatix_ica10Type* const release = nullptr);

    ica_2_0_0::chromatix_ica20Type* GetModule_ica20_ife_module1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_2_0_0::chromatix_ica20Type* const release = nullptr);

    ica_2_0_0::chromatix_ica20Type* GetModule_ica20_ife_module2(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_2_0_0::chromatix_ica20Type* const release = nullptr);

    ica_2_0_0::chromatix_ica20Type* GetModule_ica20_ipe_module1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_2_0_0::chromatix_ica20Type* const release = nullptr);

    ica_2_0_0::chromatix_ica20Type* GetModule_ica20_ipe_module2(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_2_0_0::chromatix_ica20Type* const release = nullptr);

    ica_3_0_0::chromatix_ica30Type* GetModule_ica30_ipe_module1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_3_0_0::chromatix_ica30Type* const release = nullptr);

    ica_3_0_0::chromatix_ica30Type* GetModule_ica30_ipe_module2(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_3_0_0::chromatix_ica30Type* const release = nullptr);

    ica_3_3_0::chromatix_ica33Type* GetModule_ica33_ipe_module1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_3_3_0::chromatix_ica33Type* const release = nullptr);

    ica_3_3_0::chromatix_ica33Type* GetModule_ica33_ipe_module2(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ica_3_3_0::chromatix_ica33Type* const release = nullptr);

    ldc_1_0_0::chromatix_ldc10Type* GetModule_ldc10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ldc_1_0_0::chromatix_ldc10Type* const release = nullptr);

    ldc_1_1_0::chromatix_ldc11Type* GetModule_ldc11_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ldc_1_1_0::chromatix_ldc11Type* const release = nullptr);

    lenr_1_0_0::chromatix_lenr10Type* GetModule_lenr10_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        lenr_1_0_0::chromatix_lenr10Type* const release = nullptr);

    linearization_3_3_0::chromatix_linearization33Type* GetModule_linearization33_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        linearization_3_3_0::chromatix_linearization33Type* const release = nullptr);

    linearization_3_4_0::chromatix_linearization34Type* GetModule_linearization34_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        linearization_3_4_0::chromatix_linearization34Type* const release = nullptr);

    linearization_3_4_0::chromatix_linearization34Type* GetModule_linearization34_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        linearization_3_4_0::chromatix_linearization34Type* const release = nullptr);

    lrme_1_0_0::chromatix_lrme10Type* GetModule_lrme10_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        lrme_1_0_0::chromatix_lrme10Type* const release = nullptr);

    lsc_3_4_0::chromatix_lsc34Type* GetModule_lsc34_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        lsc_3_4_0::chromatix_lsc34Type* const release = nullptr);

    lsc_3_4_0::chromatix_lsc34Type* GetModule_lsc34_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        lsc_3_4_0::chromatix_lsc34Type* const release = nullptr);

    lsc_3_5_0::chromatix_lsc35Type* GetModule_lsc35_tfe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        lsc_3_5_0::chromatix_lsc35Type* const release = nullptr);

    lsc_3_5_0::chromatix_lsc35Type* GetModule_lsc35_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        lsc_3_5_0::chromatix_lsc35Type* const release = nullptr);

    lsc_4_0_0::chromatix_lsc40Type* GetModule_lsc40_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        lsc_4_0_0::chromatix_lsc40Type* const release = nullptr);

    lsc_4_0_0::chromatix_lsc40Type* GetModule_lsc40_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        lsc_4_0_0::chromatix_lsc40Type* const release = nullptr);

    ltm_1_3_0::chromatix_ltm13Type* GetModule_ltm13_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ltm_1_3_0::chromatix_ltm13Type* const release = nullptr);

    ltm_1_4_0::chromatix_ltm14Type* GetModule_ltm14_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ltm_1_4_0::chromatix_ltm14Type* const release = nullptr);

    ltm_1_5_0::chromatix_ltm15Type* GetModule_ltm15_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ltm_1_5_0::chromatix_ltm15Type* const release = nullptr);

    ltm_1_6_0::chromatix_ltm16Type* GetModule_ltm16_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        ltm_1_6_0::chromatix_ltm16Type* const release = nullptr);

    mf_1_0_0::chromatix_mf10Type* GetModule_mf10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        mf_1_0_0::chromatix_mf10Type* const release = nullptr);

    mf_1_1_0::chromatix_mf11Type* GetModule_mf11_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        mf_1_1_0::chromatix_mf11Type* const release = nullptr);

    mfnr_2_0_0::chromatix_mfnr20Type* GetModule_mfnr20_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        mfnr_2_0_0::chromatix_mfnr20Type* const release = nullptr);

    nradj_1_0_0::chromatix_nradj10Type* GetModule_nradj10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        nradj_1_0_0::chromatix_nradj10Type* const release = nullptr);

    nrm_1_0_0::chromatix_nrm10Type* GetModule_nrm10_sw_l(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        nrm_1_0_0::chromatix_nrm10Type* const release = nullptr);

    nrm_1_0_0::chromatix_nrm10Type* GetModule_nrm10_sw_m(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        nrm_1_0_0::chromatix_nrm10Type* const release = nullptr);

    nrm_1_0_0::chromatix_nrm10Type* GetModule_nrm10_sw_s(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        nrm_1_0_0::chromatix_nrm10Type* const release = nullptr);

    pdpc_1_1_0::chromatix_pdpc11Type* GetModule_pdpc11_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        pdpc_1_1_0::chromatix_pdpc11Type* const release = nullptr);

    pdpc_2_0_0::chromatix_pdpc20Type* GetModule_pdpc20_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        pdpc_2_0_0::chromatix_pdpc20Type* const release = nullptr);

    pdpc_3_0_0::chromatix_pdpc30Type* GetModule_pdpc30_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        pdpc_3_0_0::chromatix_pdpc30Type* const release = nullptr);

    pdpc_3_0_0::chromatix_pdpc30Type* GetModule_pdpc30_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        pdpc_3_0_0::chromatix_pdpc30Type* const release = nullptr);

    pedestal_1_3_0::chromatix_pedestal13Type* GetModule_pedestal13_bps(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        pedestal_1_3_0::chromatix_pedestal13Type* const release = nullptr);

    pedestal_1_3_0::chromatix_pedestal13Type* GetModule_pedestal13_ife(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        pedestal_1_3_0::chromatix_pedestal13Type* const release = nullptr);

    preference_1_0_0::chromatix_preference10Type* GetModule_preference10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        preference_1_0_0::chromatix_preference10Type* const release = nullptr);

    qll_1_0_0::chromatix_qll10Type* GetModule_qll10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        qll_1_0_0::chromatix_qll10Type* const release = nullptr);

    sat_1_0_0::chromatix_sat10Type* GetModule_sat10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        sat_1_0_0::chromatix_sat10Type* const release = nullptr);

    sce_1_1_0::chromatix_sce11Type* GetModule_sce11_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        sce_1_1_0::chromatix_sce11Type* const release = nullptr);

    sce_1_1_0::chromatix_sce11Type* GetModule_sce11_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        sce_1_1_0::chromatix_sce11Type* const release = nullptr);

    shdr_1_0_0::shdr10Type* GetModule_shdr10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        shdr_1_0_0::shdr10Type* const release = nullptr);

    shdr_1_1_0::chromatix_shdr11Type* GetModule_shdr11_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        shdr_1_1_0::chromatix_shdr11Type* const release = nullptr);

    shdr_3_0_0::shdr30Type* GetModule_shdr30_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        shdr_3_0_0::shdr30Type* const release = nullptr);

    swmctf_1_0_0::chromatix_swmctf10Type* GetModule_swmctf10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        swmctf_1_0_0::chromatix_swmctf10Type* const release = nullptr);

    swmctf_2_0_0::chromatix_swmctf20Type* GetModule_swmctf20_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        swmctf_2_0_0::chromatix_swmctf20Type* const release = nullptr);

    swmfnr_2_0_0::chromatix_swmfnr20Type* GetModule_swmfnr20_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        swmfnr_2_0_0::chromatix_swmfnr20Type* const release = nullptr);

    swmfnr_3_0_0::chromatix_swmfnr30Type* GetModule_swmfnr30_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        swmfnr_3_0_0::chromatix_swmfnr30Type* const release = nullptr);

    tdl_1_0_0::chromatix_tdl10Type* GetModule_tdl10_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        tdl_1_0_0::chromatix_tdl10Type* const release = nullptr);

    tf_1_0_0::chromatix_tf10Type* GetModule_tf10_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        tf_1_0_0::chromatix_tf10Type* const release = nullptr);

    tf_2_0_0::chromatix_tf20Type* GetModule_tf20_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        tf_2_0_0::chromatix_tf20Type* const release = nullptr);

    tintless_2_0_0::chromatix_tintless20Type* GetModule_tintless20_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        tintless_2_0_0::chromatix_tintless20Type* const release = nullptr);

    tmc_1_0_0::chromatix_tmc10Type* GetModule_tmc10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        tmc_1_0_0::chromatix_tmc10Type* const release = nullptr);

    tmc_1_1_0::chromatix_tmc11Type* GetModule_tmc11_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        tmc_1_1_0::chromatix_tmc11Type* const release = nullptr);

    tmc_1_2_0::chromatix_tmc12Type* GetModule_tmc12_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        tmc_1_2_0::chromatix_tmc12Type* const release = nullptr);

    tmc_1_3_0::chromatix_tmc13Type* GetModule_tmc13_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        tmc_1_3_0::chromatix_tmc13Type* const release = nullptr);

    upscale_2_0_0::chromatix_upscale20Type* GetModule_upscale20_ipe(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        upscale_2_0_0::chromatix_upscale20Type* const release = nullptr);

    video_1_0_0::chromatix_video10Type* GetModule_video10_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        video_1_0_0::chromatix_video10Type* const release = nullptr);

    video_1_1_0::chromatix_video11Type* GetModule_video11_sw(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        video_1_1_0::chromatix_video11Type* const release = nullptr);

    wnr_2_4_0::chromatix_wnr24Type* GetModule_wnr24_ope(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        wnr_2_4_0::chromatix_wnr24Type* const release = nullptr);

    camxt2tconfig::T2TCtrlType* GetModule_t2tconfigdata(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        camxt2tconfig::T2TCtrlType* const release = nullptr);

    aecArbitration::AECCoreArbitrationType* GetModule_Arbitration(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecArbitration::AECCoreArbitrationType* const release = nullptr);

    aecConvergence::AECCoreConvergenceType* GetModule_Convergence(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecConvergence::AECCoreConvergenceType* const release = nullptr);

    aecDepth::AECDepthType* GetModule_aecDepth(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecDepth::AECDepthType* const release = nullptr);

    aecExtension::AECCoreExtensionType* GetModule_Extension(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecExtension::AECCoreExtensionType* const release = nullptr);

    aecFace::AECFaceType* GetModule_Face(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecFace::AECFaceType* const release = nullptr);

    aecFlash::AECFlashType* GetModule_Flash(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecFlash::AECFlashType* const release = nullptr);

    aecGyro::AECGyroType* GetModule_aecGyro(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecGyro::AECGyroType* const release = nullptr);

    aecIr::AECIRType* GetModule_aecIr(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecIr::AECIRType* const release = nullptr);

    aecMetering::AECCoreMeteringType* GetModule_Metering(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecMetering::AECCoreMeteringType* const release = nullptr);

    aecParamExtension::ParamExtensionType* GetModule_AECParamExtension(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecParamExtension::ParamExtensionType* const release = nullptr);

    aecSensorConfig::AECSensorHDRConfig* GetModule_SensorHDRDefaultConfig(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecSensorConfig::AECSensorHDRConfig* const release = nullptr);

    aecShdr::AECShdrType* GetModule_aecShdr(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecShdr::AECShdrType* const release = nullptr);

    aecSkip::AECSkipCtrlType* GetModule_aecSkipCtrl(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecSkip::AECSkipCtrlType* const release = nullptr);

    aecSnapshotCtrl::AECSnapshotCtrlType* GetModule_SnapshotControl(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecSnapshotCtrl::AECSnapshotCtrlType* const release = nullptr);

    aecStartUp::AECStartUpType* GetModule_StartUp(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecStartUp::AECStartUpType* const release = nullptr);

    aecStatsConfig::AECStatsConfig* GetModule_StatsDefaultConfig(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecStatsConfig::AECStatsConfig* const release = nullptr);

    aecSync::AECMultiCamType* GetModule_aecMultiCamSync(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecSync::AECMultiCamType* const release = nullptr);

    aecTouch::AECTouchType* GetModule_Touch(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecTouch::AECTouchType* const release = nullptr);

    aecTracker::AECTrackerType* GetModule_Tracker(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecTracker::AECTrackerType* const release = nullptr);

    aecx1dvectorprocessor::AECX1DVectorProcessorType* GetModule_aecx1dvectorprocessor(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecx1dvectorprocessor::AECX1DVectorProcessorType* const release = nullptr);

    aecxadvancedinfo::AECXAdvancedInfoType* GetModule_aecxadvancedinfo(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxadvancedinfo::AECXAdvancedInfoType* const release = nullptr);

    aecxarbitration::AECXArbitrationType* GetModule_aecxarbitration(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxarbitration::AECXArbitrationType* const release = nullptr);

    aecxconvergence::AECXConvergenceType* GetModule_aecxconvergence(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxconvergence::AECXConvergenceType* const release = nullptr);

    aecxcorestatsconfig::AECXCoreStatsConfigType* GetModule_aecxcorestatsconfig(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxcorestatsconfig::AECXCoreStatsConfigType* const release = nullptr);

    aecxdb1dmeterweight::AECXDB1DMeterWeightType* GetModule_aecxdb1dmeterweight(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdb1dmeterweight::AECXDB1DMeterWeightType* const release = nullptr);

    aecxdb2dmeterweight::AECXDB2DMeterWeightType* GetModule_aecxdb2dmeterweight(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdb2dmeterweight::AECXDB2DMeterWeightType* const release = nullptr);

    aecxdbactiveanalyzers::AECXDBActiveAnalyzersType* GetModule_aecxdbactiveanalyzers(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbactiveanalyzers::AECXDBActiveAnalyzersType* const release = nullptr);

    aecxdbactivecalculators::AECXDBActiveCalculatorsType* GetModule_aecxdbactivecalculators(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbactivecalculators::AECXDBActiveCalculatorsType* const release = nullptr);

    aecxdbarbitrationlut::AECXDBArbitrationLUTType* GetModule_aecxdbarbitrationlut(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbarbitrationlut::AECXDBArbitrationLUTType* const release = nullptr);

    aecxdbarbitrationorder::AECXDBArbitrationOrderType* GetModule_aecxdbarbitrationorder(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbarbitrationorder::AECXDBArbitrationOrderType* const release = nullptr);

    aecxdbarbitrationrange::AECXDBArbitrationRangeType* GetModule_aecxdbarbitrationrange(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbarbitrationrange::AECXDBArbitrationRangeType* const release = nullptr);

    aecxdbarbitrationtable::AECXDBArbitrationTableType* GetModule_aecxdbarbitrationtable(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbarbitrationtable::AECXDBArbitrationTableType* const release = nullptr);

    aecxdbconvactivescd::AECXDBConvActiveSCDType* GetModule_aecxdbconvactivescd(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbconvactivescd::AECXDBConvActiveSCDType* const release = nullptr);

    aecxdbconvbase::AECXDBConvBaseType* GetModule_aecxdbconvbase(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbconvbase::AECXDBConvBaseType* const release = nullptr);

    aecxdbconvsettle::AECXDBConvSettleType* GetModule_aecxdbconvsettle(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbconvsettle::AECXDBConvSettleType* const release = nullptr);

    aecxdbconvstretch::AECXDBConvStretchType* GetModule_aecxdbconvstretch(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbconvstretch::AECXDBConvStretchType* const release = nullptr);

    aecxdbroi::AECXDBROIType* GetModule_aecxdbroi(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbroi::AECXDBROIType* const release = nullptr);

    aecxdbsceneanalyzer::AECXDBSceneAnalyzerType* GetModule_aecxdbsceneanalyzer(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbsceneanalyzer::AECXDBSceneAnalyzerType* const release = nullptr);

    aecxdbsnapshot::AECXDBSnapshotType* GetModule_aecxdbsnapshot(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbsnapshot::AECXDBSnapshotType* const release = nullptr);

    aecxdbstatscalculator::AECXDBStatsCalculatorType* GetModule_aecxdbstatscalculator(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxdbstatscalculator::AECXDBStatsCalculatorType* const release = nullptr);

    aecxev::AECXEVType* GetModule_aecxev(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxev::AECXEVType* const release = nullptr);

    aecxextension::AECXExtensionType* GetModule_aecxextension(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxextension::AECXExtensionType* const release = nullptr);

    aecxexternalmapprocessor::AECXExternalMapProcessorType* GetModule_aecxexternalmapprocessor(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxexternalmapprocessor::AECXExternalMapProcessorType* const release = nullptr);

    aecxface::AECXFaceType* GetModule_aecxface(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxface::AECXFaceType* const release = nullptr);

    aecxflash::AECXFlashType* GetModule_aecxflash(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxflash::AECXFlashType* const release = nullptr);

    aecxflashsnapshot::AECXFlashSnapshotType* GetModule_aecxflashsnapshot(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxflashsnapshot::AECXFlashSnapshotType* const release = nullptr);

    aecxhdrsensor::AECXHDRSensorType* GetModule_aecxhdrsensor(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxhdrsensor::AECXHDRSensorType* const release = nullptr);

    aecxhwstatsconfig::AECXHWStatsConfigType* GetModule_aecxhwstatsconfig(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxhwstatsconfig::AECXHWStatsConfigType* const release = nullptr);

    aecxmetering::AECXMeteringType* GetModule_aecxmetering(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxmetering::AECXMeteringType* const release = nullptr);

    aecxmeteringsaalgorithm::AECXMeteringSAAlgorithmType* GetModule_aecxmeteringsaalgorithm(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxmeteringsaalgorithm::AECXMeteringSAAlgorithmType* const release = nullptr);

    aecxmeteringsceneanalyzer::AECXMeteringSceneAnalyzerType* GetModule_aecxmeteringsceneanalyzer(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxmeteringsceneanalyzer::AECXMeteringSceneAnalyzerType* const release = nullptr);

    aecxmeteringstatscalculator::AECXMeteringStatsCalculatorType* GetModule_aecxmeteringstatscalculator(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxmeteringstatscalculator::AECXMeteringStatsCalculatorType* const release = nullptr);

    aecxmtrtablegen::AECXMtrTableGenType* GetModule_aecxmtrtablegen(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxmtrtablegen::AECXMtrTableGenType* const release = nullptr);

    aecxparamextension::AECXParamExtensionType* GetModule_aecxparamextension(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxparamextension::AECXParamExtensionType* const release = nullptr);

    aecxscenechangedetector::AECXSceneChangeDetectorType* GetModule_aecxscenechangedetector(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxscenechangedetector::AECXSceneChangeDetectorType* const release = nullptr);

    aecxskipcontrol::AECXSkipControlType* GetModule_aecxskipcontrol(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxskipcontrol::AECXSkipControlType* const release = nullptr);

    aecxspectralsensor::AECXSpectralSensorType* GetModule_aecxspectralsensor(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxspectralsensor::AECXSpectralSensorType* const release = nullptr);

    aecxstartup::AECXStartUpType* GetModule_aecxstartup(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxstartup::AECXStartUpType* const release = nullptr);

    aecxsync::AECXSyncType* GetModule_aecxsync(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxsync::AECXSyncType* const release = nullptr);

    aecxtouch::AECXTouchType* GetModule_aecxtouch(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aecxtouch::AECXTouchType* const release = nullptr);

    afalgotuningelements::chromatixAFAlgoTuningType* GetModule_chromatixAFAlgoTuning(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afalgotuningelements::chromatixAFAlgoTuningType* const release = nullptr);

    afbafelements::chromatixBAFType* GetModule_chromatixBAF(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afbafelements::chromatixBAFType* const release = nullptr);

    afcontrastafelements::chromatixContrastAFType* GetModule_chromatixContrastAF(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afcontrastafelements::chromatixContrastAFType* const release = nullptr);

    afdciafelements::chromatixDCIAFType* GetModule_chromatixDCIAF(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afdciafelements::chromatixDCIAFType* const release = nullptr);

    afdepthafelements::chromatixDepthAFType* GetModule_chromatixDepthAF(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afdepthafelements::chromatixDepthAFType* const release = nullptr);

    afextensionelements::chromatixAFExtensionType* GetModule_chromatixAFExtension(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afextensionelements::chromatixAFExtensionType* const release = nullptr);

    afhafelements::chromatixHAFType* GetModule_chromatixHAF(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afhafelements::chromatixHAFType* const release = nullptr);

    afmonitorelements::chromatixAFMONITORType* GetModule_chromatixAFMONITOR(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afmonitorelements::chromatixAFMONITORType* const release = nullptr);

    afpdafelements::chromatixPDAFType* GetModule_chromatixPDAF(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afpdafelements::chromatixPDAFType* const release = nullptr);

    afpdlibelements::chromatixPDLibType* GetModule_chromatixPDLib(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afpdlibelements::chromatixPDLibType* const release = nullptr);

    afsoftwarestatelements::chromatixAFTuningSoftwareStatisticsType* GetModule_chromatixAFTuningSoftwareStatistics(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afsoftwarestatelements::chromatixAFTuningSoftwareStatisticsType* const release = nullptr);

    aftofelements::chromatixTOFType* GetModule_chromatixTOF(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        aftofelements::chromatixTOFType* const release = nullptr);

    afdTuning::chromatix_auto_flicker_detection_data_type* GetModule_ChromatixAFDTuningData(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        afdTuning::chromatix_auto_flicker_detection_data_type* const release = nullptr);

    asdTuning::ChromatixASDTuningType* GetModule_ChromatixASDTuningData(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        asdTuning::ChromatixASDTuningType* const release = nullptr);

    modawbbestshotv1::chromatixAWBBestShotV1Type* GetModule_bestShotV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modawbbestshotv1::chromatixAWBBestShotV1Type* const release = nullptr);

    modawbfaceassistv1::chromatixAWBFaceAssistV1Type* GetModule_faceAssistV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modawbfaceassistv1::chromatixAWBFaceAssistV1Type* const release = nullptr);

    modawbfaceprocessorv1::chromatixAWBFaceROIProcessorV1Type* GetModule_faceROIProcessorV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modawbfaceprocessorv1::chromatixAWBFaceROIProcessorV1Type* const release = nullptr);

    modawbinitv1::chromatixAWBInitV1Type* GetModule_initDataV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modawbinitv1::chromatixAWBInitV1Type* const release = nullptr);

    modbgstatsconfigv1::chromatixBGStatsConfigV1Type* GetModule_bgStatsConfigV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modbgstatsconfigv1::chromatixBGStatsConfigV1Type* const release = nullptr);

    modcustrefptv1::chromatixCustRefPtV1type* GetModule_custRefPtV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modcustrefptv1::chromatixCustRefPtV1type* const release = nullptr);

    moddav1::chromatixDAV1Type* GetModule_DAV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        moddav1::chromatixDAV1Type* const release = nullptr);

    moddepth16v1::chromatixDepth16V1Type* GetModule_SFDepthMap16V1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        moddepth16v1::chromatixDepth16V1Type* const release = nullptr);

    moddistwvv1::chromatixDistWVV1Type* GetModule_SFDistWVV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        moddistwvv1::chromatixDistWVV1Type* const release = nullptr);

    moddsfv1::chromatixDSFV1Type* GetModule_DSFV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        moddsfv1::chromatixDSFV1Type* const release = nullptr);

    moddualcamsyncv1::chromatixdualcamSyncV1Type* GetModule_dualcamSyncV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        moddualcamsyncv1::chromatixdualcamSyncV1Type* const release = nullptr);

    modflashdecv1::chromatixFlashDecV1Type* GetModule_flashDecV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modflashdecv1::chromatixFlashDecV1Type* const release = nullptr);

    modflashrefptv1::chromatixFlashRefPtV1Type* GetModule_flashRefPtV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modflashrefptv1::chromatixFlashRefPtV1Type* const release = nullptr);

    modflashwv1::chromatixFlashWV1Type* GetModule_flashWV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modflashwv1::chromatixFlashWV1Type* const release = nullptr);

    modgeneralwvv1::chromatixGeneralWVV1Type* GetModule_SFGeneralWVV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modgeneralwvv1::chromatixGeneralWVV1Type* const release = nullptr);

    modhistctrlv1::chromatixHistCtrlV1Type* GetModule_histCtrlV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modhistctrlv1::chromatixHistCtrlV1Type* const release = nullptr);

    modilluwvv1::chromatixIlluWVV1Type* GetModule_SFIlluWVV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modilluwvv1::chromatixIlluWVV1Type* const release = nullptr);

    modmlczv1::chromatixMLCZV1Type* GetModule_SFMLCZV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modmlczv1::chromatixMLCZV1Type* const release = nullptr);

    modmlczv2::chromatixMLCZV2Type* GetModule_SFMLCZV2(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modmlczv2::chromatixMLCZV2Type* const release = nullptr);

    modmlczv3::chromatixMLCZV3Type* GetModule_SFMLCZV3(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modmlczv3::chromatixMLCZV3Type* const release = nullptr);

    modmwbv1::chromatixMWBV1Type* GetModule_MWBGainV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modmwbv1::chromatixMWBV1Type* const release = nullptr);

    modparamextv1::chromatixExtensionParamV1Type* GetModule_AWBExtensionParam(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modparamextv1::chromatixExtensionParamV1Type* const release = nullptr);

    modrefptv1::chromatixRefPtV1Type* GetModule_refPtV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modrefptv1::chromatixRefPtV1Type* const release = nullptr);

    modsaagwv1::chromatixSAAGWV1Type* GetModule_SAAGWV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modsaagwv1::chromatixSAAGWV1Type* const release = nullptr);

    modsaagwv2::chromatixSAAGWV2Type* GetModule_SAAGWV2(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modsaagwv2::chromatixSAAGWV2Type* const release = nullptr);

    modsagenv1::chromatixSAGenV1ArrayType* GetModule_SAGenV1DataArray(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modsagenv1::chromatixSAGenV1ArrayType* const release = nullptr);

    modsagenv2::chromatixSAGenV2ArrayType* GetModule_SAGenV2DataArray(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modsagenv2::chromatixSAGenV2ArrayType* const release = nullptr);

    modsaspatialgenv1::chromatixSASpatialGenV1ArrayType* GetModule_SASpatialGenV1DataArray(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modsaspatialgenv1::chromatixSASpatialGenV1ArrayType* const release = nullptr);

    modscconvv1::chromatixSCConvV1Type* GetModule_awbSceneChangeConvergeV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modscconvv1::chromatixSCConvV1Type* const release = nullptr);

    modscconvv1::chromatixSCConvV1Type* GetModule_scConv(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modscconvv1::chromatixSCConvV1Type* const release = nullptr);

    modsensorcalv1::chromatixSenorCalV1Type* GetModule_sensorCalV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modsensorcalv1::chromatixSenorCalV1Type* const release = nullptr);

    modsfddv1::chromatixSFDDV1Type* GetModule_SFDDV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modsfddv1::chromatixSFDDV1Type* const release = nullptr);

    modsfstatscrv1::chromatixSFStatScrV1Type* GetModule_SFStatScrV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modsfstatscrv1::chromatixSFStatScrV1Type* const release = nullptr);

    modsfsubsmpv1::chromatixSFSubSmpV1Type* GetModule_SFSubSmpV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modsfsubsmpv1::chromatixSFSubSmpV1Type* const release = nullptr);

    modspecilluv1::chromatixspecilluv1type* GetModule_ledTorchV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modspecilluv1::chromatixspecilluv1type* const release = nullptr);

    modspecilluv1::chromatixspecilluv1type* GetModule_lcdFlashV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modspecilluv1::chromatixspecilluv1type* const release = nullptr);

    modspectralsensorinfoassistawbv1::chromatixSpectralSensorInfoAssistV1Type* GetModule_SFSpectralSensorAssistV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modspectralsensorinfoassistawbv1::chromatixSpectralSensorInfoAssistV1Type* const release = nullptr);

    modstatdistv1::chromatixStatDistV1Type* GetModule_SFStatDistV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modstatdistv1::chromatixStatDistV1Type* const release = nullptr);

    modtmpconvv1::chromatixTmpConvV1Type* GetModule_tmpConvV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modtmpconvv1::chromatixTmpConvV1Type* const release = nullptr);

    modtrigladjv1::chromatixTriglAdjV1Type* GetModule_triglGAV1(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        modtrigladjv1::chromatixTriglAdjV1Type* const release = nullptr);

    rerTuning::ChromatixRedEyeReduction* GetModule_ChromatixRERTuningData(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        rerTuning::ChromatixRedEyeReduction* const release = nullptr);

    statsnn::chromatixStatsNNType* GetModule_chromatixStatsNN(
        const TuningMode* const modeBranch,
        UINT32 const      modeCount,
        statsnn::chromatixStatsNNType* const release = nullptr);

protected:
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// GetDefaultModule
    ///
    /// @brief  Returns the default module for the given type
    ///
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual DefaultModule* GetDefaultModule(
        char* const type)
    {
        ParameterMutexLock rlock {ReloadMutex, true, true}; // Shared LOCK

        if (DefaultModuleMap.find(type) != DefaultModuleMap.end())
        {
            return DefaultModuleMap[type];
        }
        else
        {
            PARAMETER_LOG_ERROR(this, "Failed to find module %s in DefaultModuleMap\n", type);
            return nullptr;
        }
    }

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// SaveAndClearModules
    ///
    /// @brief  Saves all current modules to the m_replaced list, and clears the module list
    ///
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual void SaveAndClearModules();
};

#endif
