Ejemplo n.º 1
0
        public override void _Dispatch(IncomingMessage im, OutgoingMessage om)
        {
            switch (im.CommandId)
            {
            case 0: {                     // PostBufferAsync
                var ret = PostBufferAsync(im.GetData <uint>(8), im.GetData <ulong>(16));
                om.Initialize(0, 0, 4);
                om.SetData(8, ret);
                break;
            }

            case 1: {                     // Cancel
                Cancel();
                om.Initialize(0, 0, 0);
                break;
            }

            case 2: {                     // GetCompletionEvent
                var ret = GetCompletionEvent();
                om.Initialize(0, 1, 0);
                om.Copy(0, CreateHandle(ret, copy: true));
                break;
            }

            case 3: {                     // GetReportData
                GetReportData((Nn.Usb.UsbReportEntry *)om.GetDataPointer(8), out var _1);
                om.Initialize(0, 0, 4);
                om.SetData(8, _1);
                break;
            }

            case 4: {                     // Stall
                Stall();
                om.Initialize(0, 0, 0);
                break;
            }

            case 5: {                     // SetZlt
                SetZlt(im.GetData <bool>(8));
                om.Initialize(0, 0, 0);
                break;
            }

            default:
                throw new NotImplementedException($"Unhandled command ID to IDsEndpoint: {im.CommandId}");
            }
        }
        public override void _Dispatch(IncomingMessage im, OutgoingMessage om)
        {
            switch (im.CommandId)
            {
            case 0: {                     // GetDeviceLocationName
                GetDeviceLocationName(out var _0);
                om.Initialize(0, 0, 36);
                om.SetBytes(8, _0);
                break;
            }

            case 1: {                     // SetDeviceLocationName
                SetDeviceLocationName(im.GetBytes(8, 0x24));
                om.Initialize(0, 0, 0);
                break;
            }

            case 2: {                     // GetTotalLocationNameCount
                var ret = GetTotalLocationNameCount();
                om.Initialize(0, 0, 4);
                om.SetData(8, ret);
                break;
            }

            case 3: {                     // LoadLocationNameList
                LoadLocationNameList(im.GetData <uint>(8), out var _0, im.GetBuffer <byte>(0x6, 0));
                om.Initialize(0, 0, 4);
                om.SetData(8, _0);
                break;
            }

            case 4: {                     // LoadTimeZoneRule
                LoadTimeZoneRule(im.GetBytes(8, 0x24), im.GetBuffer <byte>(0x16, 0));
                om.Initialize(0, 0, 0);
                break;
            }

            case 5: {                     // GetTimeZoneRuleVersion
                GetTimeZoneRuleVersion(out var _0);
                om.Initialize(0, 0, 16);
                om.SetBytes(8, _0);
                break;
            }

            case 100: {                     // ToCalendarTime
                ToCalendarTime(im.GetData <ulong>(8), im.GetBuffer <byte>(0x15, 0), (Nn.Time.CalendarTime *)om.GetDataPointer(8), (Nn.Time.Sf.CalendarAdditionalInfo *)om.GetDataPointer(8));
                om.Initialize(0, 0, 0);
                break;
            }

            case 101: {                     // ToCalendarTimeWithMyRule
                ToCalendarTimeWithMyRule(im.GetData <ulong>(8), (Nn.Time.CalendarTime *)om.GetDataPointer(8), (Nn.Time.Sf.CalendarAdditionalInfo *)om.GetDataPointer(8));
                om.Initialize(0, 0, 0);
                break;
            }

            case 201: {                     // ToPosixTime
                ToPosixTime((Nn.Time.CalendarTime *)im.GetDataPointer(8), im.GetBuffer <byte>(0x15, 0), out var _0, im.GetBuffer <ulong>(0xA, 0));
                om.Initialize(0, 0, 4);
                om.SetData(8, _0);
                break;
            }

            case 202: {                     // ToPosixTimeWithMyRule
                ToPosixTimeWithMyRule((Nn.Time.CalendarTime *)im.GetDataPointer(8), out var _0, im.GetBuffer <ulong>(0xA, 0));
                om.Initialize(0, 0, 4);
                om.SetData(8, _0);
                break;
            }

            default:
                throw new NotImplementedException($"Unhandled command ID to ITimeZoneService: {im.CommandId}");
            }
        }
Ejemplo n.º 3
0
        public override void _Dispatch(IncomingMessage im, OutgoingMessage om)
        {
            switch (im.CommandId)
            {
            case 0: {                     // RegisterEndpoint
                var ret = RegisterEndpoint(im.GetData <byte>(8));
                om.Initialize(1, 0, 0);
                om.Move(0, CreateHandle(ret));
                break;
            }

            case 1: {                     // GetSetupEvent
                var ret = GetSetupEvent();
                om.Initialize(0, 1, 0);
                om.Copy(0, CreateHandle(ret, copy: true));
                break;
            }

            case 2: {                     // GetSetupPacket
                GetSetupPacket(im.GetBuffer <byte>(0x6, 0));
                om.Initialize(0, 0, 0);
                break;
            }

            case 3: {                     // EnableInterface
                EnableInterface();
                om.Initialize(0, 0, 0);
                break;
            }

            case 4: {                     // DisableInterface
                DisableInterface();
                om.Initialize(0, 0, 0);
                break;
            }

            case 5: {                     // CtrlInPostBufferAsync
                var ret = CtrlInPostBufferAsync(im.GetData <uint>(8), im.GetData <ulong>(16));
                om.Initialize(0, 0, 4);
                om.SetData(8, ret);
                break;
            }

            case 6: {                     // CtrlOutPostBufferAsync
                var ret = CtrlOutPostBufferAsync(im.GetData <uint>(8), im.GetData <ulong>(16));
                om.Initialize(0, 0, 4);
                om.SetData(8, ret);
                break;
            }

            case 7: {                     // GetCtrlInCompletionEvent
                var ret = GetCtrlInCompletionEvent();
                om.Initialize(0, 1, 0);
                om.Copy(0, CreateHandle(ret, copy: true));
                break;
            }

            case 8: {                     // GetCtrlInReportData
                GetCtrlInReportData((Nn.Usb.UsbReportEntry *)om.GetDataPointer(8), out var _1);
                om.Initialize(0, 0, 4);
                om.SetData(8, _1);
                break;
            }

            case 9: {                     // GetCtrlOutCompletionEvent
                var ret = GetCtrlOutCompletionEvent();
                om.Initialize(0, 1, 0);
                om.Copy(0, CreateHandle(ret, copy: true));
                break;
            }

            case 10: {                     // GetCtrlOutReportData
                GetCtrlOutReportData((Nn.Usb.UsbReportEntry *)om.GetDataPointer(8), out var _1);
                om.Initialize(0, 0, 4);
                om.SetData(8, _1);
                break;
            }

            case 11: {                     // StallCtrl
                StallCtrl();
                om.Initialize(0, 0, 0);
                break;
            }

            case 12: {                     // AppendConfigurationData
                AppendConfigurationData(im.GetData <byte>(8), im.GetData <Nn.Usb.UsbDeviceSpeed>(12), im.GetBuffer <byte>(0x5, 0));
                om.Initialize(0, 0, 0);
                break;
            }

            default:
                throw new NotImplementedException($"Unhandled command ID to IDsInterface: {im.CommandId}");
            }
        }