void CvDllPythonEvents::reportCityRename( CvCity *pCity )
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("cityRename");						// add key to lookup python handler fxn

		CyCity* pCyCity = new CyCity(pCity);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyCity));

		postEvent(eventData);
		delete pCyCity;
	}
}
void CvDllPythonEvents::reportModNetMessage(int iData1, int iData2, int iData3, int iData4, int iData5)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("ModNetMessage");				// add key to lookup python handler fxn
		eventData.add(iData1);
		eventData.add(iData2);
		eventData.add(iData3);
		eventData.add(iData4);
		eventData.add(iData5);
		postEvent(eventData);
	}
}
void CvDllPythonEvents::reportUnitRename(CvUnit *pUnit)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("UnitRename");						// add key to lookup python handler fxn

		CyUnit* pCyUnit = new CyUnit(pUnit);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyUnit));

		postEvent(eventData);
		delete pCyUnit;
	}
}
// Leoreth: peace deal arranged between players
void CvDllPythonEvents::reportPeaceBrokered(PlayerTypes eBroker, PlayerTypes ePlayer1, PlayerTypes ePlayer2)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("peaceBrokered");

		eventData.add((int)eBroker);
		eventData.add((int)ePlayer1);
		eventData.add((int)ePlayer2);

		postEvent(eventData);
	}
}
void CvDllPythonEvents::reportPlotPicked(CvPlot *pPlot)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("plotPicked");						// add key to lookup python handler fxn

		CyPlot* pCyPlot = new CyPlot(pPlot);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyPlot));

		postEvent(eventData);
		delete pCyPlot;
	}
}
void CvDllPythonEvents::reportPlayerGoldTrade(PlayerTypes eFromPlayer, PlayerTypes eToPlayer, int iAmount)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("playerGoldTrade");			// add key to lookup python handler fxn

		eventData.add((int)eFromPlayer);
		eventData.add((int)eToPlayer);
		eventData.add(iAmount);

		postEvent(eventData);
	}
}
Пример #7
0
void DccVoiceThread::stopPlaying()
{
#ifndef COMPILE_DISABLE_DCC_VOICE
	//qDebug("Stop playing");
	if(!m_bPlaying)return;

	KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
	e->setData(new int(KVI_DCC_VOICE_THREAD_ACTION_STOP_PLAYING));
	postEvent(parent(),e);

	m_bPlaying = false;
	if(!m_bRecording)closeSoundcard();
#endif
}
void CvDllPythonEvents::reportPlayerChangeStateReligion(PlayerTypes ePlayerID, ReligionTypes eNewReligion, ReligionTypes eOldReligion)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("playerChangeStateReligion");			// add key to lookup python handler fxn

		eventData.add((int)ePlayerID);
		eventData.add((int)eNewReligion);
		eventData.add((int)eOldReligion);

		postEvent(eventData);
	}
}
void CvDllPythonEvents::reportVassalState(TeamTypes eMaster, TeamTypes eVassal, bool bVassal, bool bCapitulated)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("vassalState");					// add key to lookup python handler fxn
		eventData.add((int)eMaster);
		eventData.add((int)eVassal);
		eventData.add(bVassal);
		eventData.add(bCapitulated);

		postEvent(eventData);
	}
}
Пример #10
0
/*!
 * Creates a new session and sends the session key to the web browser.
 *
 * Subclasses may override this function to perform custom session initialization,
 * but they must call the base class implementation in order to update the internal
 * session database and fetch a new session ID.
 */
int QxtHttpSessionManager::newSession()
{
    QMutexLocker locker(&qxt_d().sessionLock);
    int sessionID = createService();
    QUuid key;
    do
    {
        key = QUuid::createUuid();
    }
    while (qxt_d().sessionKeys.contains(key));
    qxt_d().sessionKeys[key] = sessionID;
    postEvent(new QxtWebStoreCookieEvent(sessionID, qxt_d().sessionCookieName, key.toString()));
    return sessionID;
}
void CvDllPythonEvents::reportUnitPromoted(CvUnit* pUnit, PromotionTypes ePromotion)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("unitPromoted");						// add key to lookup python handler fxn

		CyUnit* pyu = new CyUnit(pUnit);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pyu));
		eventData.add((int)ePromotion);
		postEvent(eventData);
		delete pyu;
	}
}
Пример #12
0
 TagValue::operator FCam::Time &() const {
     switch (type) {
     case Null:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a null to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     case Int:
         postEvent(Event::Error, Event::BadCast, "Cannot cast an int to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     case Float:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a float to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     case Double:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a double to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     case String:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a string to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     case Time:
         return ((FCam::Time *)data)[0];
     case IntVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast an int vector to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     case FloatVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a float vector to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     case DoubleVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a double vector to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     case StringVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a string vector to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     case TimeVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a time vector to a time");
         dummyTime = FCam::Time(0, 0); return dummyTime;
     }
     dummyTime = FCam::Time(0, 0); return dummyTime;
 }
Пример #13
0
 TagValue::operator std::vector<FCam::Time> &() const {
     switch (type) {
     case Null:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a null to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case Int:
         postEvent(Event::Error, Event::BadCast, "Cannot cast an int to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case Float:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a float to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case Double:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a double to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case String:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a string to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case Time:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a time to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case IntVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast an int vector to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case FloatVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a float vector to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case DoubleVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a double vector to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case StringVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a string vector to a time vector");
         dummyTimeVector.clear(); return dummyTimeVector;
     case TimeVector:
         return ((std::vector<FCam::Time> *)data)[0];
     }
     dummyTimeVector.clear(); return dummyTimeVector;
 }
Пример #14
0
 TagValue::operator float &() const {
     switch (type) {
     case Null:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a null to a float");
         dummyFloat = 0; return dummyFloat;
     case Int:
         postEvent(Event::Error, Event::BadCast, "Cannot cast an int to a float");
         dummyFloat = 0; return dummyFloat;
     case Float:
         return (((float *)data)[0]);
     case Double:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a double to a float");
         dummyFloat = 0; return dummyFloat;
     case String:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a string to a float");
         dummyFloat = 0; return dummyFloat;
     case Time:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a time to a float");
         dummyFloat = 0; return dummyFloat;
     case IntVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast an int vector to a float");
         dummyFloat = 0; return dummyFloat;
     case FloatVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a float vector to a float");
         dummyFloat = 0; return dummyFloat;
     case DoubleVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a double vector to a float");
         dummyFloat = 0; return dummyFloat;
     case StringVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a string vector to a float");
         dummyFloat = 0; return dummyFloat;
     case TimeVector:
         postEvent(Event::Error, Event::BadCast, "Cannot cast a time vector to a float");
         dummyFloat = 0; return dummyFloat;
     }
     dummyFloat = 0; return dummyFloat;
 }
Пример #15
0
void ICQMain::deliver(PACKET *p)
{
	// If this is a local session, deliver it locally
	ClientSession *s = sessionHash->get(p->to);
	if (s) {
		postEvent(EV_S_IN, s, p);
		return;
	}

	// Otherwise, let some modules to handle it
	EVENT ev;
	ev.event = EV_DELIVER;
	ev.conn = NULL;
	ev.mapi = this;
	ev.s = NULL;
	ev.packet = p;

	if (dispatchEvent(&ev))
		return;

	// No module handled it, deliver it as if this is an offline event
	if (!p->online)
		postEvent(EV_S_IN, NULL, p);
}
void CvDllPythonEvents::reportCityAcquiredAndKept(PlayerTypes ePlayer, CvCity* pOldCity)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("cityAcquiredAndKept");					// add key to lookup python handler fxn
		eventData.add((int)ePlayer);

		CyCity* pCyCity = new CyCity(pOldCity);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyCity));

		postEvent(eventData);
		delete pCyCity;
	}
}
void CvDllPythonEvents::reportGotoPlotSet(CvPlot *pPlot, PlayerTypes ePlayer)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("gotoPlotSet");						// add key to lookup python handler fxn

		CyPlot* pCyPlot = new CyPlot(pPlot);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyPlot));
		eventData.add((int) ePlayer);

		postEvent(eventData);
		delete pCyPlot;
	}
}
// BUG - Unit Captured Event - start
void CvDllPythonEvents::reportUnitCaptured(PlayerTypes eFromPlayer, UnitTypes eUnitType, CvUnit* pNewUnit)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("unitCaptured");						// add key to lookup python handler fxn

		eventData.add(eFromPlayer);
		eventData.add(eUnitType);
		CyUnit* pyNewUnit = new CyUnit(pNewUnit);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pyNewUnit));
		postEvent(eventData);
		delete pyNewUnit;
	}
}
Пример #19
0
int ConnectThread::run()
{
	MYSQL* sql = m_mysql->lockHandle();
	if (!mysql_real_connect(sql, stringOrNull(m_host), stringOrNull(m_user), stringOrNull(m_pass), stringOrNull(m_database), m_port, stringOrNull(m_unixSocket), m_clientFlag))
	{
		MutexLocker dataLock(m_dataMutex);
		m_success = false;
		m_error = std::string( mysql_error(sql) );
		postEvent( CONNECTION_FINISHED );

		m_mysql->unlockHandle();
		return 0;
	}
	else
	{
		MutexLocker dataLock(m_dataMutex);
		m_success = true;
		m_error = "";
		postEvent( CONNECTION_FINISHED );

		m_mysql->unlockHandle();
		return 0;
	}
}
Пример #20
0
void DccVoiceThread::startPlaying()
{
#ifndef COMPILE_DISABLE_DCC_VOICE
    //qDebug("Start playing");
    if(m_bPlaying)return;

    if(openSoundcardForWriting())
    {
        KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
        e->setData(new int(KVI_DCC_VOICE_THREAD_ACTION_START_PLAYING));
        postEvent(parent(),e);
        m_bPlaying = true;
    }
#endif
}
Пример #21
0
void ICQMain::onPacketReceived(const char *from, uint16 cmd, InPacket &in)
{
	ClientSession *s = sessionHash->get(from);
	if (!s)
		return;

	PACKET p;
	p.cmd = cmd;
	p.data = in.cursor;
	p.dataLen = in.getBytesLeft();
	p.from = NULL;
	p.to = NULL;

	postEvent(EV_S_OUT, s, &p);
}
Пример #22
0
void AmSession::clearAudio()
{
  lockAudio();
  if(input){
    input->close();
    input = 0;
  }
  if(output){
    output->close();
    output = 0;
  }
  unlockAudio();
  DBG("Audio cleared !!!\n");
  postEvent(new AmAudioEvent(AmAudioEvent::cleared));
}
void CvDllPythonEvents::reportCorporationRemove(CorporationTypes eType, PlayerTypes ePlayer, CvCity* pSpreadCity)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("corporationRemove");			// add key to lookup python handler fxn
		eventData.add((int)eType);
		eventData.add((int)ePlayer);

		CyCity* pyu = new CyCity(pSpreadCity);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pyu));

		postEvent(eventData);
		delete pyu;
	}
}
// Leoreth: trade mission (great merchant)
void CvDllPythonEvents::reportTradeMission(UnitTypes unitID, PlayerTypes ePlayer, int iX, int iY, int iGold)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("tradeMission");

		eventData.add((int)unitID);
		eventData.add((int)ePlayer);
		eventData.add((int)iX);
		eventData.add((int)iY);
		eventData.add(iGold);

		postEvent(eventData);
	}
}
void CvDllPythonEvents::reportCityProduction( CvCity *pCity, PlayerTypes ePlayer )
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("cityDoTurn");						// add key to lookup python handler fxn

		CyCity* pCyCity = new CyCity(pCity);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyCity));

		eventData.add((int) ePlayer);

		postEvent(eventData);
		delete pCyCity;
	}
}
// BUG - Process Started Event - start
void CvDllPythonEvents::reportCityBuildingProcess( CvCity* pCity, ProcessTypes eProcessType )
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("cityBuildingProcess");						// add key to lookup python handler fxn

		CyCity* pCyCity = new CyCity(pCity);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyCity));

		eventData.add((int) eProcessType);

		postEvent(eventData);
		delete pCyCity;
	}
}
void CvDllPythonEvents::reportUnitSelected(CvUnit* pUnit)
{
	if (preEvent())
	{
		if(GC.getUSE_ON_UNIT_SELECTED_CALLBACK())
		{
			CyArgsList eventData;
			eventData.add("unitSelected");						// add key to lookup python handler fxn

			CyUnit* pyu = new CyUnit(pUnit);
			eventData.add(gDLL->getPythonIFace()->makePythonObject(pyu));
			postEvent(eventData);
			delete pyu;
		}
	}
}
void CvDllPythonEvents::reportUnitBuildImprovement(CvUnit* pUnit, BuildTypes eBuild, bool bFinished)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("unitBuildImprovement");						// add key to lookup python handler fxn

		CyUnit* pCyUnit = new CyUnit(pUnit);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyUnit));
		eventData.add((int) eBuild);
		eventData.add(bFinished);

		postEvent(eventData);
		delete pCyUnit;
	}
}
void CvDllPythonEvents::reportUnitSpreadReligionAttempt(CvUnit* pUnit, ReligionTypes eReligion, bool bSuccess)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("unitSpreadReligionAttempt");						// add key to lookup python handler fxn

		CyUnit* pCyUnit = new CyUnit(pUnit);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyUnit));
		eventData.add((int) eReligion);
		eventData.add(bSuccess);

		postEvent(eventData);
		delete pCyUnit;
	}
}
Пример #30
0
/**
 * Starts the application.
 * Note that this method only returns when the application terminates.
 * @return The return code of the application.
 */
int Application::run()
{
	// Create the main window.
	// We can do it on the stack, as the method does not return as long as the
	// application is running.
	MainWindow mainWnd;
	mainWnd_ = &mainWnd;
	mainWnd_->show();

	// Do application initialisation.
	// The reason for posting an event is to have a running application (event
	// loop) before starting the initialisation process. This way, the process
	// can take full advantage of the event mechanism.
	postEvent(this, new QEvent(static_cast<QEvent::Type>(AppInitEvent)));

	return exec();
}