Beispiel #1
0
void TimerManager::TickTimers(time_t TIME)
{
	for (TimerMap::iterator i = Timers.begin(); i != Timers.end(); )
	{
		Timer* t = i->second;
		if (t->GetTrigger() > TIME)
			break;

		Timers.erase(i++);

		if (!t->Tick(TIME))
			continue;

		if (t->GetRepeat())
		{
			t->SetTrigger(TIME + t->GetInterval());
			AddTimer(t);
		}
	}
}
Beispiel #2
0
	void Start() {
		CString sMyArgs = GetArgs();

		interp = Tcl_CreateInterp();
		Tcl_Init(interp);
		Tcl_CreateCommand(interp, "Binds::ProcessPubm", tcl_Bind, this, NULL);
		Tcl_CreateCommand(interp, "Binds::ProcessTime", tcl_Bind, this, NULL);
		Tcl_CreateCommand(interp, "Binds::ProcessEvnt", tcl_Bind, this, NULL);
		Tcl_CreateCommand(interp, "Binds::ProcessNick", tcl_Bind, this, NULL);
		Tcl_CreateCommand(interp, "Binds::ProcessKick", tcl_Bind, this, NULL);
		Tcl_CreateCommand(interp, "PutIRC", tcl_PutIRC, this, NULL);
		Tcl_CreateCommand(interp, "PutIRCAs", tcl_PutIRCAs, this, NULL);
		Tcl_CreateCommand(interp, "PutModule", tcl_PutModule, this, NULL);
		Tcl_CreateCommand(interp, "PutStatus", tcl_PutStatus, this, NULL);
		Tcl_CreateCommand(interp, "PutStatusNotice", tcl_PutStatusNotice, this, NULL);
		Tcl_CreateCommand(interp, "PutUser", tcl_PutUser, this, NULL);

		Tcl_CreateCommand(interp, "GetLocalIP", tcl_GetLocalIP, this, NULL);
		Tcl_CreateCommand(interp, "GetCurNick", tcl_GetCurNick, this, NULL);
		Tcl_CreateCommand(interp, "GetUsername", tcl_GetUsername, this, NULL);
		Tcl_CreateCommand(interp, "GetRealName", tcl_GetRealName, this, NULL);
		Tcl_CreateCommand(interp, "GetVHost", tcl_GetBindHost, this, NULL);
		Tcl_CreateCommand(interp, "GetBindHost", tcl_GetBindHost, this, NULL);
		Tcl_CreateCommand(interp, "GetChans", tcl_GetChans, this, NULL);
		Tcl_CreateCommand(interp, "GetChannelUsers", tcl_GetChannelUsers, this, NULL);
		Tcl_CreateCommand(interp, "GetChannelModes", tcl_GetChannelModes, this, NULL);
		Tcl_CreateCommand(interp, "GetServer", tcl_GetServer, this, NULL);
		Tcl_CreateCommand(interp, "GetServerOnline", tcl_GetServerOnline, this, NULL);
		Tcl_CreateCommand(interp, "GetModules", tcl_GetModules, this, NULL);

		Tcl_CreateCommand(interp, "exit", tcl_exit, this, NULL);

		if (!sMyArgs.empty()) {
			i = Tcl_EvalFile(interp, sMyArgs.c_str());
			if (i != TCL_OK) {
				PutModule(Tcl_GetStringResult(interp));
			}
		}

		AddTimer(new CModTclTimer(this, 1, 0, "ModTclUpdate", "Timer for modtcl to process pending events and idle callbacks."));
	}
Beispiel #3
0
	virtual void OnIRCConnected()
	{
		// dropped this into here because there seems to have been a changed where the module is loaded before the channels.
		// this is a good trigger to tell it to backfill the channels
		if( !m_bFirstLoad )
		{
			m_bFirstLoad = true;
			AddTimer(new CSaveBuffJob(this, 60, 0, "SaveBuff", "Saves the current buffer to disk every 1 minute"));
			const vector<CChan *>& vChans = m_pUser->GetChans();
			for (u_int a = 0; a < vChans.size(); a++)
			{
				if (!vChans[a]->KeepBuffer())
					continue;

				if (!BootStrap(vChans[a]))
				{
					PutUser(":***[email protected] PRIVMSG " + vChans[a]->GetName() + " :Failed to decrypt this channel, did you change the encryption pass?");
				}
			}
		}
	}
Beispiel #4
0
void TMasterClient::HandleHeartbeatResponse(void*,
                                            proto::tmaster::StMgrHeartbeatResponse* _response,
                                            NetworkErrorCode _status) {
  if (_status != OK) {
    LOG(ERROR) << "NonOK response message for heartbeat Response" << std::endl;
    delete _response;
    Stop();
    return;
  }
  proto::system::StatusCode status = _response->status().status();
  if (status != proto::system::OK) {
    LOG(ERROR) << "Heartbeat failed with status " << status << std::endl;
    return Stop();
  } else {
    // Shouldn't be in a state where a previous timer is not cleared yet.
    CHECK_EQ(heartbeat_timer_id, 0);
    heartbeat_timer_id =
        AddTimer(heartbeat_timer_cb, stream_to_tmaster_heartbeat_interval_sec_ * 1000000);
  }
  delete _response;
}
Beispiel #5
0
void BanRequest::AddAsyncBan ( NczPlayer* player, int ban_time, const char * kick_message )
{
	if( CanKick () )
	{
		PlayerBanRequestT req;
		req.userid = SourceSdk::InterfacesProxy::Call_GetPlayerUserid ( player->GetEdict () );

		if( m_requests.Find ( req ) == nullptr )
		{
			req.ban_time = ban_time;
			req.request_time = Tier0::Plat_FloatTime ();
			req.kick_message = kick_message;
			strcpy_s ( req.player_name, 24, player->GetName () );
			strcpy_s ( req.steamid, 24, player->GetSteamID () );
			strcpy_s ( req.ip, 24, player->GetIPAddress () );
			strcpy_s ( req.identity, 64, player->GetReadableIdentity ().c_str () );
			m_requests.Add ( req );
		}

		AddTimer ( m_wait_time, player->GetName (), true );
	}
}
Beispiel #6
0
void TMasterClient::HandleConnect(NetworkErrorCode _status) {
  if (_status == OK) {
    if (to_die_) {
      Stop();
      return;
    }
    LOG(INFO) << "Connected to tmaster running at " << get_clientoptions().get_host() << ":"
              << get_clientoptions().get_port() << std::endl;
    SendRegisterRequest();
  } else {
    if (to_die_) {
      delete this;
      return;
    }
    LOG(ERROR) << "Could not connect to tmaster at " << get_clientoptions().get_host() << ":"
               << get_clientoptions().get_port() << std::endl;
    LOG(INFO) << "Will retry again..." << std::endl;
    // Shouldn't be in a state where a previous timer is not cleared yet.
    CHECK_EQ(reconnect_timer_id, 0);
    reconnect_timer_id = AddTimer(reconnect_timer_cb, reconnect_tmaster_interval_sec_ * 1000000);
  }
}
Beispiel #7
0
/**
 *  Konstruktor von @p dskLobby.
 *
 *  @author FloSoft
 *  @author Devil
 */
dskLobby::dskLobby() : Desktop(LOADER.GetImageN("setup013", 0)), serverinfo(NULL), servercreate(NULL)
{
    // Version
    AddVarText(0, 0, 600, _("Return To The Roots - v%s-%s"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont, 2, GetWindowVersion(), GetWindowRevisionShort());
    // URL
    AddText(1, 400, 600, _("http://www.siedler25.org"), COLOR_GREEN, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, NormalFont);
    // Copyright
    AddVarText(2, 800, 600, _("© 2005 - %s Settlers Freaks"), COLOR_YELLOW, glArchivItem_Font::DF_RIGHT | glArchivItem_Font::DF_BOTTOM, NormalFont, 1, GetCurrentYear());

    // "Zurück"
    AddTextButton(3, 530, 530, 250, 22, TC_RED1, _("Back"), NormalFont);
    // "Verbinden"
    AddTextButton(4, 530, 470, 250, 22, TC_GREEN2, _("Connect"), NormalFont);
    // "Internet Ranking"
    AddTextButton(5, 530, 500, 250, 22, TC_GREEN2, _("Internet Ranking"), NormalFont);
    // "Server hinzufügen"
    AddTextButton(6, 530, 440, 250, 22, TC_GREEN2, _("Add Server"), NormalFont);

    // Gameserver-Tabelle - "ID", "Server", "Karte", "Spieler", "Version", "Ping"
    AddTable(10, 20, 20, 500, 262, TC_GREY, NormalFont, 6, _("ID"), 0, ctrlTable::SRT_NUMBER, _("Server"), 300, ctrlTable::SRT_STRING, _("Map"), 300, ctrlTable::SRT_STRING, _("Player"), 200, ctrlTable::SRT_NUMBER, _("Version"), 100, ctrlTable::SRT_STRING, _("Ping"), 100, ctrlTable::SRT_NUMBER);
    // Spieler-Tabelle - "Name", "Punkte", "Version"
    AddTable(11, 530, 20, 250, 410, TC_GREY, NormalFont, 3, _("Name"), 500, ctrlTable::SRT_STRING, _("Points"), 250, ctrlTable::SRT_STRING, _("Version"), 250, ctrlTable::SRT_STRING);

    // Chatfenster
    AddChatCtrl(20, 20, 290, 500, 238, TC_GREY, NormalFont);
    // Chatfenster-Edit
    AddEdit(21, 20, 530, 500, 22, TC_GREY, NormalFont);

    AddTimer(30, 5000);

    UpdateServerList(true);
    UpdatePlayerList(true);

    LOBBYCLIENT.SetInterface(this);
    LOBBYCLIENT.SendServerListRequest();
    LOBBYCLIENT.SendPlayerListRequest();

    GAMECLIENT.SetInterface(this);
}
iwBuildOrder::iwBuildOrder()
    : IngameWindow(CGI_BUILDORDER, (unsigned short) - 1, (unsigned short) - 1, 320, 300, _("Building sequence"), LOADER.GetImageN("io", 5)),
      settings_changed(false)
{
    ctrlList* list = AddList(0, 15, 60, 150, 220, TC_GREY, NormalFont);

    // Liste füllen
    BuildOrders buildOrders = GAMECLIENT.visual_settings.build_order;
    for(unsigned char i = 0; i < buildOrders.size(); ++i)
        list->AddString(_(BUILDING_NAMES[buildOrders[i]])); //-V807

    // Nach ganz oben
    AddImageButton(1, 250, 194, 48, 20, TC_GREY, LOADER.GetImageN("io", 215), _("Top"));
    // Hoch
    AddImageButton(2, 250, 216, 48, 20, TC_GREY, LOADER.GetImageN("io",  33), _("Up"));
    // Runter
    AddImageButton(3, 250, 238, 48, 20, TC_GREY, LOADER.GetImageN("io",  34), _("Down"));
    // Nach ganz unten
    AddImageButton(4, 250, 260, 48, 20, TC_GREY, LOADER.GetImageN("io", 216), _("Bottom"));

    // Bild der Auswahl
    AddImage(5, 240, 150, LOADER.GetNationImage(GAMECLIENT.GetLocalPlayer().nation, 250 + buildOrders[0] * 5));

    ctrlComboBox* combo = AddComboBox(6, 15, 30, 290, 20, TC_GREY, NormalFont, 100);
    combo->AddString(_("Sequence of given order")); // "Reihenfolge der Auftraggebung"
    combo->AddString(_("After the following order")); // "Nach folgender Reihenfolge"

    // Eintrag in Combobox auswählen
    combo->SetSelection(GAMECLIENT.visual_settings.order_type);

    // Standard
    AddImageButton(10, 200, 250, 48, 30, TC_GREY, LOADER.GetImageN("io", 191), _("Default"));

    // Absendetimer, in 2s-Abschnitten wird jeweils das ganze als Netzwerknachricht ggf. abgeschickt
    AddTimer(11, 2000);

    list->SetSelection(0);
}
iwBuildOrder::iwBuildOrder(const GameWorldViewer& gwv)
    : IngameWindow(CGI_BUILDORDER, IngameWindow::posLastOrCenter, Extent(320, 300), _("Building sequence"), LOADER.GetImageN("io", 5)),
      gwv(gwv), settings_changed(false)
{
    ctrlList* list = AddList(0, DrawPoint(15, 60), Extent(150, 220), TC_GREY, NormalFont);

    // Liste füllen
    BuildOrders buildOrders = GAMECLIENT.visual_settings.build_order;
    for(auto& buildOrder : buildOrders)
        list->AddString(_(BUILDING_NAMES[buildOrder])); //-V807

    // Nach ganz oben
    AddImageButton(1, DrawPoint(250, 194), Extent(48, 20), TC_GREY, LOADER.GetImageN("io", 215), _("Top"));
    // Hoch
    AddImageButton(2, DrawPoint(250, 216), Extent(48, 20), TC_GREY, LOADER.GetImageN("io", 33), _("Up"));
    // Runter
    AddImageButton(3, DrawPoint(250, 238), Extent(48, 20), TC_GREY, LOADER.GetImageN("io", 34), _("Down"));
    // Nach ganz unten
    AddImageButton(4, DrawPoint(250, 260), Extent(48, 20), TC_GREY, LOADER.GetImageN("io", 216), _("Bottom"));

    // Bild der Auswahl
    AddImage(5, DrawPoint(240, 150), LOADER.GetNationImage(gwv.GetPlayer().nation, 250 + buildOrders[0] * 5));

    ctrlComboBox* combo = AddComboBox(6, DrawPoint(15, 30), Extent(290, 20), TC_GREY, NormalFont, 100);
    combo->AddString(_("Sequence of given order"));   // "Reihenfolge der Auftraggebung"
    combo->AddString(_("After the following order")); // "Nach folgender Reihenfolge"

    // Eintrag in Combobox auswählen
    combo->SetSelection(GAMECLIENT.visual_settings.useCustomBuildOrder ? 1 : 0);

    // Standard
    AddImageButton(10, DrawPoint(200, 250), Extent(48, 30), TC_GREY, LOADER.GetImageN("io", 191), _("Default"));

    // Absendetimer, in 2s-Abschnitten wird jeweils das ganze als Netzwerknachricht ggf. abgeschickt
    AddTimer(11, 2000);

    list->SetSelection(0);
}
Beispiel #10
0
void DummySpoutInstance::CreateAndSendTupleMessages() {
  for (int i = 0; (i < batch_size_) && (total_msgs_sent_ < max_msgs_to_send_);
       ++total_msgs_sent_, ++i) {
    heron::proto::system::HeronTupleSet tuple_set;
    heron::proto::system::HeronDataTupleSet* data_set = tuple_set.mutable_data();
    heron::proto::api::StreamId* tstream = data_set->mutable_stream();
    tstream->set_id(stream_id_);
    tstream->set_component_name(component_name_);
    heron::proto::system::HeronDataTuple* tuple = data_set->add_tuples();
    tuple->set_key(0);
    // Add lots of data
    for (size_t i = 0; i < 500; ++i) *(tuple->add_values()) = "dummy data";

    // Add custom grouping if need be
    if (do_custom_grouping_) {
      tuple->add_dest_task_ids(custom_grouping_dest_task_);
    }
    SendMessage(tuple_set);
  }
  if (total_msgs_sent_ != max_msgs_to_send_) {
    AddTimer([this]() { this->CreateAndSendTupleMessages(); }, 1000);
  }
}
dskMainMenu::dskMainMenu() : Desktop(LOADER.GetImageN("menu", 0))
{
    // Version
    AddVarText(0, 0, 600, _("Return To The Roots - v%s-%s"), COLOR_YELLOW, 0 | glArchivItem_Font::DF_BOTTOM, NormalFont, 2, GetWindowVersion(), GetWindowRevisionShort());
    // URL
    AddText(1, 400, 600, _("http://www.siedler25.org"), COLOR_GREEN, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, NormalFont);
    // Copyright
    AddVarText(2, 800, 600, _("© 2005 - %s Settlers Freaks"), COLOR_YELLOW, glArchivItem_Font::DF_RIGHT | glArchivItem_Font::DF_BOTTOM, NormalFont, 1, GetCurrentYear());

    // "Einzelspieler"
    AddTextButton(4, 115, 180, 220, 22, TC_GREEN2, _("Singleplayer"), NormalFont);
    // "Mehrspieler"
    AddTextButton(5, 115, 210, 220, 22, TC_GREEN2, _("Multiplayer"), NormalFont);
    // "Optionen"
    AddTextButton(6, 115, 250, 220, 22, TC_GREEN2, _("Options"), NormalFont);
    // "Intro"
    AddTextButton(7, 115, 280, 220, 22, TC_GREEN2, _("Intro"), NormalFont);
    // "ReadMe"
    AddTextButton(10, 115, 310, 220, 22, TC_GREEN2, _("Readme"), NormalFont);
    // "Credits"
    AddTextButton(8, 115, 340, 220, 22, TC_GREEN2, _("Credits"), NormalFont);
    // "Programm verlassen"
    AddTextButton(9, 115, 390, 220, 22, TC_RED1, _("Quit program"), NormalFont);

    AddImage(11, 20, 20, LOADER.GetImageN("logo", 0));

    if (SETTINGS.global.submit_debug_data == 0)
    {
        AddTimer(20, 250);
    }

    /*AddText(20, 50, 450, _("Font Test"), COLOR_YELLOW, glArchivItem_Font::DF_LEFT, SmallFont);
    AddText(21, 50, 470, _("Font Test"), COLOR_YELLOW, glArchivItem_Font::DF_LEFT, NormalFont);
    AddText(22, 50, 490, _("Font Test"), COLOR_YELLOW, glArchivItem_Font::DF_LEFT, LargeFont);*/
    //  !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz\\_ABCDEFGHIJKLMNOPQRSTUVWXYZÇüéâäàåçêëèïîì©ÄÅôöòûùÖÜáíóúñ
}
	bool OnLoad(const CString& sArgs, CString& sMessage)
	{
		if(ms_instance) return false;
		ms_instance = this;
		
		InitializeCriticalSection(&m_rcvdMsgLock);

		for(MCString::iterator it = BeginNV(); it != EndNV(); it++)
		{
			if(it->first.size() > 0 && it->first[0] == '#')
			{
				m_chanNameMap[it->first.AsLower()] = it->second;
			}
		}

		SkypeMessaging *l_msging = SkypeMessaging::GetInstance();
		m_queue = new CSkypeMsgQueue();

		if(!l_msging->Initialize(&CSkypeMsgQueue::SkypeMessagingCallback, m_queue))
		{
			PutModule("FATAL ERROR: Initializing Skype messaging failed!");
		}
		else
		{
			if(!l_msging->SendConnect())
			{
				PutModule("FATAL ERROR: Sending discovery signal failed!");
			}
			else
			{
				AddTimer(new CModSkypeTimer(this, 1, 0, "ModSkypeMessaging", "Timer for modskype to process pending events/messages."));
			}
		}

		return true;
	}
Beispiel #13
0
void TMasterClient::HandleRegisterResponse(void*, proto::tmaster::StMgrRegisterResponse* _response,
                                           NetworkErrorCode _status) {
  if (_status != OK) {
    LOG(ERROR) << "non ok network stack code for Register Response from Tmaster" << std::endl;
    delete _response;
    Stop();
    return;
  }
  proto::system::StatusCode status = _response->status().status();
  if (status != proto::system::OK) {
    LOG(ERROR) << "Register with Tmaster failed with status " << status << std::endl;
    Stop();
  } else {
    LOG(INFO) << "Registered successfully with Tmaster" << std::endl;
    if (_response->has_pplan()) {
      pplan_watch_(_response->release_pplan());
    }
    // Shouldn't be in a state where a previous timer is not cleared yet.
    CHECK_EQ(heartbeat_timer_id, 0);
    heartbeat_timer_id =
        AddTimer(heartbeat_timer_cb, stream_to_tmaster_heartbeat_interval_sec_ * 1000000);
  }
  delete _response;
}
Beispiel #14
0
 void Start()
 {
     AddTimer(this, 100);
 }
Beispiel #15
0
bool CModule::AddTimer(FPTimer_t pFBCallback, const CString& sLabel, u_int uInterval, u_int uCycles, const CString& sDescription) {
	CFPTimer *pTimer = new CFPTimer(this, uInterval, uCycles, sLabel, sDescription);
	pTimer->SetFPCallback(pFBCallback);

	return AddTimer(pTimer);
}
Beispiel #16
0
void CScriptTimerMgr::Serialize( TSerialize &ser )
{
	if (ser.GetSerializationTarget() == eST_Network)
		return;
	
	ser.BeginGroup("ScriptTimers");

	if (ser.IsReading())
	{
		Reset();

		m_nLastTimerID++;

		int nTimers = 0;
		ser.Value( "count",nTimers );

		for (int i = 0; i < nTimers; i++)
		{
			ScriptTimer timer;

			ser.BeginGroup("timer");
			ser.Value("id",timer.nTimerID);
			ser.Value("millis",timer.nMillis);

			string func;
			ser.Value("func",func);
			strcpy(timer.sFuncName,func);

			uint32 nEntityId = 0;
			ser.Value( "entity",nEntityId );
			if (nEntityId && gEnv->pEntitySystem)
			{
				IEntity *pEntity = gEnv->pEntitySystem->GetEntity(nEntityId);
				if (pEntity)
				{
					timer.pUserData = pEntity->GetScriptTable();
				}
			}
			AddTimer(timer);
			ser.EndGroup(); //timer
		}
	}
	else
	{
		// Saving.
		int nTimers = 0;
		for (ScriptTimerMap::iterator it = m_mapTimers.begin(); it != m_mapTimers.end(); ++it)
		{
			ScriptTimer *pTimer = it->second;

			if (pTimer->pScriptFunction) // Do not save timers that have script handle callback.
				continue;

			uint32 userDataEntityID = 0;

			// Save timer if there is either no user data
			// or if the user data is an entity table
			if (pTimer->pUserData)
			{
				ScriptHandle handle;

				if (pTimer->pUserData->GetValue("id", handle))
					userDataEntityID = (uint32)handle.n;
				else
				{
					gEnv->pLog->LogWarning(
						"Attempted to save timer with function '%s'"
						"where user data was not entity table. Skipping...",
						pTimer->sFuncName);
					continue;
				}
			}

			ser.BeginGroup("timer");
			ser.Value("id",pTimer->nTimerID);
			ser.Value("millis",pTimer->nMillis);
			
			nTimers++;
			string sFuncName = pTimer->sFuncName;
			ser.Value("func",sFuncName);

			if (userDataEntityID)
				ser.Value("entity", userDataEntityID);

			ser.EndGroup(); //timer
		}
		ser.Value( "count",nTimers );
	}


	ser.EndGroup(); //ScriptTimers
}
Beispiel #17
0
    void AIUpdate()
    {
        if( anchorGuid == 0 )
        {
            CheckForAnchor();
            if( anchorGuid != 0 )
            {
                state = PHASE_INACTIVE;
                RemoveAIUpdateEvent();
                return;
            }
        }

        if( state == PHASE_INACTIVE )
        {
            _unit->SetStandState( uint8(STANDSTATE_STAND) );
            _unit->RemoveAllAuras();

            Player * plr = _unit->GetMapMgrPlayer( _unit->GetSummonedByGUID() );
            if( plr )
                SetFacingToObject( plr );

            Creature * anchor = _unit->GetMapMgrCreature( anchorGuid );
            if( anchor )
            {
                anchor->SetChannelSpellTargetGUID( 0 );
                anchor->SetChannelSpellId( 0 );
                //anchor->GetCurrentSpell()->cancel();
            }

            timer = AddTimer(1000);
            state = PHASE_STANDUP;
        }
        else if( state == PHASE_STANDUP && IsTimerFinished(timer) )
        {
            _unit->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have committed a big mistake, demon");
            timer = AddTimer(5000);
            state = PHASE_REACH_ARMORY;
        }
        else if( state == PHASE_REACH_ARMORY && IsTimerFinished(timer) )
        {
            // test for nearest coords of armory
            uint32 nearest_entry = 0;
            uint32 nearest_distance = 1000;
            for(uint32 i = 0; i < sizeof(m_ArmoryLocations) / sizeof(Location); i++)
            {
                uint32 distance = _unit->CalcDistance(m_ArmoryLocations[i].x, m_ArmoryLocations[i].y, m_ArmoryLocations[i].z);

                if( distance < nearest_distance )
                {
                    nearest_distance = distance;
                    nearest_entry = i;
                }
            }

            // now go to nearest armory
            MoveTo(m_ArmoryLocations[nearest_entry].x, m_ArmoryLocations[nearest_entry].y, m_ArmoryLocations[nearest_entry].z, true);
            timer = AddTimer(2000);
            state = PHASE_ACTIVATE;
        }
        else if( state == PHASE_ACTIVATE && IsTimerFinished(timer) )
        {
            // face off the player
            Player * plr = _unit->GetMapMgrPlayer( _unit->GetSummonedByGUID() );
            if( plr )
                SetFacingToObject( plr );

            // select suitable spell
            uint32 spell_to_cast = 0;
            for(uint32 i = 0; i < sizeof(m_DisplayToSpell) / sizeof(DisplayToSpell); i++)
            {
                if( m_DisplayToSpell[i].displayid == _unit->GetDisplayId() )
                {
                    spell_to_cast = m_DisplayToSpell[i].spellid;
                    break;
                }
            }

            // change look
            _unit->CastSpell(_unit, spell_to_cast, false);
            _unit->CastSpell(_unit, 48266, false); // blood presence
            timer = AddTimer(2000);
            state = PHASE_ATTACK_PLAYER;
            // he equips same weapon as normal DK?
            SetDisplayWeaponIds(38707, 0);
        }
        else if( state == PHASE_ATTACK_PLAYER && IsTimerFinished(timer) )
        {
            _unit->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "And now you die!");
            state = PHASE_ATTACKING; // we are fighting
            timer = AddTimer(1000);
        }
        else if( state == PHASE_ATTACKING && IsTimerFinished(timer) )
        {
            _unit->SetFaction( 16 );

            Player * plr = _unit->GetMapMgrPlayer( _unit->GetSummonedByGUID() );
            if( plr )
            {
                SetCanEnterCombat( true );
                _unit->GetAIInterface()->AttackReaction( plr, 500, 0 );
                _unit->GetAIInterface()->setNextTarget( plr );
                _unit->GetAIInterface()->SetAIState(STATE_ATTACKING);
                _unit->GetAIInterface()->EventEnterCombat( plr, 0 );
            }

            state = -1;
            //_unit->SetUInt32Value( UNIT_FIELD_FLAGS, 0 );
        }

        ParentClass::AIUpdate();
    }
Beispiel #18
0
uint64_t TimerManager::AddOneshotTimer(int64_t interval,
                                       CallbackClosure* closure) {
    return AddTimer(interval, false, closure);
}
Beispiel #19
0
	void OnCombatStart(Unit* pTarget)
	{
		mStompTimer = AddTimer( STOMP_TIMER );
		ParentClass::OnCombatStart( pTarget );
	};
Beispiel #20
0
 WarbringerRazuunAI(Creature* pCreature) : MoonScriptCreatureAI(pCreature)
 {
     RegisterAIUpdateEvent(1000);
     mRazuunTimer = AddTimer(800);
     mRazuunPhase = 0;
 }
Beispiel #21
0
/**
 *  Konstruktor von @p iwDistribution.
 *
 *  @author OLiver
 */
iwDistribution::iwDistribution(void)
    : IngameWindow(CGI_DISTRIBUTION, 0xFFFF, 0xFFFF, 290, 312, _("Distribution of goods"), LOADER.GetImageN("resource", 41)),
      settings_changed(false)
{
    ctrlGroup* group;

    // Werte für die Progressbars
    //const GameClientPlayer *player = GAMECLIENT.GetLocalPlayer();

    // Tab Control
    ctrlTab* tab = AddTabCtrl(0, 10, 20, 270);

    // Nahrungsgruppe
    group = tab->AddTab(LOADER.GetImageN("io", 80), _("Foodstuff"), TAB_FOOD);
    // Granitbergwerk
    group->AddText(0, width / 2,  60, _("Granite mine"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(1, PROGRESS_BORDER_DISTANCE - tab->GetX(false),  60, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Kohlebergwerk
    group->AddText(2, width / 2, 100, _("Coal mine"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(3, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 100, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Eisenbergwerk
    group->AddText(4, width / 2, 140, _("Iron mine"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(5, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 140, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Goldbergwerk
    group->AddText(6, width / 2, 180, _("Gold mine"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(7, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 180, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);

    // Getreidegruppe
    group = tab->AddTab(LOADER.GetImageN("io", 90), _("Grain"), TAB_CORN);

    // Mühle
    group->AddText(0, width / 2,  60, _("Mill"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(1, PROGRESS_BORDER_DISTANCE - tab->GetX(false),  60, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Schweinezucht
    group->AddText(2, width / 2, 100, _("Pig farm"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(3, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 100, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Eselzucht
    group->AddText(4, width / 2, 140, _("Donkey breeding"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(5, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 140, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Brauerei
    group->AddText(6, width / 2, 180, _("Brewery"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(7, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 180, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Charburner
    group->AddText(8, width / 2, 220, _("Charburner"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(9, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 220, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);

    // Eisengruppe
    group = tab->AddTab(LOADER.GetImageN("io", 81), _("Iron"), TAB_IRON);

    // Schmiede
    group->AddText(0, width / 2,  60, _("Armory"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(1, PROGRESS_BORDER_DISTANCE - tab->GetX(false),  60, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Schlosserei
    group->AddText(2, width / 2, 100, _("Metalworks"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(3, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 100, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);

    // Kohlegruppe
    group = tab->AddTab(LOADER.GetImageN("io", 91), _("Coal"), TAB_COAL);

    // Schmiede
    group->AddText(0, width / 2,  60, _("Armory"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(1, PROGRESS_BORDER_DISTANCE - tab->GetX(false),  60, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Eisenschmelze
    group->AddText(2, width / 2, 100, _("Iron smelter"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(3, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 100, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Münzprägerei
    group->AddText(4, width / 2, 140, _("Mint"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(5, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 140, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);

    // Wood group
    group = tab->AddTab(LOADER.GetImageN("io", 89), _("Wood"), TAB_WOOD);

    // Sawmill
    group->AddText(0, width / 2,  60, _("Sawmill"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(1, PROGRESS_BORDER_DISTANCE - tab->GetX(false),  60, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Charburner
    group->AddText(2, width / 2, 100, _("Charburner"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(3, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 100, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);

    // Brettergruppe
    group = tab->AddTab(LOADER.GetImageN("io", 82), _("Boards"), TAB_BOARD);

    // Baustellen
    group->AddText(0, width / 2,  60, _("Construction"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(1, PROGRESS_BORDER_DISTANCE - tab->GetX(false),  60, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Schlosserei
    group->AddText(2, width / 2, 100, _("Metalworks"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(3, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 100, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Werft
    group->AddText(4, 120, 140, _("Shipyard"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(5, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 140, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);

    // Wasserbüffel äh -gruppe ;-)
    group = tab->AddTab(LOADER.GetImageN("io", 92), _("Water"), TAB_WATER);

    // Bäckerei
    group->AddText(0, width / 2,  60, _("Bakery"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(1, PROGRESS_BORDER_DISTANCE - tab->GetX(false),  60, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Brauerei
    group->AddText(2, width / 2, 100, _("Brewery"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(3, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 100, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Schweinezucht
    group->AddText(4, width / 2, 140, _("Pig farm"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(5, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 140, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);
    // Eselzucht
    group->AddText(6, width / 2, 180, _("Donkey breeding"), COLOR_YELLOW, glArchivItem_Font::DF_CENTER | glArchivItem_Font::DF_BOTTOM, SmallFont);
    (void) group->AddProgress(7, PROGRESS_BORDER_DISTANCE - tab->GetX(false), 180, width - 2 * PROGRESS_BORDER_DISTANCE, 20, TC_GREY, 139, 138, 10);





    UpdateSettings();

    // Gruppe auswählen
    tab->SetSelection(0);

    // Timer für die Übertragung der Daten via Netzwerk
    AddTimer(1, 2000);


    // Hilfe
    AddImageButton(2, 15, height - 15 - 32, 32, 32, TC_GREY, LOADER.GetImageN("io", 21), _("Help"));
    // Standardbelegung
    AddImageButton(10, width - 15 - 32, height - 15 - 32, 32, 32, TC_GREY, LOADER.GetImageN("io", 191), _("Default"));

}
Beispiel #22
0
 bool CPVRGUIActions::AddTimerRule(const CFileItemPtr &item, bool bShowTimerSettings) const
 {
   return AddTimer(item, true, bShowTimerSettings);
 }
		void OnCombatStart(Unit* pTarget)
		{
			mBurningNovaTimer = AddTimer(15000);
			ParentClass::OnCombatStart(pTarget);
		}
Beispiel #24
0
// Configure which parts of the floor can fall apart
// 1 = left, 2 = right, 3 = both
func SetBreaky(int level)
{
    breakiness = level;
    SetAction("Be");
    AddTimer("CheckBurden", 4);
}
void UPPayHttpConnection::MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent& aEvent)
{
	
	switch (aEvent.iStatus)
	{
	case THTTPEvent::ERedirectedPermanently:
	case THTTPEvent::ERedirectedTemporarily:

		break;
	case THTTPEvent::EGotResponseHeaders:
	{
		RHTTPResponse resp = aTransaction.Response();
		ParaseResponseHeaders(resp);
		iEngineStatus = EGetHeader;
		if (iObserver)
		{
			iObserver->StateChange(EGetHeader);
		}
		
		AddTimer();
		//iObserver.ProgressNotify(iContentLength,0);
	}
		break;

	case THTTPEvent::EGotResponseBodyData:
	{
		MHTTPDataSupplier* dataSupplier = aTransaction.Response().Body();
		TPtrC8 ptr;
		TBool isLast = dataSupplier->GetNextDataPart(ptr);
		if (iContentLength > 0)
		{
			if (!iResponseBuffer)
			{
				iResponseBuffer = HBufC8::NewL(iContentLength);
			}
			iResponseBuffer->Des().Append(ptr);
		}
		else
		{
			if (!iResponseBuffer)
			{
				iResponseBuffer = ptr.Alloc();
			}
			else
			{
				iResponseBuffer = iResponseBuffer->ReAllocL(iResponseBuffer->Length() + ptr.Length());
				iResponseBuffer->Des().Append(ptr);
			}
		}
		dataSupplier->ReleaseData();
		if (iResponseBuffer && iObserver)
		{
			iObserver->ProgressNotify(iContentLength, iResponseBuffer->Length());
		}
		if (isLast)
		{
			
			iEngineStatus = EHttpFinished;
			Stop();
			if (iObserver)
			{
				iObserver->ResponseReceivedL(iResponseBuffer);
			}
			if (iObserver)
			{
				iObserver->StateChange(EHttpFinished);
			}

		}
		else
		{
			
			iEngineStatus = EGetBody;
			AddTimer();
		}
	}
		break;

	case THTTPEvent::EResponseComplete:
	{
		iEngineStatus = EHttpFinished;

		if (iResponseBuffer && iObserver)
		{
			iObserver->ProgressNotify(iContentLength, iResponseBuffer->Length());
		}
		if (iObserver)
		{
			iObserver->StateChange(EHttpFinished);
		}
		Stop();

	}
		break;
	case THTTPEvent::ESucceeded:
	{
		iEngineStatus = EHttpFinished;
		if (iResponseBuffer && iObserver)
		{
			iObserver->ProgressNotify(iContentLength, iResponseBuffer->Length());
		}
		if (iObserver)
		{
			iObserver->StateChange(EHttpFinished);
		}
		Stop();
	}
		break;
	case THTTPEvent::EFailed:
	{
		Stop();
		if (iObserver)
		{
			iObserver->StateChange(EHttpError);
		}
	}
		break;
	default:
		break;
	}
}
Beispiel #26
0
/**
 *  Konstruktor von @p iwTools.
 *
 *  @author OLiver
 */
iwTransport::iwTransport()
    : IngameWindow(CGI_TRANSPORT, 0xFFFF, 0xFFFF, 166, 333, _("Transport"), LOADER.GetImageN("io", 5)),
      settings_changed(false)
{
    AddImageButton(0, 18, 285, 30, 30, TC_GREY, LOADER.GetImageN("io",  21), _("Help"));

    // Standard
    AddImageButton(1, 60, 285, 48, 30, TC_GREY, LOADER.GetImageN("io", 191), _("Default"));
    // ganz hoch
    AddImageButton(2, 118, 235, 30, 20, TC_GREY, LOADER.GetImageN("io", 215), _("Top"));
    // hoch
    AddImageButton(3, 118, 255, 30, 20, TC_GREY, LOADER.GetImageN("io",  33), _("Up"));
    // runter
    AddImageButton(4, 118, 275, 30, 20, TC_GREY, LOADER.GetImageN("io",  34), _("Down"));
    // ganz runter
    AddImageButton(5, 118, 295, 30, 20, TC_GREY, LOADER.GetImageN("io", 216), _("Bottom"));

    // Buttons der einzelnen Waren anlegen
    ctrlOptionGroup* group = AddOptionGroup(6, ctrlOptionGroup::ILLUMINATE);

    // Zeiger auf die Bilder für die einzelnen Waren in der Transportschlange
    TRANSPORT_SPRITES[0] = LOADER.GetMapImageN(2250 + GD_COINS);
    TRANSPORT_SPRITES[1] = LOADER.GetImageN("io", 111);
    TRANSPORT_SPRITES[2] = LOADER.GetMapImageN(2250 + GD_BEER);
    TRANSPORT_SPRITES[3] = LOADER.GetMapImageN(2250 + GD_IRON);
    TRANSPORT_SPRITES[4] = LOADER.GetMapImageN(2250 + GD_GOLD);
    TRANSPORT_SPRITES[5] = LOADER.GetMapImageN(2250 + GD_IRONORE);
    TRANSPORT_SPRITES[6] = LOADER.GetMapImageN(2250 + GD_COAL);
    TRANSPORT_SPRITES[7] = LOADER.GetMapImageN(2250 + GD_BOARDS);
    TRANSPORT_SPRITES[8] = LOADER.GetMapImageN(2250 + GD_STONES);
    TRANSPORT_SPRITES[9] = LOADER.GetMapImageN(2250 + GD_WOOD);
    TRANSPORT_SPRITES[10] = LOADER.GetMapImageN(2250 + GD_WATER);
    TRANSPORT_SPRITES[11] = LOADER.GetImageN("io", 80);
    TRANSPORT_SPRITES[12] = LOADER.GetMapImageN(2250 + GD_HAMMER);
    TRANSPORT_SPRITES[13] = LOADER.GetMapImageN(2250 + GD_BOAT);

    //// Tooltips festlegen
    //for(unsigned i = 0;i<14;++i)
    //  tooltip_indices[i] = STD_TOOLTIP_INDICES[GAMECLIENT.visual_settings.transport_order[i]];


    // Positionen der einzelnen Buttons
    const unsigned short BUTTON_POS[14][2] =
    {
        {20, 25},
        {52, 42},
        {84, 59},
        {116, 76},
        {84, 93},
        {52, 110},
        {20, 127},
        {52, 144},
        {84, 161},
        {116, 178},
        {84, 195},
        {52, 212},
        {20, 229},
        {52, 246}
    };

    // Einstellungen festlegen
    for(unsigned char i = 0; i < 14; ++i)
        group->AddImageButton(i, BUTTON_POS[i][0], BUTTON_POS[i][1], 30, 30, TC_GREY,
                              TRANSPORT_SPRITES[GAMECLIENT.visual_settings.transport_order[i]],
                              _(TOOLTIPS[GAMECLIENT.visual_settings.transport_order[i]]));

    // Netzwerk-Übertragungs-Timer
    AddTimer(7, 2000);
}
Beispiel #27
0
HINT CBTHmiDlg::OnInit()
{
	m_pTxtBk = new HCTextCtrl;
	m_bBTNoticeShow = false;
	 sbtSourceGroup *pSource= btSource::Instance()->GetBtSource(GetHMIPath(_T("")).c_str());
	if(pSource != NULL)
	{
		if(m_pTxtBk != NULL)
		{
			m_pTxtBk->Create(0,0,800,480);
			if(pSource->m_pbtHmiBk != NULL)
			{
				//m_pTxtBk->SetBkgndN(pSource->m_pbtHmiBk);
				//ChangeLanguage(0);
			}
			m_pTxtBk->SetShow(true);
			AddChild(m_pTxtBk);
		}
	}
	m_nHMIState = 100;
	m_bPhoneReady = false;
	m_bBTConneted = false;
	m_bBTHIDConnected = false;
	m_bBTSPPConnected = false;
	m_bSourceRealse = true;
	m_hAVD = INVALID_HANDLE_VALUE;
	//m_HandelTemp = INVALID_HANDLE_VALUE;
//	AddTimer(&m_ctTimeToBackToZero);
	//m_ctTimeToBackToZero.SetCallBack(BackToZero,this);
	//AddTimer(&m_ctSingel);
	//m_ctSingel.SetCallBack(OnCheckForReady,this);
	m_nBackToZero = 100;
	m_nCout = 0;
	m_ctNotice.SetCallBack(OnBTNoticeShow,this);
	AddTimer(&m_ctNotice);
	m_PosCurrentCePostion.x = 0;
	m_PosCurrentCePostion.y = 0;
	m_bHMIShow = false;
	m_pGetCameraSignalStatus = NULL;
	m_HandleCheck = INVALID_HANDLE_VALUE;
	//m_hDll = NULL;
	//m_pGetCameraSignalStatus = NULL;
	m_hDll = NULL;
//	AddTimer(&m_ctStateManage);
	//m_ctStateManage.SetCallBack(StateMange,this);
	//m_hDll = LoadLibraryW(L"\\Windows\\DriverAPI.dll");
	m_hDll = CBTCommand::Instance()->GetDriverDLL();
	//HINSTANCE hDll = LoadLibrary(TEXT("\\Windows\\DriverAPI.dll"));
	pClearLayeredWindowBuffer pFun = NULL; 
	if(m_hDll != NULL)
	{
		pFun=  (pClearLayeredWindowBuffer)GetProcAddress(m_hDll,_T("ClearLayeredWindowBuffer")); 
	}
	if(pFun != NULL)
	{
		pFun(m_hAVD,WIN_MEDIA);
		BTDEBUGINFO(L"ClearLayeredWindowBuffer success!");
	}
	if(m_hDll != NULL)
	{
		m_pGetCameraSignalStatus = (pGetCameraSignalStatus)GetProcAddress(m_hDll,_T("GetCameraSignalStatus"));
		m_pInitCameraPreview = (pInitCameraPreview)GetProcAddress(m_hDll,_T("InitCameraPreview"));
		m_pRequestCameraPreviewRsc = (pRequestCameraPreviewRsc)GetProcAddress(m_hDll,_T("RequestCameraPreviewRsc"));
		m_pSetCameraPreviewChannel =  ( pSetCameraPreviewChannel )GetProcAddress(m_hDll,_T("SetCameraPreviewChannel"));  
		m_pInitLayeredWindow = (pInitLayeredWindow)GetProcAddress(m_hDll,_T("InitLayeredWindow"));
		m_pRequestLayeredWindowRsc =(pRequestLayeredWindowRsc)GetProcAddress(m_hDll,_T("RequestLayeredWindowRsc")); 
		m_pGetLayeredWindowPhyFreBuffer = (pGetLayeredWindowPhyFreBuffer)GetProcAddress(m_hDll,_T("GetLayeredWindowPhyFreBuffer"));
		m_pSetLayeredWindowPosition = (pSetLayeredWindowPosition)GetProcAddress(m_hDll,_T("SetLayeredWindowPosition"));
		m_pSetLayeredWindowAlpha = (pSetLayeredWindowAlpha)GetProcAddress(m_hDll,_T("SetLayeredWindowAlpha"));
		m_pSetLayeredWindowColorKey = (pSetLayeredWindowColorKey)GetProcAddress(m_hDll,_T("SetLayeredWindowColorKey"));
		m_pOpenLayeredWindow = (pOpenLayeredWindow)GetProcAddress(m_hDll,_T("OpenLayeredWindow"));
		 m_pUnInitCameraPreview = (pUnInitCameraPreview)GetProcAddress(m_hDll,_T("UnInitCameraPreview"));
		 m_pReleaseCameraPreviewRsc = (pReleaseCameraPreviewRsc)GetProcAddress(m_hDll,_T("ReleaseCameraPreviewRsc"));
		 m_pStopCameraPreview = (pStopCameraPreview)GetProcAddress(m_hDll,_T("StopCameraPreview"));
		if(m_pInitCameraPreview == NULL || m_pGetCameraSignalStatus == NULL)
		{
			BTDEBUGINFO(L"m_pInitCameraPreview|m_pGetCameraSignalStatus = NULL");

		}
	}
	//FreeLibrary(hDll);
	if(m_pInitCameraPreview != NULL)
	{
		if(m_HandleCheck == INVALID_HANDLE_VALUE)
		{
			//m_HandleCheck = m_pInitCameraPreview();
			//m_pRequestCameraPreviewRsc(m_HandleCheck);
			//m_pSetCameraPreviewChannel(m_HandleCheck,CAM_PRE_VGA);
		}
	}
	//ShowHMIVidio();
	//OnCheckForReady(NULL);
	return 0;
}
int CEpgScan::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data)
{
	if ((msg == NeutrinoMessages::EVT_TIMER) && (data == rescan_timer)) {
		INFO("rescan timer in %s mode, scanning %d", standby ? "standby" : "live", scan_in_progress);
		scanned.clear();
		Clear();
		g_RCInput->killTimer(rescan_timer);
		if (CheckMode()) {
			if (standby)
				CNeutrinoApp::getInstance()->wakeupFromStandby();
			Start(standby);
		} else {
			AddTimer();
		}
		return messages_return::handled;
	}
	if (!CheckMode()) {
		int ret = messages_return::handled;
		if (msg == NeutrinoMessages::EVT_EIT_COMPLETE)
			scan_in_progress = false;
		else if (msg == NeutrinoMessages::EVT_BACK_ZAP_COMPLETE)
			scan_in_progress = true;
		else
			ret = messages_return::unhandled;
		return ret;
	}

	CZapitChannel * newchan;
	if (msg == NeutrinoMessages::EVT_ZAP_COMPLETE) {
		/* live channel changed, block scan channel change by timer */
		scan_in_progress = true;
		AddTransponders();
		INFO("EVT_ZAP_COMPLETE, scan map size: %d\n", scanmap.size());
#if 0
		t_channel_id chid = *(t_channel_id *)data;
		if (IS_WEBTV(chid))
			Next();
#endif
		return messages_return::handled;
	}
	else if (msg == NeutrinoMessages::EVT_EIT_COMPLETE) {
		scan_in_progress = false;
		t_channel_id chid = *(t_channel_id *)data;
		newchan = CServiceManager::getInstance()->FindChannel(chid);
		if (newchan) {
			scanned.insert(newchan->getTransponderId());
			scanmap.erase(newchan->getTransponderId());
		}
		INFO("EIT read complete [" PRINTF_CHANNEL_ID_TYPE "], scan map size: %d", chid, scanmap.size());

		Next();
		return messages_return::handled;
	}
	else if (msg == NeutrinoMessages::EVT_BACK_ZAP_COMPLETE) {
		scan_in_progress = true;
		t_channel_id chid = *(t_channel_id *)data;
		INFO("EVT_BACK_ZAP_COMPLETE [" PRINTF_CHANNEL_ID_TYPE "]", chid);
		if (next_chid) {
			newchan = CServiceManager::getInstance()->FindChannel(next_chid);
			if (newchan) {
				if(chid) {
					if (!CRecordManager::getInstance()->RecordingStatus()) {
						INFO("try to scan [%s]", newchan->getName().c_str());
						if (standby && !g_Sectionsd->getIsScanningActive())
							g_Sectionsd->setPauseScanning(false);
						g_Sectionsd->setServiceChanged(newchan->getChannelID(), false, newchan->getRecordDemux());
					}
				} else {
					INFO("tune failed [%s]", newchan->getName().c_str());
					scanmap.erase(newchan->getTransponderId());
					Next();
				}
			}
		}
		return messages_return::handled;
	}
	return messages_return::unhandled;
}
Beispiel #29
0
func InitActivity()
{
	if (GetAlive()) AddTimer(this.Activity, 10 + Random(5));
}
Beispiel #30
0
uint64_t TimerManager::AddPeriodTimer(int64_t interval,
                                      CallbackClosure* closure) {
    return AddTimer(interval, true, closure);
}