| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/camera_presence_notifier.h" | 5 #include "chrome/browser/chromeos/camera_presence_notifier.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/singleton.h" | 8 #include "base/memory/singleton.h" |
| 9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
| 10 #include "chrome/browser/chromeos/camera_detector.h" | 10 #include "chrome/browser/chromeos/camera_detector.h" |
| 11 | 11 |
| 12 namespace chromeos { | 12 namespace chromeos { |
| 13 | 13 |
| 14 namespace { | 14 namespace { |
| 15 | 15 |
| 16 // Interval between checks for camera presence. | 16 // Interval between checks for camera presence. |
| 17 const int kCameraCheckIntervalSeconds = 3; | 17 const int kCameraCheckIntervalSeconds = 3; |
| 18 | 18 |
| 19 } // namespace | 19 } // namespace |
| 20 | 20 |
| 21 CameraPresenceNotifier::CameraPresenceNotifier() : | 21 CameraPresenceNotifier::CameraPresenceNotifier() : |
| 22 camera_present_on_last_check_(false), | 22 camera_present_on_last_check_(false), |
| 23 weak_factory_(this) {} | 23 weak_factory_(this) {} |
| 24 | 24 |
| 25 CameraPresenceNotifier::~CameraPresenceNotifier() {} | 25 CameraPresenceNotifier::~CameraPresenceNotifier() {} |
| 26 | 26 |
| 27 // static | 27 // static |
| 28 CameraPresenceNotifier* CameraPresenceNotifier::GetInstance() { | 28 CameraPresenceNotifier* CameraPresenceNotifier::GetInstance() { |
| 29 return Singleton<CameraPresenceNotifier>::get(); | 29 return base::Singleton<CameraPresenceNotifier>::get(); |
| 30 } | 30 } |
| 31 | 31 |
| 32 void CameraPresenceNotifier::AddObserver( | 32 void CameraPresenceNotifier::AddObserver( |
| 33 CameraPresenceNotifier::Observer* observer) { | 33 CameraPresenceNotifier::Observer* observer) { |
| 34 bool had_no_observers = !observers_.might_have_observers(); | 34 bool had_no_observers = !observers_.might_have_observers(); |
| 35 observers_.AddObserver(observer); | 35 observers_.AddObserver(observer); |
| 36 observer->OnCameraPresenceCheckDone(camera_present_on_last_check_); | 36 observer->OnCameraPresenceCheckDone(camera_present_on_last_check_); |
| 37 if (had_no_observers) { | 37 if (had_no_observers) { |
| 38 CheckCameraPresence(); | 38 CheckCameraPresence(); |
| 39 camera_check_timer_.Start( | 39 camera_check_timer_.Start( |
| (...skipping 24 matching lines...) Expand all Loading... |
| 64 CameraDetector::camera_presence() == CameraDetector::kCameraPresent; | 64 CameraDetector::camera_presence() == CameraDetector::kCameraPresent; |
| 65 if (is_camera_present != camera_present_on_last_check_) { | 65 if (is_camera_present != camera_present_on_last_check_) { |
| 66 camera_present_on_last_check_ = is_camera_present; | 66 camera_present_on_last_check_ = is_camera_present; |
| 67 FOR_EACH_OBSERVER(Observer, | 67 FOR_EACH_OBSERVER(Observer, |
| 68 observers_, | 68 observers_, |
| 69 OnCameraPresenceCheckDone(camera_present_on_last_check_)); | 69 OnCameraPresenceCheckDone(camera_present_on_last_check_)); |
| 70 } | 70 } |
| 71 } | 71 } |
| 72 | 72 |
| 73 } // namespace chromeos | 73 } // namespace chromeos |
| OLD | NEW |