#ifndef ASH_SYSTEM_AUDIO_MIC_GAIN_SLIDER_VIEW_H_
#define ASH_SYSTEM_AUDIO_MIC_GAIN_SLIDER_VIEW_H_
#include "ash/system/unified/unified_slider_view.h"
#include "chromeos/ash/components/audio/cras_audio_handler.h"
#include "ui/base/metadata/metadata_header_macros.h"
namespace ash {
class MicGainSliderController;
class MicGainSliderView : public UnifiedSliderView,
public CrasAudioHandler::AudioObserver {
METADATA_HEADER(MicGainSliderView, UnifiedSliderView)
public:
explicit MicGainSliderView(MicGainSliderController* controller);
MicGainSliderView(MicGainSliderController* controller,
uint64_t device_id,
bool internal);
~MicGainSliderView() override;
uint64_t device_id() const { return device_id_; }
void OnInputNodeGainChanged(uint64_t node_id, int gain) override;
void OnInputMuteChanged(
bool mute_on,
CrasAudioHandler::InputMuteChangeMethod method) override;
void OnInputMutedByMicrophoneMuteSwitchChanged(bool muted) override;
void OnActiveInputNodeChanged() override;
void VisibilityChanged(View* starting_from, bool is_visible) override;
private:
void Update(bool by_user);
const uint64_t device_id_;
const bool internal_;
};
}
#endif