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

Unified Diff: media/capture/video/linux/video_capture_device_chromeos.cc

Issue 2143903003: [WIP] Move media/capture to device/capture (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: media/capture/video/linux/video_capture_device_chromeos.cc
diff --git a/media/capture/video/linux/video_capture_device_chromeos.cc b/media/capture/video/linux/video_capture_device_chromeos.cc
deleted file mode 100644
index 4685302af6a2cdff4bf21ac49e1b8ed9f4dac3b5..0000000000000000000000000000000000000000
--- a/media/capture/video/linux/video_capture_device_chromeos.cc
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "media/capture/video/linux/video_capture_device_chromeos.h"
-
-#include <stdint.h>
-
-#include "base/bind.h"
-#include "base/macros.h"
-#include "base/memory/ref_counted.h"
-#include "base/single_thread_task_runner.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "ui/display/display.h"
-#include "ui/display/display_observer.h"
-#include "ui/display/screen.h"
-
-namespace media {
-
-// This is a delegate class used to transfer Display change events from the UI
-// thread to the media thread.
-class VideoCaptureDeviceChromeOS::ScreenObserverDelegate
- : public display::DisplayObserver,
- public base::RefCountedThreadSafe<ScreenObserverDelegate> {
- public:
- ScreenObserverDelegate(
- VideoCaptureDeviceChromeOS* capture_device,
- scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
- : capture_device_(capture_device),
- ui_task_runner_(ui_task_runner),
- capture_task_runner_(base::ThreadTaskRunnerHandle::Get()) {
- ui_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&ScreenObserverDelegate::AddObserverOnUIThread, this));
- }
-
- void RemoveObserver() {
- DCHECK(capture_task_runner_->BelongsToCurrentThread());
- capture_device_ = NULL;
- ui_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&ScreenObserverDelegate::RemoveObserverOnUIThread, this));
- }
-
- private:
- friend class base::RefCountedThreadSafe<ScreenObserverDelegate>;
-
- ~ScreenObserverDelegate() override { DCHECK(!capture_device_); }
-
- void OnDisplayAdded(const display::Display& /*new_display*/) override {}
- void OnDisplayRemoved(const display::Display& /*old_display*/) override {}
- void OnDisplayMetricsChanged(const display::Display& display,
- uint32_t metrics) override {
- DCHECK(ui_task_runner_->BelongsToCurrentThread());
- if (!(metrics & DISPLAY_METRIC_ROTATION))
- return;
- SendDisplayRotation(display);
- }
-
- void AddObserverOnUIThread() {
- DCHECK(ui_task_runner_->BelongsToCurrentThread());
- display::Screen* screen = display::Screen::GetScreen();
- if (screen) {
- screen->AddObserver(this);
- SendDisplayRotation(screen->GetPrimaryDisplay());
- }
- }
-
- void RemoveObserverOnUIThread() {
- DCHECK(ui_task_runner_->BelongsToCurrentThread());
- display::Screen* screen = display::Screen::GetScreen();
- if (screen)
- screen->RemoveObserver(this);
- }
-
- // Post the screen rotation change from the UI thread to capture thread
- void SendDisplayRotation(const display::Display& display) {
- DCHECK(ui_task_runner_->BelongsToCurrentThread());
- capture_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&ScreenObserverDelegate::SendDisplayRotationOnCaptureThread,
- this, display));
- }
-
- void SendDisplayRotationOnCaptureThread(const display::Display& display) {
- DCHECK(capture_task_runner_->BelongsToCurrentThread());
- if (capture_device_)
- capture_device_->SetDisplayRotation(display);
- }
-
- VideoCaptureDeviceChromeOS* capture_device_;
- scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
- scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner_;
- DISALLOW_IMPLICIT_CONSTRUCTORS(ScreenObserverDelegate);
-};
-
-VideoCaptureDeviceChromeOS::VideoCaptureDeviceChromeOS(
- scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
- const Name& device_name)
- : VideoCaptureDeviceLinux(device_name),
- screen_observer_delegate_(
- new ScreenObserverDelegate(this, ui_task_runner)) {
-}
-
-VideoCaptureDeviceChromeOS::~VideoCaptureDeviceChromeOS() {
- screen_observer_delegate_->RemoveObserver();
-}
-
-void VideoCaptureDeviceChromeOS::SetDisplayRotation(
- const display::Display& display) {
- if (display.IsInternal())
- SetRotation(display.rotation() * 90);
-}
-
-} // namespace media

Powered by Google App Engine
This is Rietveld 408576698