public void TestAudioControl() { AudioControl packet = NanoPacketFactory .ParsePacket(ResourcesProvider.GetBytes("tcp_audio_control.bin", ResourceType.Nano), _context) as AudioControl; Assert.NotNull(packet); Assert.NotNull(packet.Header); Assert.Equal <NanoChannel>(NanoChannel.Audio, packet.Channel); Assert.Equal <NanoPayloadType>(NanoPayloadType.Streamer, packet.Header.PayloadType); Assert.Equal <AudioPayloadType>(AudioPayloadType.Control, (AudioPayloadType)packet.StreamerHeader.PacketType); Assert.Equal <StreamerFlags>(StreamerFlags.GotSeqAndPrev | StreamerFlags.Unknown1, packet.StreamerHeader.Flags); Assert.Equal <uint>(2, packet.StreamerHeader.SequenceNumber); Assert.Equal <uint>(1, packet.StreamerHeader.PreviousSequenceNumber); Assert.Equal <AudioControlFlags>(AudioControlFlags.StartStream, packet.Flags); }
public void TestConnectRequest() { var message = new Msgn.Connection.ConnectRequestMessage() { Authorization = "dummy_token", UserHash = "deadbeefdeadbeefde", DeviceId = System.Guid.Parse("545d30de-b475-1b43-adb2-eb6b9e546014"), Crypto = _crypto, InitVector = new byte[] { 0x29, 0x79, 0xd2, 0x5e, 0xa0, 0x3d, 0x97, 0xf5, 0x8f, 0x46, 0x93, 0x0a, 0x28, 0x8b, 0xf5, 0xd2 }, SequenceNumber = 0, SequenceBegin = 0, SequenceEnd = 2 }; var packet = AssembleMessage(message); Assert.Equal <byte[]>(ResourcesProvider.GetBytes("connect_request.bin", ResourceType.SmartGlass), packet); }
public void TestInputClientHandshake() { InputClientHandshake packet = NanoPacketFactory .ParsePacket(ResourcesProvider.GetBytes("tcp_input_client_handshake.bin", ResourceType.Nano), _context) as InputClientHandshake; Assert.NotNull(packet); Assert.NotNull(packet.Header); Assert.Equal <NanoChannel>(NanoChannel.Input, packet.Channel); Assert.Equal <NanoPayloadType>(NanoPayloadType.Streamer, packet.Header.PayloadType); Assert.Equal <InputPayloadType>(InputPayloadType.ClientHandshake, (InputPayloadType)packet.StreamerHeader.PacketType); Assert.Equal <StreamerFlags>(StreamerFlags.GotSeqAndPrev | StreamerFlags.Unknown1, packet.StreamerHeader.Flags); Assert.Equal <uint>(1, packet.StreamerHeader.SequenceNumber); Assert.Equal <uint>(0, packet.StreamerHeader.PreviousSequenceNumber); Assert.Equal <uint>(10, packet.MaxTouches); Assert.Equal <ulong>(1498690645999, packet.ReferenceTimestamp); }
public void TestSystemTextInputMessage() { var message = new Msgs.Messages.SystemTextInputMessage() { BaseVersion = 1, Delta = new TextDelta[0], Flags = 0, SelectionStart = -1, SelectionLength = -1, SubmittedVersion = 2, TextChunk = "h", TextChunkByteStart = 0, TextSessionId = 8, TotalTextBytelength = 1 }; message.Header.ChannelId = 0x9A; message.Header.RequestAcknowledge = true; var packet = AssembleSessionMessage(message, 0x97, 32); Assert.Equal <byte[]>(ResourcesProvider.GetBytes("system_text_input.bin", ResourceType.SmartGlass), packet); }
public void TestStreamerControlChangeVideoQuality() { ChangeVideoQuality packet = NanoPacketFactory .ParsePacket(ResourcesProvider.GetBytes("tcp_control_msg_with_header_change_video_quality.bin", ResourceType.Nano), _context) as ChangeVideoQuality; Assert.NotNull(packet); Assert.NotNull(packet.Header); Assert.Equal <NanoChannel>(NanoChannel.Control, packet.Channel); Assert.Equal <NanoPayloadType>(NanoPayloadType.Streamer, packet.Header.PayloadType); Assert.Equal <uint>(0, packet.StreamerHeader.PacketType); Assert.Equal <StreamerFlags>(StreamerFlags.GotSeqAndPrev | StreamerFlags.Unknown1, packet.StreamerHeader.Flags); Assert.Equal <uint>(1, packet.StreamerHeader.SequenceNumber); Assert.Equal <uint>(0, packet.StreamerHeader.PreviousSequenceNumber); Assert.Equal <uint>(0, packet.ControlHeader.PreviousSequence); Assert.Equal <ushort>(1, packet.ControlHeader.Unknown1); Assert.Equal <ushort>(1406, packet.ControlHeader.Unknown2); Assert.Equal <ControlOpCode>(ControlOpCode.ChangeVideoQuality, packet.ControlHeader.OpCode); }
public DeviceTests() { byte[] cert = ResourcesProvider.GetBytes("selfsigned_cert.bin", ResourceType.Misc); byte[] msgBytes = ResourcesProvider.GetBytes("presence_response.bin", ResourceType.SmartGlass); var x509 = CryptoExtensions.DeserializeCertificateAsn(cert); _presenceResponse = new PresenceResponseMessage(); using (EndianReader er = new EndianReader(msgBytes)) { _presenceResponse.Deserialize(er); } _presenceResponse.Origin = new IPEndPoint(IPAddress.Parse("192.168.1.2"), 5234); _deviceManual = new Device( DeviceType.XboxOne, IPAddress.Parse("192.168.1.3"), "XboxOne", "FD0123456789", new Guid("de305d54-75b4-431b-adb2-eb6b9e546014") ); _deviceFromResponse = new Device(_presenceResponse); }
public void TestSystemTouchMessage() { var message = new Msgs.Messages.SystemTouchMessage() { Timestamp = 182459592, Touchpoints = new TouchPoint[] { new TouchPoint() { Action = TouchAction.Down, Id = 1, PointX = 244, PointY = 255 } } }; message.Header.ChannelId = 0x98; message.Header.RequestAcknowledge = true; var packet = AssembleSessionMessage(message, 26, 32); Assert.Equal <byte[]>(ResourcesProvider.GetBytes("system_touch.bin", ResourceType.SmartGlass), packet); }
public void TestGamepadMessage() { var message = new Msgs.Messages.GamepadMessage() { State = new GamepadState() { Timestamp = 0, Buttons = GamepadButtons.B, LeftTrigger = 0.0f, RightTrigger = 0.0f, LeftThumbstickX = 0.0f, RightThumbstickX = 0.0f, LeftThumbstickY = 0.0f, RightThumbstickY = 0.0f } }; message.Header.ChannelId = 180; message.Header.RequestAcknowledge = false; var packet = AssembleSessionMessage(message, 79, 41); Assert.Equal <byte[]>(ResourcesProvider.GetBytes("gamepad.bin", ResourceType.SmartGlass), packet); }
public void TestVideoData() { VideoData packet = NanoPacketFactory .ParsePacket(ResourcesProvider.GetBytes("udp_video_data.bin", ResourceType.Nano), _context) as VideoData; Assert.NotNull(packet); Assert.NotNull(packet.Header); Assert.Equal <NanoChannel>(NanoChannel.Video, packet.Channel); Assert.Equal <NanoPayloadType>(NanoPayloadType.Streamer, packet.Header.PayloadType); Assert.Equal <VideoPayloadType>(VideoPayloadType.Data, (VideoPayloadType)packet.StreamerHeader.PacketType); Assert.Equal <StreamerFlags>((StreamerFlags)0, packet.StreamerHeader.Flags); Assert.Equal <uint>(4, packet.Flags); Assert.Equal <uint>(3715731054, packet.FrameId); Assert.Equal <ulong>(3365613642, packet.Timestamp); Assert.Equal <uint>(5594, packet.TotalSize); Assert.Equal <uint>(5, packet.PacketCount); Assert.Equal <uint>(0, packet.Offset); Assert.Equal <int>(1119, packet.Data.Length); }
public void TestAudioClientHandshake() { AudioClientHandshake packet = NanoPacketFactory .ParsePacket(ResourcesProvider.GetBytes("tcp_audio_client_handshake.bin", ResourceType.Nano), _context) as AudioClientHandshake; Assert.NotNull(packet); Assert.NotNull(packet.Header); Assert.Equal <NanoChannel>(NanoChannel.Audio, packet.Channel); Assert.Equal <NanoPayloadType>(NanoPayloadType.Streamer, packet.Header.PayloadType); Assert.Equal <AudioPayloadType>(AudioPayloadType.ClientHandshake, (AudioPayloadType)packet.StreamerHeader.PacketType); Assert.Equal <StreamerFlags>(StreamerFlags.GotSeqAndPrev | StreamerFlags.Unknown1, packet.StreamerHeader.Flags); Assert.Equal <uint>(1, packet.StreamerHeader.SequenceNumber); Assert.Equal <uint>(0, packet.StreamerHeader.PreviousSequenceNumber); Assert.Equal <uint>(693041842, packet.InitialFrameID); Assert.Equal <uint>(2, packet.RequestedFormat.Channels); Assert.Equal <uint>(48000, packet.RequestedFormat.SampleRate); Assert.Equal <AudioCodec>(AudioCodec.AAC, packet.RequestedFormat.Codec); }