private void AcnSocket_NewPacket(object sender, Acn.Sockets.NewPacketEventArgs <Acn.Packets.sAcn.StreamingAcnDmxPacket> e) { if (this.masterClock == null) { this.masterClock = Stopwatch.StartNew(); } ulong timestamp = (ulong)this.masterClock.ElapsedMilliseconds; var propData = e.Packet.Dmx.PropertyData; if (propData.Length < 1) { // Unknown/unsupported return; } if (propData[0] != 0) { // We only support start code 0 return; } var newDmxData = e.Packet.Dmx.PropertyData; UniverseData universeData; if (!this.universes.TryGetValue(e.Packet.Framing.Universe, out universeData)) { // Unknown universe return; } long sequence = e.Packet.Framing.SequenceNumber + universeData.SequenceHigh; if (e.Packet.Framing.SequenceNumber < universeData.LastSequenceLow) { // Wrap universeData.SequenceHigh += 256; sequence += 256; } universeData.LastSequenceLow = e.Packet.Framing.SequenceNumber; var dmxData = RawDmxData.Create( millisecond: timestamp, sequence: sequence, universe: e.Packet.Framing.Universe, data: newDmxData.Skip(1).ToArray()); this.writer.AddData(dmxData); }
void socket_NewPacket(object sender, Acn.Sockets.NewPacketEventArgs<DJTapPacket> e) { if(e.Packet is Timecode) TimecodePacket = (Timecode) e.Packet; }