コード例 #1
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static NtStatus TryGetUsageValueArray(HidPreparsedData preparsedData, HidPReportType reportType, ushort usagePage, ushort linkCollection, ushort usage, ushort usageValueByteLength, byte[] report, int reportLength, out byte[] usageValue)
        {
            var preparsedDataPtr = HidPreparsedData.GetRawValue(preparsedData);

            usageValue = new byte[usageValueByteLength];

            return(HidP_GetUsageValueArray(reportType, usagePage, linkCollection, usage, usageValue, usageValueByteLength, preparsedDataPtr, report, (uint)reportLength));
        }
コード例 #2
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static NtStatus TryGetUsages(HidPreparsedData preparsedData, HidPReportType reportType, ushort usagePage, ushort linkCollection, byte[] report, int reportLength, out ushort[] usageList)
        {
            var  preparsedDataPtr = HidPreparsedData.GetRawValue(preparsedData);
            uint usageCount       = 0;

            HidP_GetUsages(reportType, usagePage, linkCollection, null, ref usageCount, preparsedDataPtr, report, (uint)reportLength);

            usageList = new ushort[usageCount];

            return(HidP_GetUsages(reportType, usagePage, linkCollection, usageList, ref usageCount, preparsedDataPtr, report, (uint)reportLength));
        }
コード例 #3
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static NtStatus TryGetValueCaps(HidPreparsedData preparsedData, HidPReportType reportType, out HidPValueCaps[] valueCaps)
        {
            var preparsedDataPtr = HidPreparsedData.GetRawValue(preparsedData);
            var caps             = GetCaps(preparsedData);
            var capsCount        = reportType switch
            {
                HidPReportType.Input => caps.NumberInputValueCaps,
                HidPReportType.Output => caps.NumberOutputValueCaps,
                HidPReportType.Feature => caps.NumberFeatureValueCaps,
                _ => throw new ArgumentException($"Invalid HidPReportType: {reportType}", nameof(reportType)),
            };

            valueCaps = new HidPValueCaps[capsCount];

            return(HidP_GetValueCaps(reportType, valueCaps, ref capsCount, preparsedDataPtr));
        }
コード例 #4
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static HidPValueCaps[] GetValueCaps(HidPreparsedData preparsedData, HidPReportType reportType)
        {
            TryGetValueCaps(preparsedData, reportType, out var valueCaps).EnsureSuccess();

            return(valueCaps);
        }
コード例 #5
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static HidPButtonCaps[] GetButtonCaps(HidPreparsedData preparsedData, HidPReportType reportType)
        {
            TryGetButtonCaps(preparsedData, reportType, out var buttonCaps).EnsureSuccess();

            return(buttonCaps);
        }
コード例 #6
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static HidPCaps GetCaps(HidPreparsedData preparsedData)
        {
            TryGetCaps(preparsedData, out var capabilities).EnsureSuccess();

            return(capabilities);
        }
コード例 #7
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static NtStatus TryGetCaps(HidPreparsedData preparsedData, out HidPCaps capabilities)
        {
            var preparsedDataPtr = HidPreparsedData.GetRawValue(preparsedData);

            return(HidP_GetCaps(preparsedDataPtr, out capabilities));
        }
コード例 #8
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
 public static byte[] GetUsageValueArray(HidPreparsedData preparsedData, HidPReportType reportType, HidPValueCaps valueCaps, ushort usage, byte[] report, int reportLength) =>
 GetUsageValueArray(preparsedData, reportType, valueCaps.UsagePage, valueCaps.LinkCollection, usage, (ushort)(valueCaps.BitSize * valueCaps.ReportCount), report, reportLength);
コード例 #9
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static ushort[] GetUsages(HidPreparsedData preparsedData, HidPReportType reportType, ushort usagePage, ushort linkCollection, byte[] report, int reportLength)
        {
            TryGetUsages(preparsedData, reportType, usagePage, linkCollection, report, reportLength, out var usageList).EnsureSuccess();

            return(usageList);
        }
コード例 #10
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
 public static int GetScaledUsageValue(HidPreparsedData preparsedData, HidPReportType reportType, HidPValueCaps valueCaps, ushort usage, byte[] report, int reportLength) =>
 GetScaledUsageValue(preparsedData, reportType, valueCaps.UsagePage, valueCaps.LinkCollection, usage, report, reportLength);
コード例 #11
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static int GetScaledUsageValue(HidPreparsedData preparsedData, HidPReportType reportType, ushort usagePage, ushort linkCollection, ushort usage, byte[] report, int reportLength)
        {
            TryGetScaledUsageValue(preparsedData, reportType, usagePage, linkCollection, usage, report, reportLength, out var usageValue).EnsureSuccess();

            return(usageValue);
        }
コード例 #12
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static NtStatus TryGetScaledUsageValue(HidPreparsedData preparsedData, HidPReportType reportType, ushort usagePage, ushort linkCollection, ushort usage, byte[] report, int reportLength, out int usageValue)
        {
            var preparsedDataPtr = HidPreparsedData.GetRawValue(preparsedData);

            return(HidP_GetScaledUsageValue(reportType, usagePage, linkCollection, usage, out usageValue, preparsedDataPtr, report, (uint)reportLength));
        }
コード例 #13
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
 public static NtStatus TryGetUsageValue(HidPreparsedData preparsedData, HidPReportType reportType, HidPValueCaps valueCaps, ushort usage, byte[] report, int reportLength, out int usageValue) =>
 TryGetUsageValue(preparsedData, reportType, valueCaps.UsagePage, valueCaps.LinkCollection, usage, report, reportLength, out usageValue);
コード例 #14
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
 public static ushort[] GetUsages(HidPreparsedData preparsedData, HidPReportType reportType, HidPButtonCaps buttonCaps, byte[] report, int reportLength) =>
 GetUsages(preparsedData, reportType, buttonCaps.UsagePage, buttonCaps.LinkCollection, report, reportLength);
コード例 #15
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
        public static byte[] GetUsageValueArray(HidPreparsedData preparsedData, HidPReportType reportType, ushort usagePage, ushort linkCollection, ushort usage, ushort usageValueByteLength, byte[] report, int reportLength)
        {
            TryGetUsageValueArray(preparsedData, reportType, usagePage, linkCollection, usage, usageValueByteLength, report, reportLength, out var usageValue).EnsureSuccess();

            return(usageValue);
        }
コード例 #16
0
        public static void FreePreparsedData(HidPreparsedData preparsedData)
        {
            var preparsedDataPointer = HidPreparsedData.GetRawValue(preparsedData);

            HidD_FreePreparsedData(preparsedDataPointer);
        }
コード例 #17
0
ファイル: HidP.cs プロジェクト: RoboPhred/shipbreaker-sixaxis
 public static NtStatus TryGetUsages(HidPreparsedData preparsedData, HidPReportType reportType, HidPButtonCaps buttonCaps, byte[] report, int reportLength, out ushort[] usageList) =>
 TryGetUsages(preparsedData, reportType, buttonCaps.UsagePage, buttonCaps.LinkCollection, report, reportLength, out usageList);