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

Unified Diff: media/remoting/remoting_renderer_controller.cc

Issue 2556333002: Detect change on video/viewport intersection when rendered remotely (Closed)
Patch Set: Fix nits. Created 4 years 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/remoting/remoting_renderer_controller.cc
diff --git a/media/remoting/remoting_renderer_controller.cc b/media/remoting/remoting_renderer_controller.cc
index f1abc93d3a6b4531a8c22f7fdf8fae7f46e0fd76..40506d8251839278c751f63123a2e2ee45a1cd8f 100644
--- a/media/remoting/remoting_renderer_controller.cc
+++ b/media/remoting/remoting_renderer_controller.cc
@@ -43,9 +43,29 @@ void RemotingRendererController::OnSessionStateChanged() {
DCHECK(thread_checker_.CalledOnValidThread());
VLOG(1) << "OnSessionStateChanged: " << remoting_source_->state();
+ if (!sink_available_changed_cb_.is_null())
+ sink_available_changed_cb_.Run(IsRemoteSinkAvailable());
+
UpdateAndMaybeSwitch();
}
+bool RemotingRendererController::IsRemoteSinkAvailable() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+
+ switch (remoting_source_->state()) {
+ case SESSION_CAN_START:
+ case SESSION_STARTING:
+ case SESSION_STARTED:
+ return true;
+ case SESSION_UNAVAILABLE:
+ case SESSION_STOPPING:
+ case SESSION_PERMANENTLY_STOPPED:
+ return false;
+ }
+
+ return false; // To suppress compile warning.
+}
+
void RemotingRendererController::OnEnteredFullscreen() {
DCHECK(thread_checker_.CalledOnValidThread());
@@ -96,6 +116,15 @@ void RemotingRendererController::SetSwitchRendererCallback(
UpdateAndMaybeSwitch();
}
+void RemotingRendererController::SetRemoteSinkAvailableChangedCallback(
+ const base::Callback<void(bool)>& cb) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+
+ sink_available_changed_cb_ = cb;
+ if (!sink_available_changed_cb_.is_null())
+ sink_available_changed_cb_.Run(IsRemoteSinkAvailable());
+}
+
base::WeakPtr<remoting::RpcBroker> RemotingRendererController::GetRpcBroker()
const {
DCHECK(thread_checker_.CalledOnValidThread());
« no previous file with comments | « media/remoting/remoting_renderer_controller.h ('k') | third_party/WebKit/Source/core/html/HTMLMediaElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698