Commit 340c9108 authored by tzik's avatar tzik Committed by Commit Bot

Use media::BindToCurrentLoop on device_media_to_mojo_adapter

media::BindToCurrentLoop used to be unable to handle move only type, so
its user needed to make custom ones, which are no longer needed since
m::BTCL can handle move-only types after http://crrev.com/2b817313110d5178.

Change-Id: I6287a3ac8f29a15d9d915a2b3b74e6da6de49f9b
Reviewed-on: https://chromium-review.googlesource.com/567614
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: default avatarMiguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485885}
parent 865d5d29
......@@ -22,14 +22,6 @@ namespace content {
namespace {
void RunGetPhotoStateCallbackOnUIThread(
const ImageCaptureImpl::GetPhotoStateCallback& callback,
media::mojom::PhotoStatePtr capabilities) {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(callback, base::Passed(&capabilities)));
}
void RunFailedGetPhotoStateCallback(
ImageCaptureImpl::GetPhotoStateCallback cb) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
......@@ -48,26 +40,11 @@ void RunFailedGetPhotoStateCallback(
cb.Run(std::move(empty_capabilities));
}
void RunSetOptionsCallbackOnUIThread(
const ImageCaptureImpl::SetOptionsCallback& callback,
bool success) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
base::Bind(callback, success));
}
void RunFailedSetOptionsCallback(ImageCaptureImpl::SetOptionsCallback cb) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
cb.Run(false);
}
void RunTakePhotoCallbackOnUIThread(
const ImageCaptureImpl::TakePhotoCallback& callback,
media::mojom::BlobPtr blob) {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(callback, base::Passed(std::move(blob))));
}
void RunFailedTakePhotoCallback(ImageCaptureImpl::TakePhotoCallback cb) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
cb.Run(media::mojom::Blob::New());
......@@ -147,7 +124,7 @@ void ImageCaptureImpl::GetPhotoState(const std::string& source_id,
DCHECK_CURRENTLY_ON(BrowserThread::UI);
media::ScopedResultCallback<GetPhotoStateCallback> scoped_callback(
base::Bind(&RunGetPhotoStateCallbackOnUIThread, callback),
media::BindToCurrentLoop(callback),
media::BindToCurrentLoop(base::Bind(&RunFailedGetPhotoStateCallback)));
BrowserThread::PostTask(
......@@ -163,7 +140,7 @@ void ImageCaptureImpl::SetOptions(const std::string& source_id,
DCHECK_CURRENTLY_ON(BrowserThread::UI);
media::ScopedResultCallback<SetOptionsCallback> scoped_callback(
base::Bind(&RunSetOptionsCallbackOnUIThread, callback),
media::BindToCurrentLoop(callback),
media::BindToCurrentLoop(base::Bind(&RunFailedSetOptionsCallback)));
BrowserThread::PostTask(
......@@ -178,7 +155,7 @@ void ImageCaptureImpl::TakePhoto(const std::string& source_id,
DCHECK_CURRENTLY_ON(BrowserThread::UI);
media::ScopedResultCallback<TakePhotoCallback> scoped_callback(
base::Bind(&RunTakePhotoCallbackOnUIThread, callback),
media::BindToCurrentLoop(callback),
media::BindToCurrentLoop(base::Bind(&RunFailedTakePhotoCallback)));
BrowserThread::PostTask(
......
......@@ -19,13 +19,6 @@ namespace {
// those frames get dropped.
static const int kMaxBufferCount = 3;
void RunSuccessfulGetPhotoStateCallback(
video_capture::mojom::Device::GetPhotoStateCallback callback,
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
media::mojom::PhotoStatePtr result) {
task_runner->PostTask(FROM_HERE, base::Bind(callback, base::Passed(&result)));
}
void RunFailedGetPhotoStateCallback(
base::Callback<void(media::mojom::PhotoStatePtr)> cb) {
cb.Run(nullptr);
......@@ -35,13 +28,6 @@ void RunFailedSetOptionsCallback(base::Callback<void(bool)> cb) {
cb.Run(false);
}
void RunSuccessfulTakePhotoCallback(
video_capture::mojom::Device::TakePhotoCallback callback,
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
media::mojom::BlobPtr blob) {
task_runner->PostTask(FROM_HERE, base::Bind(callback, base::Passed(&blob)));
}
void RunFailedTakePhotoCallback(
base::Callback<void(media::mojom::BlobPtr blob)> cb) {
cb.Run(nullptr);
......@@ -129,10 +115,7 @@ void DeviceMediaToMojoAdapter::Resume() {
void DeviceMediaToMojoAdapter::GetPhotoState(
const GetPhotoStateCallback& callback) {
media::VideoCaptureDevice::GetPhotoStateCallback scoped_callback(
// Cannot use BindToCurrentLoop() here, because it does not support
// callbacks with unbound move-only parameters.
base::Bind(&RunSuccessfulGetPhotoStateCallback, std::move(callback),
base::ThreadTaskRunnerHandle::Get()),
media::BindToCurrentLoop(callback),
media::BindToCurrentLoop(base::Bind(&RunFailedGetPhotoStateCallback)));
device_->GetPhotoState(std::move(scoped_callback));
}
......@@ -150,10 +133,7 @@ void DeviceMediaToMojoAdapter::SetPhotoOptions(
void DeviceMediaToMojoAdapter::TakePhoto(const TakePhotoCallback& callback) {
media::ScopedResultCallback<media::mojom::ImageCapture::TakePhotoCallback>
scoped_callback(
// Cannot use BindToCurrentLoop() here, because it does not support
// callbacks with unbound move-only parameters.
base::Bind(&RunSuccessfulTakePhotoCallback, std::move(callback),
base::ThreadTaskRunnerHandle::Get()),
media::BindToCurrentLoop(callback),
media::BindToCurrentLoop(base::Bind(&RunFailedTakePhotoCallback)));
device_->TakePhoto(std::move(scoped_callback));
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment