/* * Copyright (c) 2012 Yoann Blein * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #include "ScreenSharingOverview.h" #include "Swift/QtUI/ScreenSharing/QtDesktopScreenGrabber.h" #include "Swift/Controllers/ScreenSharing/ScreenSharingController.h" #include #include namespace Swift { ScreenSharingOverview::ScreenSharingOverview(ScreenSharingManager *screenSharingManager, RemoteScreenWindowFactory* remoteScreenViewerFactory, TimerFactory* timerFactory) : screenSharingManager(screenSharingManager), remoteScreenWindowFactory(remoteScreenViewerFactory), timerFactory(timerFactory), screenGrabber(new QtDesktopScreenGrabber) { screenSharingManager->onIncomingScreenSharing.connect(boost::bind(&ScreenSharingOverview::handleIncomingScreenSharing, this, _1)); } ScreenSharingOverview::~ScreenSharingOverview() { screenSharingManager->onIncomingScreenSharing.disconnect(boost::bind(&ScreenSharingOverview::handleIncomingScreenSharing, this, _1)); } void ScreenSharingOverview::createOugoingScreenSharing(const JID& to) { ScreenSharingController* ssc = new ScreenSharingController(screenSharingManager, timerFactory, screenGrabber, to); controllers.push_back(ssc); onNewScreenSharingController(ssc); } void ScreenSharingOverview::handleIncomingScreenSharing(boost::shared_ptr incomingScreenSharing) { ScreenSharingController* ssc = new ScreenSharingController(incomingScreenSharing, remoteScreenWindowFactory); controllers.push_back(ssc); onNewScreenSharingController(ssc); } }