Exemple #1
0
        private void FireAlarmListenerOnStatusChanged(FireAlarmListener listener, FireAlarmStatus status)
        {
            var mute = status == FireAlarmStatus.Alert;

            CloudLog.Warn("Fire Alarm Interface changed status to: {0}", status.ToString());

            try
            {
                PromptUsers(prompt => { }, "FIRE ALARM", "Please listen for announcements", 300, null,
                            new PromptAction
                {
                    ActionName = "OK",
                    ActionType = PromptActionType.Acknowledge
                });
            }
            catch (Exception e)
            {
                CloudLog.Exception(e);
            }

            if (Dsp != null && Dsp.ContainsComponentWithName("fire.mute"))
            {
                var muteGainBlock = Dsp["fire.mute"] as IAudioLevelControl;
                if (muteGainBlock != null && muteGainBlock.SupportsMute)
                {
                    CloudLog.Notice("Dsp mute {0} set to {1}", muteGainBlock.Name, mute ? "muted" : "unmuted");
                    muteGainBlock.Muted = mute;
                    return;
                }
            }

            foreach (var room in Rooms.Cast <ARoom>().Where(room => room.ProgramVolume != null))
            {
                CloudLog.Warn("Fire Alarm {0} program volume in Room {1}", mute ? "muted" : "unmuted", room.Name);
                room.ProgramVolume.Muted = mute;
            }
        }