/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.WriteToNetwork(NodeCount); data.WriteToNetwork(NodeListenerPort); }
/// <summary> /// Sends the specified packet using UDP broadcast to all TCNet devices. /// </summary> /// <param name="packet">The packet to send on the network.</param> protected void Broadcast(Socket socket, TCNetPacket packet) { MemoryStream data = new MemoryStream(); TCNetBinaryWriter writer = new TCNetBinaryWriter(data); IPEndPoint localEndpoint = (IPEndPoint)socket.LocalEndPoint; TCNetHeader header = packet as TCNetHeader; if (header != null) { header.NodeID = NodeId; header.NodeType = Role; header.NodeName = NodeName; header.SequenceNumber = NextSequenceNumber(); header.Timestamp = DateTime.UtcNow.TimeOfDay; } packet.WriteData(writer); try { socket.SendTo(data.ToArray(), new IPEndPoint(BroadcastAddress, localEndpoint.Port)); } catch (SocketException ex) { var broadcastError = new TCNetSocketException(this, "TCNet socket error while broadcasting. See inner exception for more details.", ex); broadcastError.Data["LocalPort"] = localEndpoint.Port; broadcastError.Data["Port"] = localEndpoint.Port; OnUnhandledException(broadcastError); } }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write((byte)DataType); data.Write(LayerID); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write((byte)0); data.WriteToNetwork(LoopIn); data.WriteToNetwork(LoopOut); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write((byte)StepNumber); data.Write((byte)0); data.WriteToNetwork(NodeListenerPort); data.WriteToNetwork((uint)(RemoteTimestamp.Ticks / (TimeSpan.TicksPerSecond / 1000000))); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write((byte)DataType); data.Write(LayerID); data.WriteToNetwork(Code); data.WriteToNetwork((ushort)MessageType); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write((byte)0); data.Write(TrackID); data.WriteToNetwork(TrackArtist, 256); data.WriteToNetwork(TrackTitle, 256); data.WriteToNetwork(TrackKey); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write((byte)Step); data.Write((byte)0); data.WriteToNetwork((uint)TextData.Length); data.Write(new byte[12]); data.WriteToNetwork(TextData, TextData.Length); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write(WaveformData.Length); data.Write(TotalPackets); data.Write(PacketNumber); data.Write(DataClusterSize); data.Write(WaveformData); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write((byte)Step); data.Write((byte)0); data.WriteToNetwork((uint)ControlPath.Length); data.Write(new byte[12]); data.WriteToNetwork(ControlPath, ControlPath.Length); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.WriteToNetwork(ApplicationSignature); data.WriteToNetwork(DataSize); data.WriteToNetwork(TotalPackets); data.WriteToNetwork(PacketNumber); WriteApplicationData(data); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { data.WriteToNetwork(NodeID); data.Write((byte)ProtocolVersion.Major); data.Write((byte)ProtocolVersion.Minor); data.WriteToNetwork(Header, 3); data.Write((byte)MessageType); data.WriteToNetwork(NodeName, 8); data.Write(SequenceNumber); data.Write((byte)NodeType); data.WriteToNetwork((ushort)NodeOptions); data.WriteToNetwork((uint)(Timestamp.Milliseconds * 1000)); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.WriteToNetwork(NodeCount); data.WriteToNetwork(NodeListenerPort); data.WriteToNetwork((ushort)Uptime.TotalSeconds); data.Write(new byte[] { 0, 0 }); data.WriteToNetwork(VendorName, 16); data.WriteToNetwork(DeviceName, 16); data.Write((byte)DeviceVersion.Major); data.Write((byte)DeviceVersion.Minor); data.Write((byte)DeviceVersion.Build); data.Write((byte)0); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write((byte)0); data.Write((ushort)LayerState); data.Write(SyncMaster); data.Write(TrackLength); data.Write(CurrentPosition); data.Write((uint)(Speed * 32767)); data.Write(new byte[1]); data.Write(BeatNumber); data.Write(new byte[51]); data.Write((uint)(BPM * 100.0)); data.Write((ushort)(SpeedPitchBend * 32767)); data.Write(TrackId); }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); data.Write(DataSize); data.Write(TotalPackets); data.Write(PacketNumber); data.Write(DataClusterSize); foreach (BeatData beat in Beats) { data.WriteToNetwork(beat.BeatNumber); data.Write((byte)beat.BeatType); data.Write((byte)0); data.WriteToNetwork(beat.BeatTimeStamp); } }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public override void WriteData(TCNetBinaryWriter data) { base.WriteData(data); Layer[] layers = new Layer[] { Layer1, Layer2, Layer3, Layer4, LayerA, LayerB, LayerM, LayerC }; //Current Time foreach (var layer in layers) { data.WriteToNetwork(layer.CurrentTime); } //Total Time foreach (var layer in layers) { data.WriteToNetwork(layer.TotalTime); } //Beat Marker foreach (var layer in layers) { data.Write(layer.BeatMarker); } //Layer State foreach (var layer in layers) { data.Write((byte)layer.State); } //On Air foreach (var layer in layers) { data.Write(layer.OnAir); } data.Write(new byte[42]); }
/// <summary> /// Sends the specified packet using unicast to a specific DJ Tap device. /// </summary> /// <param name="packet">The packet to send on the network.</param> /// <param name="address">The address of the device to send the packet to.</param> protected void Unicast(TCNetPacket packet, TCNetEndPoint address) { MemoryStream data = new MemoryStream(); TCNetBinaryWriter writer = new TCNetBinaryWriter(data); IPEndPoint localEndpoint = (IPEndPoint)nodeSocket.LocalEndPoint; TCNetHeader header = packet as TCNetHeader; if (header != null) { header.NodeID = NodeId; header.NodeType = Role; header.NodeName = NodeName; header.SequenceNumber = NextSequenceNumber(); header.Timestamp = DateTime.UtcNow.TimeOfDay; TraceEventType traceLevel = TraceEventType.Information; DataTypes dataType = DataTypes.None; TCNetDataHeader dataHeader = header as TCNetDataHeader; if (dataHeader != null) { dataType = dataHeader.DataType; } tcNetTrace.TraceEvent(traceLevel, (int)header.MessageType, $"{header.NodeName}: {header.GetType().Name} {(dataType != DataTypes.None ? dataType.ToString() : string.Empty)}"); } packet.WriteData(writer); try { unicastTXSocket.SendTo(data.ToArray(), new IPEndPoint(address.Address, address.Port)); } catch (SocketException ex) { OnUnhandledException(new TCNetSocketException(this, "Socket error unicast TCNet integration.", ex)); } }
/// <summary> /// Writes the contents of this packet into a memory buffer. /// </summary> /// <param name="data">The data buffer to write the packet contents to.</param> public abstract void WriteData(TCNetBinaryWriter data);
public virtual void WriteApplicationData(TCNetBinaryWriter data) { }