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); } } }
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.")); }
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?"); } } } }
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; }
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 ); } }
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); } }
/** * 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); }
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; }
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; }
void Start() { AddTimer(this, 100); }
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); }
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 }
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(); }
uint64_t TimerManager::AddOneshotTimer(int64_t interval, CallbackClosure* closure) { return AddTimer(interval, false, closure); }
void OnCombatStart(Unit* pTarget) { mStompTimer = AddTimer( STOMP_TIMER ); ParentClass::OnCombatStart( pTarget ); };
WarbringerRazuunAI(Creature* pCreature) : MoonScriptCreatureAI(pCreature) { RegisterAIUpdateEvent(1000); mRazuunTimer = AddTimer(800); mRazuunPhase = 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")); }
bool CPVRGUIActions::AddTimerRule(const CFileItemPtr &item, bool bShowTimerSettings) const { return AddTimer(item, true, bShowTimerSettings); }
void OnCombatStart(Unit* pTarget) { mBurningNovaTimer = AddTimer(15000); ParentClass::OnCombatStart(pTarget); }
// 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; } }
/** * 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); }
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; }
func InitActivity() { if (GetAlive()) AddTimer(this.Activity, 10 + Random(5)); }
uint64_t TimerManager::AddPeriodTimer(int64_t interval, CallbackClosure* closure) { return AddTimer(interval, true, closure); }