diff options
Diffstat (limited to 'Swift/Controllers/Roster')
| -rw-r--r-- | Swift/Controllers/Roster/ContactRosterItem.h | 1 | ||||
| -rw-r--r-- | Swift/Controllers/Roster/RosterController.cpp | 16 | ||||
| -rw-r--r-- | Swift/Controllers/Roster/RosterController.h | 4 | 
3 files changed, 18 insertions, 3 deletions
diff --git a/Swift/Controllers/Roster/ContactRosterItem.h b/Swift/Controllers/Roster/ContactRosterItem.h index 8389a44..d156b1f 100644 --- a/Swift/Controllers/Roster/ContactRosterItem.h +++ b/Swift/Controllers/Roster/ContactRosterItem.h @@ -26,6 +26,7 @@ class ContactRosterItem : public RosterItem {  		enum Feature {  			FileTransferFeature,  			WhiteboardFeature, +			ScreenSharingFeature,  		};  	public: diff --git a/Swift/Controllers/Roster/RosterController.cpp b/Swift/Controllers/Roster/RosterController.cpp index ec52993..40fd957 100644 --- a/Swift/Controllers/Roster/RosterController.cpp +++ b/Swift/Controllers/Roster/RosterController.cpp @@ -36,6 +36,7 @@  #include "Swift/Controllers/UIEvents/RenameRosterItemUIEvent.h"  #include "Swift/Controllers/UIEvents/RenameGroupUIEvent.h"  #include "Swift/Controllers/UIEvents/SendFileUIEvent.h" +#include "Swift/Controllers/UIEvents/ShareScreenUIEvent.h"  #include <Swiften/FileTransfer/FileTransferManager.h>  #include <Swiften/Client/NickManager.h>  #include <Swift/Controllers/Intl.h> @@ -44,14 +45,15 @@  #include <Swiften/Disco/EntityCapsManager.h>  #include <Swiften/Jingle/JingleSessionManager.h>  #include <Swift/Controllers/SettingConstants.h> +#include "Swift/Controllers/ScreenSharing/ScreenSharingController.h"  namespace Swift {  /**   * The controller does not gain ownership of these parameters.   */ -RosterController::RosterController(const JID& jid, XMPPRoster* xmppRoster, AvatarManager* avatarManager, MainWindowFactory* mainWindowFactory, NickManager* nickManager, NickResolver* nickResolver, PresenceOracle* presenceOracle, SubscriptionManager* subscriptionManager, EventController* eventController, UIEventStream* uiEventStream, IQRouter* iqRouter, SettingsProvider* settings, EntityCapsProvider* entityCapsManager, FileTransferOverview* fileTransferOverview) - : myJID_(jid), xmppRoster_(xmppRoster), mainWindowFactory_(mainWindowFactory), mainWindow_(mainWindowFactory_->createMainWindow(uiEventStream)), roster_(new Roster()), offlineFilter_(new OfflineRosterFilter()), nickManager_(nickManager), nickResolver_(nickResolver), uiEventStream_(uiEventStream), entityCapsManager_(entityCapsManager), ftOverview_(fileTransferOverview) { +RosterController::RosterController(const JID& jid, XMPPRoster* xmppRoster, AvatarManager* avatarManager, MainWindowFactory* mainWindowFactory, NickManager* nickManager, NickResolver* nickResolver, PresenceOracle* presenceOracle, SubscriptionManager* subscriptionManager, EventController* eventController, UIEventStream* uiEventStream, IQRouter* iqRouter, SettingsProvider* settings, EntityCapsProvider* entityCapsManager, FileTransferOverview* fileTransferOverview, ScreenSharingController *ssController) +	: myJID_(jid), xmppRoster_(xmppRoster), mainWindowFactory_(mainWindowFactory), mainWindow_(mainWindowFactory_->createMainWindow(uiEventStream)), roster_(new Roster()), offlineFilter_(new OfflineRosterFilter()), nickManager_(nickManager), nickResolver_(nickResolver), uiEventStream_(uiEventStream), entityCapsManager_(entityCapsManager), ftOverview_(fileTransferOverview), ssController_(ssController) {  	assert(fileTransferOverview);  	iqRouter_ = iqRouter;  	presenceOracle_ = presenceOracle; @@ -238,6 +240,10 @@ void RosterController::handleUIEvent(boost::shared_ptr<UIEvent> event) {  		//TODO add send file dialog to ChatView of receipient jid  		ftOverview_->sendFile(sendFileEvent->getJID(), sendFileEvent->getFilename());  	} +	else if (boost::shared_ptr<ShareScreenUIEvent> shareScreenEvent = boost::dynamic_pointer_cast<ShareScreenUIEvent>(event)) { +		std::cout << "Create sharing: " << ssController_->createOugoingScreenSharing(shareScreenEvent->jid); +		std::cout << std::endl; +	}  }  void RosterController::setContactGroups(const JID& jid, const std::vector<std::string>& groups) { @@ -324,6 +330,12 @@ void RosterController::handleOnCapsChanged(const JID& jid) {  		if (info->hasFeature(DiscoInfo::WhiteboardFeature)) {  			features.insert(ContactRosterItem::WhiteboardFeature);  		} +		if (info->hasFeature(DiscoInfo::JingleFeature) +				&& info->hasFeature(DiscoInfo::JingleRTPFeature) +				&& info->hasFeature(DiscoInfo::JingleTransportRawUDPFeature) +				&& info->hasFeature(DiscoInfo::JingleScreenSharingFeature)) { +			features.insert(ContactRosterItem::ScreenSharingFeature); +		}  		roster_->setAvailableFeatures(jid, features);  	}  } diff --git a/Swift/Controllers/Roster/RosterController.h b/Swift/Controllers/Roster/RosterController.h index 5e40124..2fb642d 100644 --- a/Swift/Controllers/Roster/RosterController.h +++ b/Swift/Controllers/Roster/RosterController.h @@ -39,10 +39,11 @@ namespace Swift {  	class NickManager;  	class EntityCapsProvider;  	class FileTransferManager; +	class ScreenSharingController;  	class RosterController {  		public: -			RosterController(const JID& jid, XMPPRoster* xmppRoster, AvatarManager* avatarManager, MainWindowFactory* mainWindowFactory, NickManager* nickManager, NickResolver* nickResolver, PresenceOracle* presenceOracle, SubscriptionManager* subscriptionManager, EventController* eventController, UIEventStream* uiEventStream, IQRouter* iqRouter_, SettingsProvider* settings, EntityCapsProvider* entityCapsProvider, FileTransferOverview* fileTransferOverview); +			RosterController(const JID& jid, XMPPRoster* xmppRoster, AvatarManager* avatarManager, MainWindowFactory* mainWindowFactory, NickManager* nickManager, NickResolver* nickResolver, PresenceOracle* presenceOracle, SubscriptionManager* subscriptionManager, EventController* eventController, UIEventStream* uiEventStream, IQRouter* iqRouter_, SettingsProvider* settings, EntityCapsProvider* entityCapsProvider, FileTransferOverview* fileTransferOverview, ScreenSharingController* ssController);  			~RosterController();  			void showRosterWindow();  			MainWindow* getWindow() {return mainWindow_;}; @@ -94,6 +95,7 @@ namespace Swift {  			UIEventStream* uiEventStream_;  			EntityCapsProvider* entityCapsManager_;  			FileTransferOverview* ftOverview_; +			ScreenSharingController* ssController_;  			boost::bsignals::scoped_connection changeStatusConnection_;  			boost::bsignals::scoped_connection signOutConnection_;  | 
 Swift