예제 #1
0
void CBoxeeMediaSourceList::load()
{  
   m_sources.clear();

   loadShares(*g_settings.GetSourcesFromType("video"), SOURCE_VIDEO);
   loadShares(*g_settings.GetSourcesFromType("music"), SOURCE_MUSIC);
   loadShares(*g_settings.GetSourcesFromType("pictures"), SOURCE_PICTURE); 
}
예제 #2
0
CBoxeeMediaSourceList::CBoxeeMediaSourceList(VECSOURCES& videoSources, VECSOURCES& musicSources, VECSOURCES& pictureSources)
{
   m_sources.clear();

   loadShares(videoSources, SOURCE_VIDEO);
   loadShares(musicSources, SOURCE_MUSIC);
   loadShares(pictureSources, SOURCE_PICTURE);  
}
예제 #3
0
void Controller::init () {
	QSettings settings;
	Model::Settings s;
	settings.beginGroup("im");
	s.userId   = sfString (settings.value("userId","@sflx.net").toString());
	s.resource = sfString (settings.value("resource", qtString (sf::net::hostName())).toString());
	s.password 				= sfString (settings.value("password").toString());
	s.destinationDirectory =  sfString (settings.value("destinationDirectory", QDir::homePath()).toString());
	s.echoServerIp          = sfString (settings.value("echoServerIp", "82.211.19.149").toString());
	if (s.echoServerIp == "62.48.92.13"){
		// sflx.net moved!
		// workaround
		s.echoServerIp = "82.211.19.149";
	}
	s.echoServerPort        = settings.value("echoServerPort", "1234").toInt ();
	s.useBosh               = settings.value("useBosh", false).toBool();
	s.autoConnect           = settings.value("autoConnect", false).toBool();
	settings.endGroup ();
	{
		SF_SCHNEE_LOCK;
		mModel->setSettings(s);


		mModel->init ();
		mModel->beacon()->connections().conDetailsChanged() = dMemFun (this, &Controller::onConDetailsChanged);
		mModel->listTracker()->trackingUpdate()  = dMemFun (this, &Controller::onTrackingUpdate);
		mModel->listTracker()->lostTracking()    = dMemFun (this, &Controller::onLostTracking);
		mModel->fileGetting()->gotListing()      = dMemFun (this, &Controller::onUpdatedListing);
		mModel->fileGetting()->updatedTransfer() = dMemFun (this, &Controller::onUpdatedIncomingTransfer);
		mModel->fileSharing()->updatedTransfer() = dMemFun (this, &Controller::onUpdatedOutgoingTransfer);

		sf::InterplexBeacon * beacon = mModel->beacon();

		beacon->presences().peersChanged().add (sf::dMemFun (this, &Controller::onPeersChanged));
		beacon->presences().onlineStateChanged().add (sf::dMemFun (this, &Controller::onOnlineStateChanged));
		beacon->presences().subscribeRequest() = sf::dMemFun (this, &Controller::onUserSubscribeRequest);
		beacon->presences().serverStreamErrorReceived().add (sf::dMemFun (this, &Controller::onServerStreamErrorReceived));

		// Set own features and activating protocol filter
		{
			const sf::String schneeProtocol = "http://sflx.net/protocols/schnee";
			std::vector<sf::String> ownFeatures;
			ownFeatures.push_back (schneeProtocol);
			sf::Error e = beacon->presences().setOwnFeature(sf::String ("schneeflocke ") + sf::schnee::version(), ownFeatures);
			if (e) {
				sf::Log (LogError) << LOGID << "Could not set own feature" << std::endl;
			} else {
				mUserList->setFeatureFilter(schneeProtocol);
			}
		}

	}
	mGUI->init ();
	mGUI->call (sf::bind (&UserList::rebuildList, mUserList));
	loadShares();

	if (s.autoConnect){
		xcall (abind (dMemFun (this, &Controller::onChangeConnection), DS_CONNECT));
	}
}