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

Side by Side Diff: Source/modules/audio_output_devices/SetSinkIdCallbacks.cpp

Issue 1188203002: Implementation of setSinkId() for HTMLMediaElement. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add guidou as owner Created 5 years, 6 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "config.h"
6 #include "modules/audio_output_devices/SetSinkIdCallbacks.h"
7
8 #include "bindings/core/v8/ScriptPromiseResolver.h"
9 #include "modules/audio_output_devices/HTMLMediaElementAudioOutputDevice.h"
10 #include "platform/Logging.h"
11 #include "public/platform/WebSetSinkIdError.h"
12
13 namespace blink {
14
15 SetSinkIdCallbacks::SetSinkIdCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResol ver> resolver, HTMLMediaElement& element, const String& sinkId)
16 : m_resolver(resolver)
17 , m_element(element)
18 , m_sinkId(sinkId)
19 {
20 ASSERT(m_resolver);
21 WTF_LOG(Media, __FUNCTION__);
Peter Beverloo 2015/06/18 14:33:15 Did you mean to land these WTF_LOG() statements?
22 }
23
24 SetSinkIdCallbacks::~SetSinkIdCallbacks()
25 {
26 WTF_LOG(Media, __FUNCTION__);
27 }
28
29 void SetSinkIdCallbacks::onSuccess()
30 {
31 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped())
32 return;
33
34 HTMLMediaElementAudioOutputDevice& aodElement = HTMLMediaElementAudioOutputD evice::from(*m_element);
35 aodElement.setSinkId(m_sinkId);
36 m_resolver->resolve();
37 }
38
39 void SetSinkIdCallbacks::onError(WebSetSinkIdError* rawError)
40 {
41 ASSERT(rawError);
42 OwnPtr<WebSetSinkIdError> error = adoptPtr(rawError);
43 if (!m_resolver->executionContext() || m_resolver->executionContext()->activ eDOMObjectsAreStopped())
44 return;
45
46 switch (error->errorType) {
47 case WebSetSinkIdError::ErrorTypeNotFound:
48 m_resolver->reject(DOMException::create(NotFoundError, error->message));
49 break;
50 case WebSetSinkIdError::ErrorTypeSecurity:
51 m_resolver->reject(DOMException::create(SecurityError, error->message));
52 break;
53 case WebSetSinkIdError::ErrorTypeNotSupported:
54 m_resolver->reject(DOMException::create(NotSupportedError, error->messag e));
55 break;
56 case WebSetSinkIdError::ErrorTypeAbort:
57 m_resolver->reject(DOMException::create(AbortError, error->message));
58 break;
59 default:
60 ASSERT_NOT_REACHED();
61 }
62 }
63
64 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698