/// <summary> /// A fingerprint has been generated /// Send a UDP packet and update the GUI /// </summary> /// <param name="sender"></param> /// <param name="ea"></param> private void FingerprintCreated(object sender, FingerprintEventArgs ea) { SendPacket(ea); Timecode = TimecodeString(ea.Timecode); for (var i = 0; i < ea.AudioFingerprints.Length; i++) { Channels[i].AudioIndicator = (ea.AudioFingerprints[i] & 0x8000000000000000UL) != 0; } }
/// <summary> /// Send a fingerprint packet over UDP /// </summary> /// <param name="ea"></param> private void SendPacket(FingerprintEventArgs ea) { Array.Clear(fp, 0, fp.Length); fp[0] = PACKET_VERSION; fp[1] = ea.SlotsPerFrame; Array.Copy(BitConverter.GetBytes(ea.Timecode), 0, fp, 2, 4); for (var ch = 0; ch < ea.AudioFingerprints.Length; ch++) { Array.Copy(BitConverter.GetBytes(ea.AudioFingerprints[ch]), 0, fp, 2 + sizeof(int) + ch * sizeof(ulong), sizeof(ulong)); } client.SendTo(fp, hostAddress); }