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

Unified Diff: webrtc/libjingle/session/media/call.h

Issue 1175243003: Remove webrtc/libjingle/{examples,session}. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/libjingle/session/constants.cc ('k') | webrtc/libjingle/session/media/call.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/libjingle/session/media/call.h
diff --git a/webrtc/libjingle/session/media/call.h b/webrtc/libjingle/session/media/call.h
deleted file mode 100644
index 48b31b6df6207383855850145c9a1b73b467b398..0000000000000000000000000000000000000000
--- a/webrtc/libjingle/session/media/call.h
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * libjingle
- * Copyright 2004 Google Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WEBRTC_LIBJINGLE_SESSION_MEDIA_CALL_H_
-#define WEBRTC_LIBJINGLE_SESSION_MEDIA_CALL_H_
-
-#include <deque>
-#include <map>
-#include <string>
-#include <vector>
-
-#include "talk/media/base/mediachannel.h"
-#include "talk/media/base/screencastid.h"
-#include "talk/media/base/streamparams.h"
-#include "talk/media/base/videocommon.h"
-#include "talk/session/media/audiomonitor.h"
-#include "talk/session/media/currentspeakermonitor.h"
-#include "talk/session/media/mediasession.h"
-#include "webrtc/base/messagequeue.h"
-#include "webrtc/libjingle/session/media/mediamessages.h"
-#include "webrtc/libjingle/session/sessionmanager.h"
-#include "webrtc/libjingle/xmpp/jid.h"
-#include "webrtc/p2p/client/socketmonitor.h"
-#include "webrtc/p2p/client/socketmonitor.h"
-
-namespace cricket {
-
-struct AudioInfo;
-class Call;
-class MediaSessionClient;
-class BaseChannel;
-class VoiceChannel;
-class VideoChannel;
-class DataChannel;
-
-// Can't typedef this easily since it's forward declared as struct elsewhere.
-struct CallOptions : public MediaSessionOptions {
-};
-
-// CurrentSpeakerMonitor used to have a dependency on Call. To remove this
-// dependency, we create AudioSourceContext. CurrentSpeakerMonitor depends on
-// AudioSourceContext.
-// AudioSourceProxy acts as a proxy so that when SignalAudioMonitor
-// in Call is triggered, SignalAudioMonitor in AudioSourceContext is triggered.
-// Likewise, when OnMediaStreamsUpdate in Call is triggered,
-// OnMediaStreamsUpdate in AudioSourceContext is triggered.
-class AudioSourceProxy: public AudioSourceContext, public sigslot::has_slots<> {
- public:
- explicit AudioSourceProxy(Call* call);
-
- private:
- void OnAudioMonitor(Call* call, const AudioInfo& info);
- void OnMediaStreamsUpdate(Call* call, cricket::Session*,
- const cricket::MediaStreams&, const cricket::MediaStreams&);
-
- Call* call_;
-};
-
-class Call : public rtc::MessageHandler, public sigslot::has_slots<> {
- public:
- explicit Call(MediaSessionClient* session_client);
- ~Call();
-
- // |initiator| can be empty.
- Session* InitiateSession(const buzz::Jid& to, const buzz::Jid& initiator,
- const CallOptions& options);
- Session* InitiateSession(const std::string& id, const buzz::Jid& to,
- const CallOptions& options);
- void AcceptSession(Session* session, const CallOptions& options);
- void RejectSession(Session* session);
- void TerminateSession(Session* session);
- void Terminate();
- bool SendViewRequest(Session* session,
- const ViewRequest& view_request);
- void SetVideoRenderer(Session* session, uint32 ssrc,
- VideoRenderer* renderer);
- void StartConnectionMonitor(Session* session, int cms);
- void StopConnectionMonitor(Session* session);
- void StartAudioMonitor(Session* session, int cms);
- void StopAudioMonitor(Session* session);
- bool IsAudioMonitorRunning(Session* session);
- void StartSpeakerMonitor(Session* session);
- void StopSpeakerMonitor(Session* session);
- void Mute(bool mute);
- void MuteVideo(bool mute);
- bool SendData(Session* session,
- const SendDataParams& params,
- const rtc::Buffer& payload,
- SendDataResult* result);
- void PressDTMF(int event);
- bool StartScreencast(Session* session,
- const std::string& stream_name, uint32 ssrc,
- const ScreencastId& screenid, int fps);
- bool StopScreencast(Session* session,
- const std::string& stream_name, uint32 ssrc);
-
- std::vector<Session*> sessions();
- uint32 id();
- bool has_video() const { return has_video_; }
- bool has_data() const { return has_data_; }
- bool muted() const { return muted_; }
- bool video() const { return has_video_; }
- bool secure() const;
- bool video_muted() const { return video_muted_; }
- const std::vector<StreamParams>* GetDataRecvStreams(Session* session) const {
- MediaStreams* recv_streams = GetMediaStreams(session);
- return recv_streams ? &recv_streams->data() : NULL;
- }
- const std::vector<StreamParams>* GetVideoRecvStreams(Session* session) const {
- MediaStreams* recv_streams = GetMediaStreams(session);
- return recv_streams ? &recv_streams->video() : NULL;
- }
- const std::vector<StreamParams>* GetAudioRecvStreams(Session* session) const {
- MediaStreams* recv_streams = GetMediaStreams(session);
- return recv_streams ? &recv_streams->audio() : NULL;
- }
- VoiceChannel* GetVoiceChannel(Session* session) const;
- VideoChannel* GetVideoChannel(Session* session) const;
- DataChannel* GetDataChannel(Session* session) const;
- // Public just for unit tests
- VideoContentDescription* CreateVideoStreamUpdate(const StreamParams& stream);
- // Takes ownership of video.
- void SendVideoStreamUpdate(Session* session, VideoContentDescription* video);
-
- // Setting this to false will cause the call to have a longer timeout and
- // for the SignalSetupToCallVoicemail to never fire.
- void set_send_to_voicemail(bool send_to_voicemail) {
- send_to_voicemail_ = send_to_voicemail;
- }
- bool send_to_voicemail() { return send_to_voicemail_; }
- const VoiceMediaInfo& last_voice_media_info() const {
- return last_voice_media_info_;
- }
-
- // Sets a flag on the chatapp that will redirect the call to voicemail once
- // the call has been terminated
- sigslot::signal0<> SignalSetupToCallVoicemail;
- sigslot::signal2<Call*, Session*> SignalAddSession;
- sigslot::signal2<Call*, Session*> SignalRemoveSession;
- sigslot::signal3<Call*, Session*, Session::State>
- SignalSessionState;
- sigslot::signal3<Call*, Session*, Session::Error>
- SignalSessionError;
- sigslot::signal3<Call*, Session*, const std::string &>
- SignalReceivedTerminateReason;
- sigslot::signal2<Call*, const std::vector<ConnectionInfo> &>
- SignalConnectionMonitor;
- sigslot::signal2<Call*, const VoiceMediaInfo&> SignalMediaMonitor;
- sigslot::signal2<Call*, const AudioInfo&> SignalAudioMonitor;
- // Empty nick on StreamParams means "unknown".
- // No ssrcs in StreamParams means "no current speaker".
- sigslot::signal3<Call*,
- Session*,
- const StreamParams&> SignalSpeakerMonitor;
- sigslot::signal2<Call*, const std::vector<ConnectionInfo> &>
- SignalVideoConnectionMonitor;
- sigslot::signal2<Call*, const VideoMediaInfo&> SignalVideoMediaMonitor;
- // Gives added streams and removed streams, in that order.
- sigslot::signal4<Call*,
- Session*,
- const MediaStreams&,
- const MediaStreams&> SignalMediaStreamsUpdate;
- sigslot::signal3<Call*,
- const ReceiveDataParams&,
- const rtc::Buffer&> SignalDataReceived;
-
- AudioSourceProxy* GetAudioSourceProxy();
-
- private:
- void OnMessage(rtc::Message* message);
- void OnSessionState(BaseSession* base_session, BaseSession::State state);
- void OnSessionError(BaseSession* base_session, BaseSession::Error error);
- void OnSessionInfoMessage(
- Session* session, const buzz::XmlElement* action_elem);
- void OnViewRequest(
- Session* session, const ViewRequest& view_request);
- void OnRemoteDescriptionUpdate(
- BaseSession* base_session, const ContentInfos& updated_contents);
- void OnReceivedTerminateReason(Session* session, const std::string &reason);
- void IncomingSession(Session* session, const SessionDescription* offer);
- // Returns true on success.
- bool AddSession(Session* session, const SessionDescription* offer);
- void RemoveSession(Session* session);
- void EnableChannels(bool enable);
- void EnableSessionChannels(Session* session, bool enable);
- void Join(Call* call, bool enable);
- void OnConnectionMonitor(VoiceChannel* channel,
- const std::vector<ConnectionInfo> &infos);
- void OnMediaMonitor(VoiceChannel* channel, const VoiceMediaInfo& info);
- void OnAudioMonitor(VoiceChannel* channel, const AudioInfo& info);
- void OnSpeakerMonitor(CurrentSpeakerMonitor* monitor, uint32 ssrc);
- void OnConnectionMonitor(VideoChannel* channel,
- const std::vector<ConnectionInfo> &infos);
- void OnMediaMonitor(VideoChannel* channel, const VideoMediaInfo& info);
- void OnDataReceived(DataChannel* channel,
- const ReceiveDataParams& params,
- const rtc::Buffer& payload);
- MediaStreams* GetMediaStreams(Session* session) const;
- void UpdateRemoteMediaStreams(Session* session,
- const ContentInfos& updated_contents,
- bool update_channels);
- bool UpdateVoiceChannelRemoteContent(Session* session,
- const AudioContentDescription* audio);
- bool UpdateVideoChannelRemoteContent(Session* session,
- const VideoContentDescription* video);
- bool UpdateDataChannelRemoteContent(Session* session,
- const DataContentDescription* data);
- void UpdateRecvStreams(const std::vector<StreamParams>& update_streams,
- BaseChannel* channel,
- std::vector<StreamParams>* recv_streams,
- std::vector<StreamParams>* added_streams,
- std::vector<StreamParams>* removed_streams);
- void AddRecvStreams(const std::vector<StreamParams>& added_streams,
- BaseChannel* channel,
- std::vector<StreamParams>* recv_streams);
- void AddRecvStream(const StreamParams& stream,
- BaseChannel* channel,
- std::vector<StreamParams>* recv_streams);
- void RemoveRecvStreams(const std::vector<StreamParams>& removed_streams,
- BaseChannel* channel,
- std::vector<StreamParams>* recv_streams);
- void RemoveRecvStream(const StreamParams& stream,
- BaseChannel* channel,
- std::vector<StreamParams>* recv_streams);
- void ContinuePlayDTMF();
- bool StopScreencastWithoutSendingUpdate(Session* session, uint32 ssrc);
- bool StopAllScreencastsWithoutSendingUpdate(Session* session);
- bool SessionDescriptionContainsCrypto(const SessionDescription* sdesc) const;
- Session* InternalInitiateSession(const std::string& id,
- const buzz::Jid& to,
- const std::string& initiator_name,
- const CallOptions& options);
-
- uint32 id_;
- MediaSessionClient* session_client_;
-
- struct StartedCapture {
- StartedCapture(cricket::VideoCapturer* capturer,
- const cricket::VideoFormat& format) :
- capturer(capturer),
- format(format) {
- }
- cricket::VideoCapturer* capturer;
- cricket::VideoFormat format;
- };
- typedef std::map<uint32, StartedCapture> StartedScreencastMap;
-
- struct MediaSession {
- Session* session;
- VoiceChannel* voice_channel;
- VideoChannel* video_channel;
- DataChannel* data_channel;
- MediaStreams* recv_streams;
- StartedScreencastMap started_screencasts;
- };
-
- // Create a map of media sessions, keyed off session->id().
- typedef std::map<std::string, MediaSession> MediaSessionMap;
- MediaSessionMap media_session_map_;
-
- std::map<std::string, CurrentSpeakerMonitor*> speaker_monitor_map_;
- bool has_video_;
- bool has_data_;
- bool muted_;
- bool video_muted_;
- bool send_to_voicemail_;
-
- // DTMF tones have to be queued up so that we don't flood the call. We
- // keep a deque (doubely ended queue) of them around. While one is playing we
- // set the playing_dtmf_ bit and schedule a message in XX msec to clear that
- // bit or start the next tone playing.
- std::deque<int> queued_dtmf_;
- bool playing_dtmf_;
-
- VoiceMediaInfo last_voice_media_info_;
-
- rtc::scoped_ptr<AudioSourceProxy> audio_source_proxy_;
-
- friend class MediaSessionClient;
-};
-
-} // namespace cricket
-
-#endif // WEBRTC_LIBJINGLE_SESSION_MEDIA_CALL_H_
« no previous file with comments | « webrtc/libjingle/session/constants.cc ('k') | webrtc/libjingle/session/media/call.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698