| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "ui/ozone/platform/drm/gpu/drm_thread_message_proxy.h" | 5 #include "ui/ozone/platform/drm/gpu/drm_thread_message_proxy.h" |
| 6 | 6 |
| 7 #include "base/threading/thread_task_runner_handle.h" | 7 #include "base/threading/thread_task_runner_handle.h" |
| 8 #include "ipc/ipc_message.h" | 8 #include "ipc/ipc_message.h" |
| 9 #include "ipc/ipc_sender.h" | 9 #include "ipc/ipc_sender.h" |
| 10 #include "ui/ozone/common/gpu/ozone_gpu_messages.h" | 10 #include "ui/ozone/common/gpu/ozone_gpu_messages.h" |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 drm_thread_->task_runner()->PostTask( | 102 drm_thread_->task_runner()->PostTask( |
| 103 FROM_HERE, base::Bind(&DrmThread::MoveCursor, | 103 FROM_HERE, base::Bind(&DrmThread::MoveCursor, |
| 104 base::Unretained(drm_thread_), widget, location)); | 104 base::Unretained(drm_thread_), widget, location)); |
| 105 } | 105 } |
| 106 | 106 |
| 107 void DrmThreadMessageProxy::OnCheckOverlayCapabilities( | 107 void DrmThreadMessageProxy::OnCheckOverlayCapabilities( |
| 108 gfx::AcceleratedWidget widget, | 108 gfx::AcceleratedWidget widget, |
| 109 const std::vector<OverlayCheck_Params>& overlays) { | 109 const std::vector<OverlayCheck_Params>& overlays) { |
| 110 DCHECK(drm_thread_->IsRunning()); | 110 DCHECK(drm_thread_->IsRunning()); |
| 111 auto callback = | 111 auto callback = |
| 112 base::Bind(&DrmThreadMessageProxy::OnCheckOverlayCapabilitiesCallback, | 112 base::BindOnce(&DrmThreadMessageProxy::OnCheckOverlayCapabilitiesCallback, |
| 113 weak_ptr_factory_.GetWeakPtr()); | 113 weak_ptr_factory_.GetWeakPtr()); |
| 114 |
| 115 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 114 drm_thread_->task_runner()->PostTask( | 116 drm_thread_->task_runner()->PostTask( |
| 115 FROM_HERE, base::Bind(&DrmThread::CheckOverlayCapabilities, | 117 FROM_HERE, base::BindOnce(&DrmThread::CheckOverlayCapabilities, |
| 116 base::Unretained(drm_thread_), widget, overlays, | 118 base::Unretained(drm_thread_), widget, overlays, |
| 117 CreateSafeCallback(callback))); | 119 std::move(safe_callback))); |
| 118 } | 120 } |
| 119 | 121 |
| 120 void DrmThreadMessageProxy::OnRefreshNativeDisplays() { | 122 void DrmThreadMessageProxy::OnRefreshNativeDisplays() { |
| 121 DCHECK(drm_thread_->IsRunning()); | 123 DCHECK(drm_thread_->IsRunning()); |
| 122 auto callback = | 124 auto callback = |
| 123 base::Bind(&DrmThreadMessageProxy::OnRefreshNativeDisplaysCallback, | 125 base::BindOnce(&DrmThreadMessageProxy::OnRefreshNativeDisplaysCallback, |
| 124 weak_ptr_factory_.GetWeakPtr()); | 126 weak_ptr_factory_.GetWeakPtr()); |
| 127 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 125 drm_thread_->task_runner()->PostTask( | 128 drm_thread_->task_runner()->PostTask( |
| 126 FROM_HERE, | 129 FROM_HERE, |
| 127 base::Bind(&DrmThread::RefreshNativeDisplays, | 130 base::BindOnce(&DrmThread::RefreshNativeDisplays, |
| 128 base::Unretained(drm_thread_), CreateSafeCallback(callback))); | 131 base::Unretained(drm_thread_), std::move(safe_callback))); |
| 129 } | 132 } |
| 130 | 133 |
| 131 void DrmThreadMessageProxy::OnConfigureNativeDisplay( | 134 void DrmThreadMessageProxy::OnConfigureNativeDisplay( |
| 132 int64_t id, | 135 int64_t id, |
| 133 const DisplayMode_Params& mode, | 136 const DisplayMode_Params& mode, |
| 134 const gfx::Point& origin) { | 137 const gfx::Point& origin) { |
| 135 DCHECK(drm_thread_->IsRunning()); | 138 DCHECK(drm_thread_->IsRunning()); |
| 136 auto callback = | 139 auto callback = |
| 137 base::Bind(&DrmThreadMessageProxy::OnConfigureNativeDisplayCallback, | 140 base::BindOnce(&DrmThreadMessageProxy::OnConfigureNativeDisplayCallback, |
| 138 weak_ptr_factory_.GetWeakPtr()); | 141 weak_ptr_factory_.GetWeakPtr()); |
| 142 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 139 drm_thread_->task_runner()->PostTask( | 143 drm_thread_->task_runner()->PostTask( |
| 140 FROM_HERE, base::Bind(&DrmThread::ConfigureNativeDisplay, | 144 FROM_HERE, base::BindOnce(&DrmThread::ConfigureNativeDisplay, |
| 141 base::Unretained(drm_thread_), id, mode, origin, | 145 base::Unretained(drm_thread_), id, mode, origin, |
| 142 CreateSafeCallback(callback))); | 146 std::move(safe_callback))); |
| 143 } | 147 } |
| 144 | 148 |
| 145 void DrmThreadMessageProxy::OnDisableNativeDisplay(int64_t id) { | 149 void DrmThreadMessageProxy::OnDisableNativeDisplay(int64_t id) { |
| 146 DCHECK(drm_thread_->IsRunning()); | 150 DCHECK(drm_thread_->IsRunning()); |
| 147 auto callback = | 151 auto callback = |
| 148 base::Bind(&DrmThreadMessageProxy::OnDisableNativeDisplayCallback, | 152 base::BindOnce(&DrmThreadMessageProxy::OnDisableNativeDisplayCallback, |
| 149 weak_ptr_factory_.GetWeakPtr()); | 153 weak_ptr_factory_.GetWeakPtr()); |
| 154 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 150 drm_thread_->task_runner()->PostTask( | 155 drm_thread_->task_runner()->PostTask( |
| 151 FROM_HERE, base::Bind(&DrmThread::DisableNativeDisplay, | 156 FROM_HERE, base::BindOnce(&DrmThread::DisableNativeDisplay, |
| 152 base::Unretained(drm_thread_), id, | 157 base::Unretained(drm_thread_), id, |
| 153 CreateSafeCallback(callback))); | 158 std::move(safe_callback))); |
| 154 } | 159 } |
| 155 | 160 |
| 156 void DrmThreadMessageProxy::OnTakeDisplayControl() { | 161 void DrmThreadMessageProxy::OnTakeDisplayControl() { |
| 157 DCHECK(drm_thread_->IsRunning()); | 162 DCHECK(drm_thread_->IsRunning()); |
| 158 auto callback = | 163 auto callback = |
| 159 base::Bind(&DrmThreadMessageProxy::OnTakeDisplayControlCallback, | 164 base::BindOnce(&DrmThreadMessageProxy::OnTakeDisplayControlCallback, |
| 160 weak_ptr_factory_.GetWeakPtr()); | 165 weak_ptr_factory_.GetWeakPtr()); |
| 166 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 161 drm_thread_->task_runner()->PostTask( | 167 drm_thread_->task_runner()->PostTask( |
| 162 FROM_HERE, | 168 FROM_HERE, |
| 163 base::Bind(&DrmThread::TakeDisplayControl, base::Unretained(drm_thread_), | 169 base::BindOnce(&DrmThread::TakeDisplayControl, |
| 164 CreateSafeCallback(callback))); | 170 base::Unretained(drm_thread_), std::move(safe_callback))); |
| 165 } | 171 } |
| 166 | 172 |
| 167 void DrmThreadMessageProxy::OnRelinquishDisplayControl() { | 173 void DrmThreadMessageProxy::OnRelinquishDisplayControl() { |
| 168 DCHECK(drm_thread_->IsRunning()); | 174 DCHECK(drm_thread_->IsRunning()); |
| 169 auto callback = | 175 auto callback = |
| 170 base::Bind(&DrmThreadMessageProxy::OnRelinquishDisplayControlCallback, | 176 base::BindOnce(&DrmThreadMessageProxy::OnRelinquishDisplayControlCallback, |
| 171 weak_ptr_factory_.GetWeakPtr()); | 177 weak_ptr_factory_.GetWeakPtr()); |
| 178 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 172 drm_thread_->task_runner()->PostTask( | 179 drm_thread_->task_runner()->PostTask( |
| 173 FROM_HERE, | 180 FROM_HERE, |
| 174 base::Bind(&DrmThread::RelinquishDisplayControl, | 181 base::BindOnce(&DrmThread::RelinquishDisplayControl, |
| 175 base::Unretained(drm_thread_), CreateSafeCallback(callback))); | 182 base::Unretained(drm_thread_), std::move(safe_callback))); |
| 176 } | 183 } |
| 177 | 184 |
| 178 void DrmThreadMessageProxy::OnAddGraphicsDevice( | 185 void DrmThreadMessageProxy::OnAddGraphicsDevice( |
| 179 const base::FilePath& path, | 186 const base::FilePath& path, |
| 180 const base::FileDescriptor& fd) { | 187 const base::FileDescriptor& fd) { |
| 181 DCHECK(drm_thread_->IsRunning()); | 188 DCHECK(drm_thread_->IsRunning()); |
| 182 drm_thread_->task_runner()->PostTask( | 189 drm_thread_->task_runner()->PostTask( |
| 183 FROM_HERE, base::Bind(&DrmThread::AddGraphicsDevice, | 190 FROM_HERE, base::Bind(&DrmThread::AddGraphicsDevice, |
| 184 base::Unretained(drm_thread_), path, fd)); | 191 base::Unretained(drm_thread_), path, fd)); |
| 185 } | 192 } |
| 186 | 193 |
| 187 void DrmThreadMessageProxy::OnRemoveGraphicsDevice(const base::FilePath& path) { | 194 void DrmThreadMessageProxy::OnRemoveGraphicsDevice(const base::FilePath& path) { |
| 188 DCHECK(drm_thread_->IsRunning()); | 195 DCHECK(drm_thread_->IsRunning()); |
| 189 drm_thread_->task_runner()->PostTask( | 196 drm_thread_->task_runner()->PostTask( |
| 190 FROM_HERE, base::Bind(&DrmThread::RemoveGraphicsDevice, | 197 FROM_HERE, base::Bind(&DrmThread::RemoveGraphicsDevice, |
| 191 base::Unretained(drm_thread_), path)); | 198 base::Unretained(drm_thread_), path)); |
| 192 } | 199 } |
| 193 | 200 |
| 194 void DrmThreadMessageProxy::OnGetHDCPState(int64_t display_id) { | 201 void DrmThreadMessageProxy::OnGetHDCPState(int64_t display_id) { |
| 195 DCHECK(drm_thread_->IsRunning()); | 202 DCHECK(drm_thread_->IsRunning()); |
| 196 auto callback = base::Bind(&DrmThreadMessageProxy::OnGetHDCPStateCallback, | 203 auto callback = base::BindOnce(&DrmThreadMessageProxy::OnGetHDCPStateCallback, |
| 197 weak_ptr_factory_.GetWeakPtr()); | 204 weak_ptr_factory_.GetWeakPtr()); |
| 205 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 198 drm_thread_->task_runner()->PostTask( | 206 drm_thread_->task_runner()->PostTask( |
| 199 FROM_HERE, | 207 FROM_HERE, |
| 200 base::Bind(&DrmThread::GetHDCPState, base::Unretained(drm_thread_), | 208 base::BindOnce(&DrmThread::GetHDCPState, base::Unretained(drm_thread_), |
| 201 display_id, CreateSafeCallback(callback))); | 209 display_id, std::move(safe_callback))); |
| 202 } | 210 } |
| 203 | 211 |
| 204 void DrmThreadMessageProxy::OnSetHDCPState(int64_t display_id, | 212 void DrmThreadMessageProxy::OnSetHDCPState(int64_t display_id, |
| 205 display::HDCPState state) { | 213 display::HDCPState state) { |
| 206 DCHECK(drm_thread_->IsRunning()); | 214 DCHECK(drm_thread_->IsRunning()); |
| 207 auto callback = base::Bind(&DrmThreadMessageProxy::OnSetHDCPStateCallback, | 215 auto callback = base::BindOnce(&DrmThreadMessageProxy::OnSetHDCPStateCallback, |
| 208 weak_ptr_factory_.GetWeakPtr()); | 216 weak_ptr_factory_.GetWeakPtr()); |
| 217 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 209 drm_thread_->task_runner()->PostTask( | 218 drm_thread_->task_runner()->PostTask( |
| 210 FROM_HERE, | 219 FROM_HERE, |
| 211 base::Bind(&DrmThread::SetHDCPState, base::Unretained(drm_thread_), | 220 base::BindOnce(&DrmThread::SetHDCPState, base::Unretained(drm_thread_), |
| 212 display_id, state, CreateSafeCallback(callback))); | 221 display_id, state, std::move(safe_callback))); |
| 213 } | 222 } |
| 214 | 223 |
| 215 void DrmThreadMessageProxy::OnSetColorCorrection( | 224 void DrmThreadMessageProxy::OnSetColorCorrection( |
| 216 int64_t id, | 225 int64_t id, |
| 217 const std::vector<display::GammaRampRGBEntry>& degamma_lut, | 226 const std::vector<display::GammaRampRGBEntry>& degamma_lut, |
| 218 const std::vector<display::GammaRampRGBEntry>& gamma_lut, | 227 const std::vector<display::GammaRampRGBEntry>& gamma_lut, |
| 219 const std::vector<float>& correction_matrix) { | 228 const std::vector<float>& correction_matrix) { |
| 220 DCHECK(drm_thread_->IsRunning()); | 229 DCHECK(drm_thread_->IsRunning()); |
| 221 drm_thread_->task_runner()->PostTask( | 230 drm_thread_->task_runner()->PostTask( |
| 222 FROM_HERE, | 231 FROM_HERE, |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 display::HDCPState state) const { | 270 display::HDCPState state) const { |
| 262 sender_->Send(new OzoneHostMsg_HDCPStateReceived(display_id, success, state)); | 271 sender_->Send(new OzoneHostMsg_HDCPStateReceived(display_id, success, state)); |
| 263 } | 272 } |
| 264 | 273 |
| 265 void DrmThreadMessageProxy::OnSetHDCPStateCallback(int64_t display_id, | 274 void DrmThreadMessageProxy::OnSetHDCPStateCallback(int64_t display_id, |
| 266 bool success) const { | 275 bool success) const { |
| 267 sender_->Send(new OzoneHostMsg_HDCPStateUpdated(display_id, success)); | 276 sender_->Send(new OzoneHostMsg_HDCPStateUpdated(display_id, success)); |
| 268 } | 277 } |
| 269 | 278 |
| 270 } // namespace ui | 279 } // namespace ui |
| OLD | NEW |