Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Side by Side Diff: third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp

Issue 2387303002: Image Capture Linux/CrOs, implement brightness, contrast, saturation and sharpness (Closed)
Patch Set: Explicitly initialize to empty the new fields in the Android implementation and rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "modules/imagecapture/ImageCapture.h" 5 #include "modules/imagecapture/ImageCapture.h"
6 6
7 #include "bindings/core/v8/CallbackPromiseAdapter.h" 7 #include "bindings/core/v8/CallbackPromiseAdapter.h"
8 #include "bindings/core/v8/ScriptPromiseResolver.h" 8 #include "bindings/core/v8/ScriptPromiseResolver.h"
9 #include "core/dom/DOMException.h" 9 #include "core/dom/DOMException.h"
10 #include "core/dom/ExceptionCode.h" 10 #include "core/dom/ExceptionCode.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 for (const auto& point : photoSettings.pointsOfInterest()) { 179 for (const auto& point : photoSettings.pointsOfInterest()) {
180 auto mojoPoint = media::mojom::blink::Point2D::New(); 180 auto mojoPoint = media::mojom::blink::Point2D::New();
181 mojoPoint->x = point.x(); 181 mojoPoint->x = point.x();
182 mojoPoint->y = point.y(); 182 mojoPoint->y = point.y();
183 settings->points_of_interest.append(std::move(mojoPoint)); 183 settings->points_of_interest.append(std::move(mojoPoint));
184 } 184 }
185 } 185 }
186 settings->has_color_temperature = photoSettings.hasColorTemperature(); 186 settings->has_color_temperature = photoSettings.hasColorTemperature();
187 if (settings->has_color_temperature) 187 if (settings->has_color_temperature)
188 settings->color_temperature = photoSettings.colorTemperature(); 188 settings->color_temperature = photoSettings.colorTemperature();
189 settings->has_brightness = photoSettings.hasBrightness();
190 if (settings->has_brightness)
191 settings->brightness = photoSettings.brightness();
192 settings->has_contrast = photoSettings.hasContrast();
193 if (settings->has_contrast)
194 settings->contrast = photoSettings.contrast();
195 settings->has_saturation = photoSettings.hasSaturation();
196 if (settings->has_saturation)
197 settings->saturation = photoSettings.saturation();
198 settings->has_sharpness = photoSettings.hasSharpness();
199 if (settings->has_sharpness)
200 settings->sharpness = photoSettings.sharpness();
189 201
190 m_service->SetOptions(m_streamTrack->component()->source()->id(), 202 m_service->SetOptions(m_streamTrack->component()->source()->id(),
191 std::move(settings), 203 std::move(settings),
192 convertToBaseCallback(WTF::bind( 204 convertToBaseCallback(WTF::bind(
193 &ImageCapture::onSetOptions, wrapPersistent(this), 205 &ImageCapture::onSetOptions, wrapPersistent(this),
194 wrapPersistent(resolver)))); 206 wrapPersistent(resolver))));
195 return promise; 207 return promise;
196 } 208 }
197 209
198 ScriptPromise ImageCapture::takePhoto(ScriptState* scriptState, 210 ScriptPromise ImageCapture::takePhoto(ScriptState* scriptState,
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 capabilities->zoom->max, capabilities->zoom->min, 303 capabilities->zoom->max, capabilities->zoom->min,
292 capabilities->zoom->current); 304 capabilities->zoom->current);
293 MediaSettingsRange* exposureCompensation = MediaSettingsRange::create( 305 MediaSettingsRange* exposureCompensation = MediaSettingsRange::create(
294 capabilities->exposure_compensation->max, 306 capabilities->exposure_compensation->max,
295 capabilities->exposure_compensation->min, 307 capabilities->exposure_compensation->min,
296 capabilities->exposure_compensation->current); 308 capabilities->exposure_compensation->current);
297 MediaSettingsRange* colorTemperature = 309 MediaSettingsRange* colorTemperature =
298 MediaSettingsRange::create(capabilities->color_temperature->max, 310 MediaSettingsRange::create(capabilities->color_temperature->max,
299 capabilities->color_temperature->min, 311 capabilities->color_temperature->min,
300 capabilities->color_temperature->current); 312 capabilities->color_temperature->current);
313 MediaSettingsRange* brightness = MediaSettingsRange::create(
314 capabilities->brightness->max, capabilities->brightness->min,
315 capabilities->brightness->current);
316 MediaSettingsRange* contrast = MediaSettingsRange::create(
317 capabilities->contrast->max, capabilities->contrast->min,
318 capabilities->contrast->current);
319 MediaSettingsRange* saturation = MediaSettingsRange::create(
320 capabilities->saturation->max, capabilities->saturation->min,
321 capabilities->saturation->current);
322 MediaSettingsRange* sharpness = MediaSettingsRange::create(
323 capabilities->sharpness->max, capabilities->sharpness->min,
324 capabilities->sharpness->current);
301 PhotoCapabilities* caps = PhotoCapabilities::create(); 325 PhotoCapabilities* caps = PhotoCapabilities::create();
302 caps->setIso(iso); 326 caps->setIso(iso);
303 caps->setImageHeight(height); 327 caps->setImageHeight(height);
304 caps->setImageWidth(width); 328 caps->setImageWidth(width);
305 caps->setZoom(zoom); 329 caps->setZoom(zoom);
306 caps->setFocusMode(capabilities->focus_mode); 330 caps->setFocusMode(capabilities->focus_mode);
307 caps->setExposureMode(capabilities->exposure_mode); 331 caps->setExposureMode(capabilities->exposure_mode);
308 caps->setExposureCompensation(exposureCompensation); 332 caps->setExposureCompensation(exposureCompensation);
309 caps->setWhiteBalanceMode(capabilities->white_balance_mode); 333 caps->setWhiteBalanceMode(capabilities->white_balance_mode);
310 caps->setFillLightMode(capabilities->fill_light_mode); 334 caps->setFillLightMode(capabilities->fill_light_mode);
311 caps->setRedEyeReduction(capabilities->red_eye_reduction); 335 caps->setRedEyeReduction(capabilities->red_eye_reduction);
312 caps->setColorTemperature(colorTemperature); 336 caps->setColorTemperature(colorTemperature);
337 caps->setBrightness(brightness);
338 caps->setContrast(contrast);
339 caps->setSaturation(saturation);
340 caps->setSharpness(sharpness);
313 resolver->resolve(caps); 341 resolver->resolve(caps);
314 } 342 }
315 m_serviceRequests.remove(resolver); 343 m_serviceRequests.remove(resolver);
316 } 344 }
317 345
318 void ImageCapture::onSetOptions(ScriptPromiseResolver* resolver, bool result) { 346 void ImageCapture::onSetOptions(ScriptPromiseResolver* resolver, bool result) {
319 if (!m_serviceRequests.contains(resolver)) 347 if (!m_serviceRequests.contains(resolver))
320 return; 348 return;
321 349
322 if (result) 350 if (result)
(...skipping 25 matching lines...) Expand all
348 } 376 }
349 377
350 DEFINE_TRACE(ImageCapture) { 378 DEFINE_TRACE(ImageCapture) {
351 visitor->trace(m_streamTrack); 379 visitor->trace(m_streamTrack);
352 visitor->trace(m_serviceRequests); 380 visitor->trace(m_serviceRequests);
353 EventTargetWithInlineData::trace(visitor); 381 EventTargetWithInlineData::trace(visitor);
354 ContextLifecycleObserver::trace(visitor); 382 ContextLifecycleObserver::trace(visitor);
355 } 383 }
356 384
357 } // namespace blink 385 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698