910e62b5创建于 1月15日历史提交
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/events/devices/microphone_mute_switch_monitor.h"

#include "base/no_destructor.h"
#include "base/observer_list.h"

namespace ui {

MicrophoneMuteSwitchMonitor::MicrophoneMuteSwitchMonitor() = default;

MicrophoneMuteSwitchMonitor::~MicrophoneMuteSwitchMonitor() = default;

// static
MicrophoneMuteSwitchMonitor* MicrophoneMuteSwitchMonitor::Get() {
  static base::NoDestructor<MicrophoneMuteSwitchMonitor> instance;
  return instance.get();
}

void MicrophoneMuteSwitchMonitor::AddObserver(Observer* observer) {
  observers_.AddObserver(observer);
}

void MicrophoneMuteSwitchMonitor::RemoveObserver(Observer* observer) {
  observers_.RemoveObserver(observer);
}

void MicrophoneMuteSwitchMonitor::SetMicrophoneMuteSwitchValue(bool switch_on) {
  if (microphone_mute_switch_on_ == switch_on)
    return;
  microphone_mute_switch_on_ = switch_on;
  observers_.Notify(&Observer::OnMicrophoneMuteSwitchValueChanged,
                    microphone_mute_switch_on_);
}

}  // namespace ui