#include "third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.h"
#include <memory>
#include <utility>
#include "base/functional/callback_helpers.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/public/platform/web_set_sink_id_callbacks.h"
#include "third_party/blink/public/web/web_local_frame_client.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
#include "third_party/blink/renderer/platform/bindings/script_state.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/heap/persistent.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
namespace {
DOMException* ToException(WebSetSinkIdError error) { … }
class SetSinkIdResolver : public GarbageCollected<SetSinkIdResolver> { … };
SetSinkIdResolver::SetSinkIdResolver(
ScriptPromiseResolver<IDLUndefined>* resolver,
HTMLMediaElement& element,
const String& sink_id)
: … { … }
void SetSinkIdResolver::StartAsync() { … }
void SetSinkIdResolver::Start() { … }
void SetSinkIdResolver::DoSetSinkId() { … }
void SetSinkIdResolver::OnSetSinkIdComplete(
std::optional<WebSetSinkIdError> error) { … }
void SetSinkIdResolver::Trace(Visitor* visitor) const { … }
}
HTMLMediaElementAudioOutputDevice::HTMLMediaElementAudioOutputDevice(
HTMLMediaElement& element)
: … { … }
HTMLMediaElementAudioOutputDevice& HTMLMediaElementAudioOutputDevice::From(
HTMLMediaElement& element) { … }
String HTMLMediaElementAudioOutputDevice::sinkId(HTMLMediaElement& element) { … }
void HTMLMediaElementAudioOutputDevice::setSinkId(const String& sink_id) { … }
ScriptPromise<IDLUndefined> HTMLMediaElementAudioOutputDevice::setSinkId(
ScriptState* script_state,
HTMLMediaElement& element,
const String& sink_id) { … }
void HTMLMediaElementAudioOutputDevice::SetSinkId(const String& sink_id) { … }
void HTMLMediaElementAudioOutputDevice::Trace(Visitor* visitor) const { … }
}