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

// NOWHINE ENTIRE FILE
/// @file g_chicommondefs.h
/// @brief chicommondefs type definitions [Warning: This file is autogenerated. Do not make local edits to this file!]
///           Make edits to chifeature2types.xml
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef G_CHICOMMONDEFS_H
#define G_CHICOMMONDEFS_H

#include <array>

typedef enum ChiDataSpace : UINT32
{
    DataspaceUnknown            = 0x0,
    DataspaceArbitrary          = 0x1,
    DataspaceStandardShift      = 0x10,
    DataspaceTransferShift      = 0x16,
    DataspaceRangeShift         = 0x1B,
    DataspaceStandardBT601_625  = 0x20000,
    DataspaceStandard_BT709     = 0x10000,
    DataspaceTransferSmpte170M  = 0xC00000,
    DataspaceTransferSt2084     = 0x1C00000,
    DataspaceTransferHLG        = 0x2000000,
    DataspaceRangeFull          = 0x8000000,
    DataspaceJFIF               = 0x101,
    DataspaceV0JFIF             = 0x8C20000,
    DataspaceBT601_625          = 0x102,
    DataspaceBT601_525          = 0x103,
    DataspaceBT709              = 0x104,
    DataspaceSRGBLinear         = 0x200,
    DataspaceSRGB               = 0x201,
    DataspaceDepth              = 0x1000,
    DataspaceJPEGAPPSegments    = 0x1003,
    DataspaceHEIF               = 0x1004,
    DataspaceStandardBT2020     = 0x60000,
    DataspaceStandardBT2020_PQ  = 0x11C60000,
    DataspaceStandardBT2020_HLG = 0x12060000,
    DataspaceDisplayP3          = 0x88A0000
} CHIDATASPACE;

/// @brief ChiDataSpace type enum string associations
static constexpr UINT32 ChiDataSpaceAssociationsSize = 25;
static constexpr std::array<std::pair<const CHAR*, UINT32>, ChiDataSpaceAssociationsSize> ChiDataSpaceAssociations =
{{
    { "DataspaceUnknown"             , 0x0        },
    { "DataspaceArbitrary"           , 0x1        },
    { "DataspaceStandardShift"       , 0x10       },
    { "DataspaceTransferShift"       , 0x16       },
    { "DataspaceRangeShift"          , 0x1B       },
    { "DataspaceStandardBT601_625"   , 0x20000    },
    { "DataspaceStandard_BT709"      , 0x10000    },
    { "DataspaceTransferSmpte170M"   , 0xC00000   },
    { "DataspaceTransferSt2084"      , 0x1C00000  },
    { "DataspaceTransferHLG"         , 0x2000000  },
    { "DataspaceRangeFull"           , 0x8000000  },
    { "DataspaceJFIF"                , 0x101      },
    { "DataspaceV0JFIF"              , 0x8C20000  },
    { "DataspaceBT601_625"           , 0x102      },
    { "DataspaceBT601_525"           , 0x103      },
    { "DataspaceBT709"               , 0x104      },
    { "DataspaceSRGBLinear"          , 0x200      },
    { "DataspaceSRGB"                , 0x201      },
    { "DataspaceDepth"               , 0x1000     },
    { "DataspaceJPEGAPPSegments"     , 0x1003     },
    { "DataspaceHEIF"                , 0x1004     },
    { "DataspaceStandardBT2020"      , 0x60000    },
    { "DataspaceStandardBT2020_PQ"   , 0x11C60000 },
    { "DataspaceStandardBT2020_HLG"  , 0x12060000 },
    { "DataspaceDisplayP3"           , 0x88A0000  }
}};

typedef enum ChiStreamFormat : INT32
{
    ChiStreamFormatYCbCr420_SP    = 0x109,
    ChiStreamFormatYCrCb420_SP    = 0x113,
    ChiStreamFormatRaw16          = 0x20,
    ChiStreamFormatBlob           = 0x21,
    ChiStreamFormatImplDefined    = 0x22,
    ChiStreamFormatYCbCr420_888   = 0x23,
    ChiStreamFormatRawOpaque      = 0x24,
    ChiStreamFormatRaw10          = 0x25,
    ChiStreamFormatRaw12          = 0x26,
    ChiStreamFormatRaw64          = 0x27,
    ChiStreamFormatUBWCNV124R     = 0x28,
    ChiStreamFormatNV12Encodeable = 0x102,
    ChiStreamFormatNV12HEIF       = 0x116,
    ChiStreamFormatNV12YUVFLEX    = 0x125,
    ChiStreamFormatNV12UBWCFLEX   = 0x126,
    ChiStreamFormatNV12UBWCFLEX2  = 0x128,
    ChiStreamFormatNV12UBWCFLEX4  = 0x129,
    ChiStreamFormatNV12UBWCFLEX8  = 0x130,
    ChiStreamFormatY8             = 0x20203859,
    ChiStreamFormatY16            = 0x20363159,
    ChiStreamFormatP010           = 0x36,
    ChiStreamFormatP010Video      = 0x7FA30C0A,
    ChiStreamFormatUBWCTP10       = 0x7FA30C09,
    ChiStreamFormatUBWCP010       = 0x124,
    ChiStreamFormatUBWCNV12       = 0x7FA30C06,
    ChiStreamFormatPD10           = 0x7FA30C08,
    ChiStreamFormatRaw8           = 0x123,
    ChiStreamFormatRGBA           = 0x16,
    ChiStreamFormatNV12Venus      = 0x7FA30C04,
    ChiStreamBitHolder            = 0x7FFFFFFF,
    ChiStreamFormatRGB888         = 0x3
} CHISTREAMFORMAT;

/// @brief ChiStreamFormat type enum string associations
static constexpr UINT32 ChiStreamFormatAssociationsSize = 31;
static constexpr std::array<std::pair<const CHAR*, UINT32>, ChiStreamFormatAssociationsSize> ChiStreamFormatAssociations =
{{
    { "ChiStreamFormatYCbCr420_SP"     , 0x109      },
    { "ChiStreamFormatYCrCb420_SP"     , 0x113      },
    { "ChiStreamFormatRaw16"           , 0x20       },
    { "ChiStreamFormatBlob"            , 0x21       },
    { "ChiStreamFormatImplDefined"     , 0x22       },
    { "ChiStreamFormatYCbCr420_888"    , 0x23       },
    { "ChiStreamFormatRawOpaque"       , 0x24       },
    { "ChiStreamFormatRaw10"           , 0x25       },
    { "ChiStreamFormatRaw12"           , 0x26       },
    { "ChiStreamFormatRaw64"           , 0x27       },
    { "ChiStreamFormatUBWCNV124R"      , 0x28       },
    { "ChiStreamFormatNV12Encodeable"  , 0x102      },
    { "ChiStreamFormatNV12HEIF"        , 0x116      },
    { "ChiStreamFormatNV12YUVFLEX"     , 0x125      },
    { "ChiStreamFormatNV12UBWCFLEX"    , 0x126      },
    { "ChiStreamFormatNV12UBWCFLEX2"   , 0x128      },
    { "ChiStreamFormatNV12UBWCFLEX4"   , 0x129      },
    { "ChiStreamFormatNV12UBWCFLEX8"   , 0x130      },
    { "ChiStreamFormatY8"              , 0x20203859 },
    { "ChiStreamFormatY16"             , 0x20363159 },
    { "ChiStreamFormatP010"            , 0x36       },
    { "ChiStreamFormatP010Video"       , 0x7FA30C0A },
    { "ChiStreamFormatUBWCTP10"        , 0x7FA30C09 },
    { "ChiStreamFormatUBWCP010"        , 0x124      },
    { "ChiStreamFormatUBWCNV12"        , 0x7FA30C06 },
    { "ChiStreamFormatPD10"            , 0x7FA30C08 },
    { "ChiStreamFormatRaw8"            , 0x123      },
    { "ChiStreamFormatRGBA"            , 0x16       },
    { "ChiStreamFormatNV12Venus"       , 0x7FA30C04 },
    { "ChiStreamBitHolder"             , 0x7FFFFFFF },
    { "ChiStreamFormatRGB888"          , 0x3        }
}};

enum ChiStreamIntent
{
    ChiStreamIntentUnknown       = 0,
    ChiStreamIntentPreview       = 1,
    ChiStreamIntentStillCapture  = 2,
    ChiStreamIntentRecord        = 4,
    ChiStreamIntentVideoSnapshot = 8,
    ChiStreamIntentZsl           = 16,
    ChiStreamIntentPostview      = 32,
    ChiStreamIntentAnalysis      = 64,
    ChiStreamIntentImplDefined   = 128,
    ChiStreamIntentYuv           = 256,
    ChiStreamIntentRaw           = 512,
    ChiStreamIntentInput         = 1024,
    ChiStreamIntentHeic          = 2048,
    ChiStreamIntentDepth         = 4096,
    ChiStreamIntentHRRaw         = 8192,
    ChiStreamIntentYuvDsx        = 16384,
    ChiStreamIntentMax           = 14,
    ChiStreamIntentHeicSnapshot  = 2050,
    ChiStreamIntentRealtime      = 69,
    ChiStreamIntentOffline       = 58,
    ChiStreamIntentAny           = 0xFFFFFFFF
};

/// @brief ChiStreamIntent type enum string associations
static constexpr UINT32 ChiStreamIntentAssociationsSize = 21;
static constexpr std::array<std::pair<const CHAR*, UINT32>, ChiStreamIntentAssociationsSize> ChiStreamIntentAssociations =
{{
    { "ChiStreamIntentUnknown"        , 0          },
    { "ChiStreamIntentPreview"        , 1          },
    { "ChiStreamIntentStillCapture"   , 2          },
    { "ChiStreamIntentRecord"         , 4          },
    { "ChiStreamIntentVideoSnapshot"  , 8          },
    { "ChiStreamIntentZsl"            , 16         },
    { "ChiStreamIntentPostview"       , 32         },
    { "ChiStreamIntentAnalysis"       , 64         },
    { "ChiStreamIntentImplDefined"    , 128        },
    { "ChiStreamIntentYuv"            , 256        },
    { "ChiStreamIntentRaw"            , 512        },
    { "ChiStreamIntentInput"          , 1024       },
    { "ChiStreamIntentHeic"           , 2048       },
    { "ChiStreamIntentDepth"          , 4096       },
    { "ChiStreamIntentHRRaw"          , 8192       },
    { "ChiStreamIntentYuvDsx"         , 16384      },
    { "ChiStreamIntentMax"            , 14         },
    { "ChiStreamIntentHeicSnapshot"   , 2050       },
    { "ChiStreamIntentRealtime"       , 69         },
    { "ChiStreamIntentOffline"        , 58         },
    { "ChiStreamIntentAny"            , 0xFFFFFFFF }
}};


#endif // G_CHICOMMONDEFS_H
