diff options
Diffstat (limited to 'Swift/Controllers/ScreenSharing/ScreenSharingController.h')
-rw-r--r-- | Swift/Controllers/ScreenSharing/ScreenSharingController.h | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/Swift/Controllers/ScreenSharing/ScreenSharingController.h b/Swift/Controllers/ScreenSharing/ScreenSharingController.h index 6bae132..11b4504 100644 --- a/Swift/Controllers/ScreenSharing/ScreenSharingController.h +++ b/Swift/Controllers/ScreenSharing/ScreenSharingController.h @@ -6,46 +6,53 @@ #pragma once -#include <Swiften/Base/boost_bsignals.h> +#include <Swiften/JID/JID.h> +#include <Swiften/ScreenSharing/ScreenSharing.h> #include <boost/shared_ptr.hpp> namespace Swift { + class ScreenSharing; class ScreenSharingManager; class IncomingScreenSharing; - class OutgoingScreenSharing; class Timer; class TimerFactory; class DesktopScreenGrabber; class RemoteScreenWindowFactory; class RemoteScreenWindow; - class JID; + class ChatWindow; class ScreenSharingController { public: - ScreenSharingController(ScreenSharingManager* screenSharingManager, RemoteScreenWindowFactory* remoteScreenWindowFactory, TimerFactory* timerFactory); + ScreenSharingController(ScreenSharingManager* screenSharingManager, TimerFactory* timerFactory, DesktopScreenGrabber* desktopScreenGrabber, const JID& to); + ScreenSharingController(boost::shared_ptr<IncomingScreenSharing> screenSharing, RemoteScreenWindowFactory* remoteScreenWindowFactory); ~ScreenSharingController(); - boost::shared_ptr<OutgoingScreenSharing> createOugoingScreenSharing(const JID& to); + const JID& getOtherParty() const; - public: - boost::signal<void (boost::shared_ptr<IncomingScreenSharing>)> onNewIncomingScreenSharing; + std::string setChatWindow(ChatWindow *wnd, std::string nickname); + + void accept(); + void cancel(); + void stop(); private: - void handleIncomingScreenSharing(boost::shared_ptr<IncomingScreenSharing> incomingScreenSharing); void handleGrabTimerTick(); - void handleOssReady(); - void handleIncomingFinished(); - void handleOutgoingFinished(); + void handleReady(); + void handleFinished(); + void handleStateChange(ScreenSharing::SCState state); + void handleWindowStopRequest(); private: - ScreenSharingManager* screenSharingManager; + DesktopScreenGrabber* screenGrabber; + boost::shared_ptr<Timer> grabTimer; RemoteScreenWindowFactory* remoteScreenWindowFactory; - RemoteScreenWindow* remoteScreenWindow; - boost::shared_ptr<Timer> grabTimer; - DesktopScreenGrabber* screenGrabber; - boost::shared_ptr<IncomingScreenSharing> iss; - boost::shared_ptr<OutgoingScreenSharing> oss; + + boost::shared_ptr<ScreenSharing> screenSharing; + JID otherParty; + bool incoming; + std::string uiID; + ChatWindow* chatWindow; }; } |