#pragma warning disable 169 // Field 'x' is never used
#pragma warning disable 414 // Field 'x' is assigned but its value never used
#pragma warning disable 649 // Field 'x' is never assigned
#pragma warning disable IDE1006 // Naming Styles
using System.Runtime.InteropServices;
namespace RGB.NET.Devices.Corsair.Native;
// ReSharper disable once InconsistentNaming
///
/// iCUE-SDK: a union of all property data types
///
[StructLayout(LayoutKind.Explicit)]
internal struct _CorsairDataValue
{
#region Properties & Fields
///
/// iCUE-SDK: actual property value if it’s type is CPDT_Boolean
///
[FieldOffset(0)]
internal bool boolean;
///
/// iCUE-SDK: actual property value if it’s type is CPDT_Int32
///
[FieldOffset(0)]
internal int int32;
///
/// iCUE-SDK: actual property value if it’s type is CPDT_Float64
///
[FieldOffset(0)]
internal double float64;
///
/// iCUE-SDK: actual property value if it’s type is CPDT_String
///
[FieldOffset(0)]
internal nint @string;
///
/// iCUE-SDK: actual property value if it’s type is CPDT_Boolean_Array
///
[FieldOffset(0)]
internal CorsairDataTypeBooleanArray booleanArray;
///
/// iCUE-SDK: actual property value if it’s type is CPDT_Int32_Array
///
[FieldOffset(0)]
internal CorsairDataTypeInt32Array int32Array;
///
/// iCUE-SDK: actual property value if it’s type is CPDT_Float64_Array
///
[FieldOffset(0)]
internal CorsairDataTypeFloat64Array float64Array;
///
/// iCUE-SDK: actual property value if it’s type is CPDT_String_Array
///
[FieldOffset(0)]
internal CorsairDataTypeStringArray stringArray;
#endregion
#region Data Types
///
/// iCUE: represents an array of boolean values
///
[StructLayout(LayoutKind.Sequential)]
internal struct CorsairDataTypeBooleanArray
{
///
/// iCUE: an array of boolean values
///
internal nint items;
///
/// iCUE: number of items array elements
///
internal uint count;
};
///
/// iCUE: represents an array of integer values
///
[StructLayout(LayoutKind.Sequential)]
internal struct CorsairDataTypeInt32Array
{
///
/// iCUE: an array of integer values
///
internal nint items;
///
/// iCUE: number of items array elements
///
internal uint count;
};
///
/// iCUE: represents an array of double values
///
[StructLayout(LayoutKind.Sequential)]
internal struct CorsairDataTypeFloat64Array
{
///
/// iCUE: an array of double values
///
internal nint items;
///
/// iCUE: number of items array elements
///
internal uint count;
};
///
/// iCUE: represents an array of pointers to null terminated strings
///
[StructLayout(LayoutKind.Sequential)]
internal struct CorsairDataTypeStringArray
{
///
/// iCUE: an array of pointers to null terminated strings
///
internal nint items;
///
/// iCUE: number of items array elements
///
internal uint count;
};
#endregion
}