#ifndef CHROMECAST_UI_DISPLAY_SETTINGS_BRIGHTNESS_ANIMATION_H_
#define CHROMECAST_UI_DISPLAY_SETTINGS_BRIGHTNESS_ANIMATION_H_
#include "chromecast/ui/display_settings_manager.h"
#include "ui/gfx/animation/animation_delegate.h"
#include "ui/gfx/animation/linear_animation.h"
namespace chromecast {
class BrightnessAnimation : public gfx::LinearAnimation {
public:
explicit BrightnessAnimation(DisplaySettingsManager::Delegate* controller);
BrightnessAnimation(const BrightnessAnimation&) = delete;
BrightnessAnimation& operator=(const BrightnessAnimation&) = delete;
~BrightnessAnimation() override;
void AnimateToNewValue(float new_target_brightness, base::TimeDelta duration);
private:
void AnimateToState(double state) override;
void ApplyValuesToDisplay();
DisplaySettingsManager::Delegate* const controller_;
float start_brightness_;
float current_brightness_;
float target_brightness_;
};
}
#endif