示例#1
0
 public AVRZoneStatus()
 {
     _power         = AVRZonePowerStatus.OFF;
     _muteStatus    = AVRMuteStatus.MUTE_OFF;
     _masterVolume  = new AVRVolume();
     _volumeDisplay = AVRVolumeDisplay.Absolute;
 }
        public override void ProcessResponse(XDocument info, AVRDevice device)
        {
            if (info == null || info.Root == null)
            {
                return;
            }

            XNamespace ns = info.Root.Name.Namespace;
            XElement   responseElement = info.Element(ns + RESPONSE_STR);

            if (responseElement != null && !responseElement.IsEmpty)
            {
                foreach (XElement commandElement in responseElement.Elements(ns + COMMAND_STR))
                {
                    string        muteStat = commandElement.Element(ns + MUTE_STR)?.Value;
                    AVRMuteStatus status;
                    if (AVRMuteStatus.TryParse(muteStat, true, out status))
                    {
                        //TODO
                        //device.MainZoneStatus.MuteStatus = status;
                    }
                }
            }
        }
示例#3
0
 public void SendMuteCommand(AVRMuteStatus status)
 {
     PostCommand(new AVRCommandMute(status));
 }
示例#4
0
        public bool FromResponse(XDocument responseDocument)
        {
            if (responseDocument == null || responseDocument.Root == null)
            {
                return(false);
            }

            XNamespace ns = responseDocument.Root.Name.Namespace;

            foreach (XElement itemElement in responseDocument.Elements(ns + "item"))
            {
                XElement powerElement = itemElement.Element(ns + "ZonePower");
                if (powerElement != null && !powerElement.IsEmpty)
                {
                    string             powerStat = powerElement.Element(ns + "value")?.Value;
                    AVRZonePowerStatus status;
                    if (Enum.TryParse(powerStat, true, out status))
                    {
                        Power = status;
                    }
                }
                XElement inputFuncSelectElement = itemElement.Element(ns + "InputFuncSelect");
                if (inputFuncSelectElement != null && !inputFuncSelectElement.IsEmpty)
                {
                    //AVRInputSource src = device.InputSources.First((x) => x.Name.Equals(inputFuncSelectElement.Element(ns + "value")?.Value));
                    //if (src != null)
                    //{
                    //    ActiveInputSource = src;
                    //}
                    AVRInputSource src = new AVRInputSource();
                    src.Name          = inputFuncSelectElement.Element(ns + "value")?.Value;
                    ActiveInputSource = src;
                }
                XElement volumeDisplayElement = itemElement.Element(ns + "VolumeDisplay");
                if (volumeDisplayElement != null && !volumeDisplayElement.IsEmpty)
                {
                    string           volumeDisplayString = volumeDisplayElement.Element(ns + "value")?.Value;
                    AVRVolumeDisplay volumeDisplay;
                    if (Enum.TryParse(volumeDisplayString, true, out volumeDisplay))
                    {
                        VolumeDisplay = volumeDisplay;
                    }
                }
                XElement masterVolumeElement = itemElement.Element(ns + "MasterVolume");
                if (masterVolumeElement != null && !masterVolumeElement.IsEmpty)
                {
                    string masterVolumeString = masterVolumeElement.Element(ns + "value")?.Value;
                    float  masterVolume;
                    if (float.TryParse(masterVolumeString, out masterVolume))
                    {
                        if (VolumeDisplay == AVRVolumeDisplay.Absolute)
                        {
                            MasterVolume.AbsoluteVolume = masterVolume;
                        }
                        else
                        {
                            MasterVolume.RelativeVolume = masterVolume;
                        }
                    }
                }
                XElement muteElement = itemElement.Element(ns + "Mute");
                if (muteElement != null && !muteElement.IsEmpty)
                {
                    string muteStat = muteElement.Element(ns + "value")?.Value;

                    MuteStatus = muteStat.Contains("on") ? AVRMuteStatus.MUTE_ON : AVRMuteStatus.MUTE_OFF;
                }
            }
            return(true);
        }
示例#5
0
 public AVRCommandMute(AVRMuteStatus targetMuteStatus)
 {
     _targetMuteStatus = (targetMuteStatus == AVRMuteStatus.UNDEFINED)? AVRMuteStatus.MUTE_OFF : targetMuteStatus;
 }