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; } } } }
public void SendMuteCommand(AVRMuteStatus status) { PostCommand(new AVRCommandMute(status)); }
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); }
public AVRCommandMute(AVRMuteStatus targetMuteStatus) { _targetMuteStatus = (targetMuteStatus == AVRMuteStatus.UNDEFINED)? AVRMuteStatus.MUTE_OFF : targetMuteStatus; }