Example #1
0
        public static bool CorsairSetLedsColorsAsync(int size, CorsairLedColor[] ledsColors, CorsairSetLedsColorsAsyncCallback callbackType, object context)
        {
            var callbackMethod = new CUESDKNative.CorsairSetLedsColorsAsyncCallback((IntPtr nativeContext, bool result, CorsairError error) =>
            {
                callbackType?.Invoke(context, result, error);
            });

            var corsairLedColorSize = Marshal.SizeOf <CorsairLedColorNative>();
            var ledsPtr             = Marshal.AllocHGlobal(corsairLedColorSize * size);

            for (int i = 0; i < size; i++)
            {
                ledsColors[i].ApplyToNative();
                Marshal.StructureToPtr(ledsColors[i].native, ledsPtr + corsairLedColorSize * i, false);
            }

            var callResult = CUESDKNative.CorsairSetLedsColorsAsync(size, ledsPtr, callbackMethod, new IntPtr());

            Marshal.FreeHGlobal(ledsPtr);

            return(callResult);
        }
Example #2
0
 public static extern bool CorsairSetLedsColorsAsync(int size, IntPtr ledsColors, CorsairSetLedsColorsAsyncCallback callbackType, IntPtr context);