diff options
Diffstat (limited to 'Source/WebCore/Modules/mediastream/RTCDTMFSender.h')
-rw-r--r-- | Source/WebCore/Modules/mediastream/RTCDTMFSender.h | 69 |
1 files changed, 27 insertions, 42 deletions
diff --git a/Source/WebCore/Modules/mediastream/RTCDTMFSender.h b/Source/WebCore/Modules/mediastream/RTCDTMFSender.h index 0e6b49d32..c67b3a164 100644 --- a/Source/WebCore/Modules/mediastream/RTCDTMFSender.h +++ b/Source/WebCore/Modules/mediastream/RTCDTMFSender.h @@ -23,78 +23,63 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef RTCDTMFSender_h -#define RTCDTMFSender_h +#pragma once -#if ENABLE(MEDIA_STREAM) +#if ENABLE(WEB_RTC) #include "ActiveDOMObject.h" #include "EventTarget.h" -#include "RTCDTMFSenderHandlerClient.h" +#include "ExceptionOr.h" #include "ScriptWrappable.h" #include "Timer.h" -#include <wtf/RefCounted.h> namespace WebCore { class MediaStreamTrack; -class RTCPeerConnectionHandler; -class RTCDTMFSenderHandler; -class RTCDTMFSender final : public RefCounted<RTCDTMFSender>, public ScriptWrappable, public EventTargetWithInlineData, public RTCDTMFSenderHandlerClient, public ActiveDOMObject { +class RTCDTMFSender final : public RefCounted<RTCDTMFSender>, public EventTargetWithInlineData, public ActiveDOMObject { public: - static PassRefPtr<RTCDTMFSender> create(ScriptExecutionContext*, RTCPeerConnectionHandler*, PassRefPtr<MediaStreamTrack>, ExceptionCode&); - ~RTCDTMFSender(); + virtual ~RTCDTMFSender(); bool canInsertDTMF() const; MediaStreamTrack* track() const; String toneBuffer() const; - long duration() const { return m_duration; } - long interToneGap() const { return m_interToneGap; } + int duration() const { return m_duration; } + int interToneGap() const { return m_interToneGap; } - void insertDTMF(const String& tones, ExceptionCode&); - void insertDTMF(const String& tones, long duration, ExceptionCode&); - void insertDTMF(const String& tones, long duration, long interToneGap, ExceptionCode&); + ExceptionOr<void> insertDTMF(const String& tones, std::optional<int> duration, std::optional<int> interToneGap); - DEFINE_ATTRIBUTE_EVENT_LISTENER(tonechange); + using RefCounted::ref; + using RefCounted::deref; - // EventTarget - virtual EventTargetInterface eventTargetInterface() const override { return RTCDTMFSenderEventTargetInterfaceType; } - virtual ScriptExecutionContext* scriptExecutionContext() const override { return ActiveDOMObject::scriptExecutionContext(); } - - // ActiveDOMObject - virtual void stop() override; +private: + RTCDTMFSender(ScriptExecutionContext&, RefPtr<MediaStreamTrack>&&); - using RefCounted<RTCDTMFSender>::ref; - using RefCounted<RTCDTMFSender>::deref; + void stop() final; + const char* activeDOMObjectName() const final; + bool canSuspendForDocumentSuspension() const final; -private: - RTCDTMFSender(ScriptExecutionContext*, PassRefPtr<MediaStreamTrack>, std::unique_ptr<RTCDTMFSenderHandler>); + EventTargetInterface eventTargetInterface() const final { return RTCDTMFSenderEventTargetInterfaceType; } + ScriptExecutionContext* scriptExecutionContext() const final { return ActiveDOMObject::scriptExecutionContext(); } - void scheduleDispatchEvent(PassRefPtr<Event>); - void scheduledEventTimerFired(Timer<RTCDTMFSender>*); + void refEventTarget() final { ref(); } + void derefEventTarget() final { deref(); } - // EventTarget - virtual void refEventTarget() override { ref(); } - virtual void derefEventTarget() override { deref(); } + void didPlayTone(const String&); - // RTCDTMFSenderHandlerClient - virtual void didPlayTone(const String&) override; + void scheduleDispatchEvent(Ref<Event>&&); + void scheduledEventTimerFired(); RefPtr<MediaStreamTrack> m_track; - long m_duration; - long m_interToneGap; - - std::unique_ptr<RTCDTMFSenderHandler> m_handler; + int m_duration; + int m_interToneGap; bool m_stopped; - Timer<RTCDTMFSender> m_scheduledEventTimer; - Vector<RefPtr<Event>> m_scheduledEvents; + Timer m_scheduledEventTimer; + Vector<Ref<Event>> m_scheduledEvents; }; } // namespace WebCore -#endif // ENABLE(MEDIA_STREAM) - -#endif // RTCDTMFSender_h +#endif // ENABLE(WEB_RTC) |