public TapMessageInterface(TapConfig tapConfig, ITapInterface tapInterface)
 {
     this.tapInterface = tapInterface;
     tapIpPrefix       = tapConfig.IpPrefix.Split('.').Select(byte.Parse).ToArray();
     tapMacPrefix      = tapConfig.MacPrefix.Split(':').Select(x => Convert.ToByte(x, 16)).ToArray();
     dnsFormat         = tapConfig.DnsFormat;
     selfName          = tapConfig.SelfName;
     if (tapIpPrefix.Length < 2 || tapMacPrefix.Length < 4)
     {
         throw new Exception("Wrong IP/MAC format for TAP");
     }
 }
        /// <summary>
        ///     tap
        /// </summary>
        /// <returns><c>true</c>, if pressed was oned, <c>false</c> otherwise.</returns>
        /// <param name="config">Action.</param>
        /// <param name="tap">Action.</param>
        protected void OnTap(TapConfig config, bool tap = true)
        {
            if (config == null)
            {
                return;
            }

            var tapAction = new TapAction
            {
                KaraokeTapAction = config.KaraokeTapAction,
                Tap = tap
            };

            InputAction.Value = tapAction;
        }