/* * Copyright (c) 2012 Yoann Blein * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include namespace Swift { class ConnectivityManager; class JingleDescription; class JingleTransportPayload; class TimerFactory; class Timer; class OutgoingScreenSharing : public ScreenSharing { public: typedef boost::shared_ptr ref; public: OutgoingScreenSharing(boost::shared_ptr session, UDPSocketFactory* udpSocketFactory, TimerFactory* timerFactory); virtual ~OutgoingScreenSharing(); virtual void cancel(); void start(); private: void handleSocketConnected(); void handleSessionAcceptReceived(const JingleContentID& /*id*/, boost::shared_ptr /*desc*/, boost::shared_ptr /*transport*/); void handleConnectionFailed(); void startRTPSession(); private: JingleContentID contentID; bool canceled; bool sessionAccepted; bool socketConnected; TimerFactory* timerFactory; boost::shared_ptr connectionTimer; }; }