| 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 "ash/display/projecting_observer_chromeos.h" |   5 #include "ash/display/projecting_observer_chromeos.h" | 
|   6  |   6  | 
|   7 #include "base/logging.h" |   7 #include "base/logging.h" | 
|   8 #include "chromeos/dbus/power_manager_client.h" |   8 #include "chromeos/dbus/power_manager_client.h" | 
|   9 #include "ui/display/types/display_snapshot.h" |   9 #include "ui/display/types/display_snapshot.h" | 
|  10  |  10  | 
|  11 namespace ash { |  11 namespace ash { | 
|  12  |  12  | 
|  13 ProjectingObserver::ProjectingObserver( |  13 ProjectingObserver::ProjectingObserver( | 
|  14     chromeos::PowerManagerClient* power_manager_client) |  14     chromeos::PowerManagerClient* power_manager_client) | 
|  15     : has_internal_output_(false), |  15     : has_internal_output_(false), | 
|  16       output_count_(0), |  16       output_count_(0), | 
|  17       casting_session_count_(0), |  17       casting_session_count_(0), | 
|  18       power_manager_client_(power_manager_client) { |  18       power_manager_client_(power_manager_client) { | 
|  19   DCHECK(power_manager_client); |  19   DCHECK(power_manager_client); | 
|  20 } |  20 } | 
|  21  |  21  | 
|  22 ProjectingObserver::~ProjectingObserver() {} |  22 ProjectingObserver::~ProjectingObserver() {} | 
|  23  |  23  | 
|  24 void ProjectingObserver::OnDisplayModeChanged( |  24 void ProjectingObserver::OnDisplayModeChanged( | 
|  25     const ui::DisplayConfigurator::DisplayStateList& display_states) { |  25     const ui::DisplayConfigurator::DisplayStateList& display_states) { | 
|  26   has_internal_output_ = false; |  26   has_internal_output_ = false; | 
|  27   output_count_ = display_states.size(); |  27   output_count_ = display_states.size(); | 
|  28  |  28  | 
|  29   for (size_t i = 0; i < display_states.size(); ++i) { |  29   for (size_t i = 0; i < display_states.size(); ++i) { | 
|  30     if (display_states[i].display->type() == |  30     if (display_states[i]->type() == ui::DISPLAY_CONNECTION_TYPE_INTERNAL) { | 
|  31         ui::DISPLAY_CONNECTION_TYPE_INTERNAL) { |  | 
|  32       has_internal_output_ = true; |  31       has_internal_output_ = true; | 
|  33       break; |  32       break; | 
|  34     } |  33     } | 
|  35   } |  34   } | 
|  36  |  35  | 
|  37   SetIsProjecting(); |  36   SetIsProjecting(); | 
|  38 } |  37 } | 
|  39  |  38  | 
|  40 void ProjectingObserver::OnCastingSessionStartedOrStopped(bool started) { |  39 void ProjectingObserver::OnCastingSessionStartedOrStopped(bool started) { | 
|  41   if (started) { |  40   if (started) { | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|  53 void ProjectingObserver::SetIsProjecting() { |  52 void ProjectingObserver::SetIsProjecting() { | 
|  54   // "Projecting" is defined as having more than 1 output connected while at |  53   // "Projecting" is defined as having more than 1 output connected while at | 
|  55   // least one of them is an internal output. |  54   // least one of them is an internal output. | 
|  56   bool projecting = has_internal_output_ && |  55   bool projecting = has_internal_output_ && | 
|  57       (output_count_ + casting_session_count_ > 1); |  56       (output_count_ + casting_session_count_ > 1); | 
|  58  |  57  | 
|  59   power_manager_client_->SetIsProjecting(projecting); |  58   power_manager_client_->SetIsProjecting(projecting); | 
|  60 } |  59 } | 
|  61  |  60  | 
|  62 }  // namespace ash |  61 }  // namespace ash | 
| OLD | NEW |