////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019-2026 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// @file  g_chxtransitionmetadata.h
// @brief CHX Transition Metadata Definitions
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef TRANSITION_META_DEFS_H
#define TRANSITION_META_DEFS_H

#include <unordered_map>
#include <string>

#define INT int
#define CHAR char

// NOWHILE ENTIRE FILE
// These definitions will collide with the ones in camera_metadata.h. Must match
// constexpr INT TYPE_INT32    =  1;
// constexpr INT TYPE_FLOAT    =  2;
// constexpr INT TYPE_2DPOINTI =  3;
// constexpr INT TYPE_2DPOINTF =  4;
// constexpr INT TYPE_3DPOINTI =  5;
// constexpr INT TYPE_3DPOINTF =  6;
// constexpr INT TYPE_RECTI    =  7;
// constexpr INT TYPE_RECTF    =  8;

// @brief table of transiton metadata

// Meta info for qcs615

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_qcs615_qcs615 =
{

};;
// Meta info for qcs615_tpg

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_qcs615_qcs615_tpg =
{

};;
// Meta info for lemans_tpg

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lemans_lemans_tpg =
{

};;
// Meta info for lemans

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lemans_lemans =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT}
};;
// Meta info for lanai_mcx_insensorzoom

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_mcx_insensorzoom =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_supersetdc

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_supersetdc =
{

};;
// Meta info for lanai_dc

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_dc =
{

};;
// Meta info for lanai_partial_cam

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_partial_cam =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32},
    { "InsensorZoomMode", ChiTransitionMetadata::TYPE_INT32},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QHDRMode", ChiTransitionMetadata::TYPE_INT32},
    { "SnapshotOnlyIZoomMode", ChiTransitionMetadata::TYPE_INT32},
    { "VSRMode", ChiTransitionMetadata::TYPE_INT32},
    { "SHDRAutoExposure", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_mcx_dualzone

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_mcx_dualzone =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT}
};;
// Meta info for lanai_quad_two_aux_in_dualzone_low_res

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_quad_two_aux_in_dualzone_low_res =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_quad_two_aux_in_dualzone

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_quad_two_aux_in_dualzone =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_mcx_uw_as_primary

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_mcx_uw_as_primary =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_legacymc

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_legacymc =
{

};;
// Meta info for lanai_one_aux_per_transition_low_res

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_one_aux_per_transition_low_res =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32},
    { "InsensorZoomMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_two_aux_per_transition_sans_dualzone_low_res

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_two_aux_per_transition_sans_dualzone_low_res =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32},
    { "InsensorZoomMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_two_aux_per_transition_sans_dualzone

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_two_aux_per_transition_sans_dualzone =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32},
    { "InsensorZoomMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_one_aux_per_transition

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_one_aux_per_transition =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32},
    { "InsensorZoomMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32},
    { "InsensorZoomMode", ChiTransitionMetadata::TYPE_INT32},
    { "QHDRMode", ChiTransitionMetadata::TYPE_INT32},
    { "SnapshotOnlyIZoomMode", ChiTransitionMetadata::TYPE_INT32},
    { "VSRMode", ChiTransitionMetadata::TYPE_INT32},
    { "SHDRAutoExposure", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_single_cam_cts

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_single_cam_cts =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_tpg

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_tpg =
{

};;
// Meta info for lanai_depth_expose

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_depth_expose =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32},
    { "InsensorZoomMode", ChiTransitionMetadata::TYPE_INT32},
    { "QHDRMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_gsi

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_gsi =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32},
    { "InsensorZoomMode", ChiTransitionMetadata::TYPE_INT32},
    { "QHDRMode", ChiTransitionMetadata::TYPE_INT32},
    { "SnapshotOnlyIZoomMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_quad

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_quad =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_tpg_triple

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_tpg_triple =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT}
};;
// Meta info for lanai_visible_physical_cams

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_visible_physical_cams =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT},
    { "BokehMode", ChiTransitionMetadata::TYPE_INT32},
    { "QSAT", ChiTransitionMetadata::TYPE_INT32},
    { "InsensorZoomMode", ChiTransitionMetadata::TYPE_INT32},
    { "QHDRMode", ChiTransitionMetadata::TYPE_INT32}
};;
// Meta info for lanai_tpg_dualzone

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_lanai_lanai_tpg_dualzone =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT},
    { "luxIndex", ChiTransitionMetadata::TYPE_FLOAT}
};;
// Meta info for monaco

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_monaco_monaco =
{
    { "zoomRatio", ChiTransitionMetadata::TYPE_FLOAT}
};;
// Meta info for monaco_tpg

static const std::unordered_map<std::string, INT> g_TransitionMetaDefs_monaco_monaco_tpg =
{

};

using TransitionMetaDefs_T = std::vector<const std::unordered_map<std::string, INT>*>;

const TransitionMetaDefs_T g_TransitionMetaDefs_qcs615 = { &g_TransitionMetaDefs_qcs615_qcs615, &g_TransitionMetaDefs_qcs615_qcs615_tpg };
const TransitionMetaDefs_T g_TransitionMetaDefs_lemans = { &g_TransitionMetaDefs_lemans_lemans, &g_TransitionMetaDefs_lemans_lemans_tpg };
const TransitionMetaDefs_T g_TransitionMetaDefs_lanai = { &g_TransitionMetaDefs_lanai_lanai, &g_TransitionMetaDefs_lanai_lanai_dc, &g_TransitionMetaDefs_lanai_lanai_depth_expose, &g_TransitionMetaDefs_lanai_lanai_gsi, &g_TransitionMetaDefs_lanai_lanai_legacymc, &g_TransitionMetaDefs_lanai_lanai_mcx_dualzone, &g_TransitionMetaDefs_lanai_lanai_mcx_insensorzoom, &g_TransitionMetaDefs_lanai_lanai_mcx_uw_as_primary, &g_TransitionMetaDefs_lanai_lanai_one_aux_per_transition, &g_TransitionMetaDefs_lanai_lanai_one_aux_per_transition_low_res, &g_TransitionMetaDefs_lanai_lanai_partial_cam, &g_TransitionMetaDefs_lanai_lanai_quad, &g_TransitionMetaDefs_lanai_lanai_quad_two_aux_in_dualzone, &g_TransitionMetaDefs_lanai_lanai_quad_two_aux_in_dualzone_low_res, &g_TransitionMetaDefs_lanai_lanai_single_cam_cts, &g_TransitionMetaDefs_lanai_lanai_supersetdc, &g_TransitionMetaDefs_lanai_lanai_tpg, &g_TransitionMetaDefs_lanai_lanai_tpg_dualzone, &g_TransitionMetaDefs_lanai_lanai_tpg_triple, &g_TransitionMetaDefs_lanai_lanai_two_aux_per_transition_sans_dualzone, &g_TransitionMetaDefs_lanai_lanai_two_aux_per_transition_sans_dualzone_low_res, &g_TransitionMetaDefs_lanai_lanai_visible_physical_cams };
const TransitionMetaDefs_T g_TransitionMetaDefs_monaco = { &g_TransitionMetaDefs_monaco_monaco, &g_TransitionMetaDefs_monaco_monaco_tpg };

std::vector<const TransitionMetaDefs_T*> g_TransitionMetaDefs = { &g_TransitionMetaDefs_qcs615, &g_TransitionMetaDefs_lemans, &g_TransitionMetaDefs_lanai, &g_TransitionMetaDefs_monaco };
#endif // TRANSITION_META_DEFS_H
