private void UpdateDevState(PioneerProtocol.Response.RSPMsg msg)
        {
            if (msg.GetType() == typeof(PioneerProtocol.Response.VOL))
            {
                DevState.CurrentVolumeState = ((PioneerProtocol.Response.VOL)msg).Volume;
            }
            else if (msg.GetType() == typeof(PioneerProtocol.Response.PWR))
            {
                DevState.PowerState = ((PioneerProtocol.Response.PWR)msg).pwrState;
            }
            else if (msg.GetType() == typeof(PioneerProtocol.Response.MUT))
            {
                DevState.MuteState = ((PioneerProtocol.Response.MUT)msg).MuteState;
            }
            else if (msg.GetType() == typeof(PioneerProtocol.Response.FN))
            {
                DevState.InputState = ((PioneerProtocol.Response.FN)msg).SelectedInput;
            }

            if (DeviceStateUpdateFromDevice != null)
            {
                DeviceStateUpdateFromDevice(DevState, null);
            }
        }
 public PioneerProtocol.Response.RSPMsg SendMessage(PioneerProtocol.Request.REQMsg msg)
 {
     SendData(msg.GetMsgAsString());
     return null;
 }
 private PioneerProtocol.Response.RSPMsg EnumToRSPMsg(PioneerProtocol.ResponseMsgType enumType)
 {
     PioneerProtocol.Response.RSPMsg msgType;
     switch (enumType)
     {
         case PioneerProtocol.ResponseMsgType.VOL:
             msgType = new PioneerProtocol.Response.VOL();
             break;
         case PioneerProtocol.ResponseMsgType.PWR:
             msgType = new PioneerProtocol.Response.PWR();
             break;
         case PioneerProtocol.ResponseMsgType.FN:
             msgType = new PioneerProtocol.Response.FN();
             break;
         case PioneerProtocol.ResponseMsgType.MUT:
             msgType = new PioneerProtocol.Response.MUT();
             break;
         default:
             msgType = new PioneerProtocol.Response.UNKNOWN();
             break;
     }
     return msgType;
 }