blob: 00ff93fc81be4103dfcc8b299dd4a4b715a6fbcc [file] [log] [blame]
// Copyright 2017 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 "modules/peerconnection/RTCTrackEvent.h"
#include "modules/mediastream/MediaStream.h"
#include "modules/mediastream/MediaStreamTrack.h"
#include "modules/peerconnection/RTCRtpReceiver.h"
#include "modules/peerconnection/RTCTrackEventInit.h"
namespace blink {
RTCTrackEvent* RTCTrackEvent::Create(const AtomicString& type,
const RTCTrackEventInit& eventInitDict) {
return new RTCTrackEvent(type, eventInitDict);
}
RTCTrackEvent::RTCTrackEvent(const AtomicString& type,
const RTCTrackEventInit& eventInitDict)
: Event(type, eventInitDict),
receiver_(eventInitDict.receiver()),
track_(eventInitDict.track()),
streams_(eventInitDict.streams()) {
DCHECK(receiver_);
DCHECK(track_);
}
RTCTrackEvent::RTCTrackEvent(RTCRtpReceiver* receiver,
MediaStreamTrack* track,
const HeapVector<Member<MediaStream>>& streams)
: Event(EventTypeNames::track, false, false),
receiver_(receiver),
track_(track),
streams_(streams) {
DCHECK(receiver_);
DCHECK(track_);
}
RTCRtpReceiver* RTCTrackEvent::receiver() const {
return receiver_;
}
MediaStreamTrack* RTCTrackEvent::track() const {
return track_;
}
HeapVector<Member<MediaStream>> RTCTrackEvent::streams() const {
return streams_;
}
void RTCTrackEvent::Trace(blink::Visitor* visitor) {
visitor->Trace(receiver_);
visitor->Trace(track_);
visitor->Trace(streams_);
Event::Trace(visitor);
}
} // namespace blink