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

Unified Diff: webrtc/pc/rtpsender.h

Issue 2666853002: Move DTMF sender to RtpSender (as opposed to WebRtcSession). (Closed)
Patch Set: Merge with master Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/pc/peerconnection.cc ('k') | webrtc/pc/rtpsender.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/pc/rtpsender.h
diff --git a/webrtc/pc/rtpsender.h b/webrtc/pc/rtpsender.h
index ed244b416a7226e77cc5d340c8557c4c77effb40..0322399d5e071bd17e369075395b8839ef09da6b 100644
--- a/webrtc/pc/rtpsender.h
+++ b/webrtc/pc/rtpsender.h
@@ -24,6 +24,7 @@
#include "webrtc/base/criticalsection.h"
#include "webrtc/media/base/audiosource.h"
#include "webrtc/pc/channel.h"
+#include "webrtc/pc/dtmfsender.h"
#include "webrtc/pc/statscollector.h"
namespace webrtc {
@@ -68,7 +69,8 @@ class LocalAudioSinkAdapter : public AudioTrackSinkInterface,
rtc::CriticalSection lock_;
};
-class AudioRtpSender : public ObserverInterface,
+class AudioRtpSender : public DtmfProviderInterface,
+ public ObserverInterface,
public rtc::RefCountedObject<RtpSenderInternal> {
public:
// StatsCollector provided so that Add/RemoveLocalAudioTrack can be called
@@ -91,10 +93,15 @@ class AudioRtpSender : public ObserverInterface,
virtual ~AudioRtpSender();
- // ObserverInterface implementation
+ // DtmfSenderProvider implementation.
+ bool CanInsertDtmf() override;
+ bool InsertDtmf(int code, int duration) override;
+ sigslot::signal0<>* GetOnDestroyedSignal() override;
+
+ // ObserverInterface implementation.
void OnChanged() override;
- // RtpSenderInterface implementation
+ // RtpSenderInterface implementation.
bool SetTrack(MediaStreamTrackInterface* track) override;
rtc::scoped_refptr<MediaStreamTrackInterface> track() const override {
return track_;
@@ -116,6 +123,8 @@ class AudioRtpSender : public ObserverInterface,
RtpParameters GetParameters() const override;
bool SetParameters(const RtpParameters& parameters) override;
+ rtc::scoped_refptr<DtmfSenderInterface> GetDtmfSender() const override;
+
// RtpSenderInternal implementation.
void SetSsrc(uint32_t ssrc) override;
@@ -140,11 +149,16 @@ class AudioRtpSender : public ObserverInterface,
// Helper function to call SetAudioSend with "stop sending" parameters.
void ClearAudioSend();
+ void CreateDtmfSender();
+
+ sigslot::signal0<> SignalDestroyed;
+
std::string id_;
std::string stream_id_;
cricket::VoiceChannel* channel_ = nullptr;
StatsCollector* stats_;
rtc::scoped_refptr<AudioTrackInterface> track_;
+ rtc::scoped_refptr<DtmfSenderInterface> dtmf_sender_proxy_;
uint32_t ssrc_ = 0;
bool cached_track_enabled_ = false;
bool stopped_ = false;
@@ -197,6 +211,8 @@ class VideoRtpSender : public ObserverInterface,
RtpParameters GetParameters() const override;
bool SetParameters(const RtpParameters& parameters) override;
+ rtc::scoped_refptr<DtmfSenderInterface> GetDtmfSender() const override;
+
// RtpSenderInternal implementation.
void SetSsrc(uint32_t ssrc) override;
« no previous file with comments | « webrtc/pc/peerconnection.cc ('k') | webrtc/pc/rtpsender.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698