bool CGUIWindowPrograms::OnContextButton(int itemNumber, CONTEXT_BUTTON button) { CFileItemPtr item = (itemNumber >= 0 && itemNumber < m_vecItems->Size()) ? m_vecItems->Get(itemNumber) : CFileItemPtr(); if (item && m_vecItems->IsVirtualDirectoryRoot()) { if (CGUIDialogContextMenu::OnContextButton("programs", item, button)) { Update(""); return true; } } switch (button) { case CONTEXT_BUTTON_GOTO_ROOT: Update(""); return true; case CONTEXT_BUTTON_INFO: OnInfo(itemNumber); return true; default: break; } return CGUIMediaWindow::OnContextButton(itemNumber, button); }
// ---------------------------------------------------------------------------------- void Logger::info(const char* message) { // SECURITY FIX: see above if (strlen(message)>MAX_LOG_MESSAGE_LENGTH) { return; } return OnInfo(message); }
// ---------------------------------------------------------------------------------- void Logger::info(const std::string &message) { // SECURITY FIX: otherwise it's easy to produce overruns ... if (message.length()>MAX_LOG_MESSAGE_LENGTH) { ai_assert(false); return; } return OnInfo(message.c_str()); }
bool CGUIWindowPrograms::OnMessage(CGUIMessage& message) { switch ( message.GetMessage() ) { case GUI_MSG_WINDOW_DEINIT: { if (m_thumbLoader.IsLoading()) m_thumbLoader.StopThread(); } break; case GUI_MSG_WINDOW_INIT: { m_dlgProgress = (CGUIDialogProgress*)g_windowManager.GetWindow(WINDOW_DIALOG_PROGRESS); // is this the first time accessing this window? if (m_vecItems->GetPath() == "?" && message.GetStringParam().IsEmpty()) message.SetStringParam(CMediaSourceSettings::Get().GetDefaultSource("programs")); return CGUIMediaWindow::OnMessage(message); } break; case GUI_MSG_CLICKED: { if (m_viewControl.HasControl(message.GetSenderId())) // list/thumb control { int iAction = message.GetParam1(); int iItem = m_viewControl.GetSelectedItem(); if (iAction == ACTION_PLAYER_PLAY) { OnPlayMedia(iItem); return true; } else if (iAction == ACTION_SHOW_INFO) { OnInfo(iItem); return true; } } } break; } return CGUIMediaWindow::OnMessage(message); }
bool CGUIControl::OnAction(const CAction &action) { if (HasFocus()) { switch (action.GetID()) { case ACTION_MOVE_DOWN: OnDown(); return true; case ACTION_MOVE_UP: OnUp(); return true; case ACTION_MOVE_LEFT: OnLeft(); return true; case ACTION_MOVE_RIGHT: OnRight(); return true; case ACTION_SHOW_INFO: return OnInfo(); case ACTION_NAV_BACK: return OnBack(); case ACTION_NEXT_CONTROL: OnNextControl(); return true; case ACTION_PREV_CONTROL: OnPrevControl(); return true; } } return false; }
void CMp4Muxer::OnRun() { mbRun = true; CmdAck(ME_OK); AM_ENSURE_OK_ (mpDataWriter->Init()); while (mbRun) { CPacket *pInBuffer; CPacketQueueInputPin *pInPin; if (!WaitInputBuffer(pInPin, pInBuffer)) break; // filter aborted, exit main loop switch (pInBuffer->GetType()) { case CPacket::AM_PAYLOAD_TYPE_INFO: OnInfo(pInBuffer); break; case CPacket::AM_PAYLOAD_TYPE_DATA: OnAVData(pInBuffer); break; case CPacket::AM_PAYLOAD_TYPE_EOS: OnEOS(pInBuffer); break; case CPacket::AM_PAYLOAD_TYPE_EVENT: OnEvent(pInBuffer); break; default: break; } pInBuffer->Release(); } AM_ENSURE_OK_ (mpDataWriter->Deinit()); PostEngineMsg(IEngine::MSG_EOS); INFO("MP4 Muxer exit mainloop\n"); }
bool CGUIBaseContainer::OnAction(const CAction &action) { if (action.GetID() >= KEY_ASCII) { OnJumpLetter((char)(action.GetID() & 0xff)); return true; } // stop the timer on any other action m_matchTimer.Stop(); switch (action.GetID()) { case ACTION_MOVE_LEFT: case ACTION_MOVE_RIGHT: case ACTION_MOVE_DOWN: case ACTION_MOVE_UP: case ACTION_NAV_BACK: case ACTION_PREVIOUS_MENU: { if (!HasFocus()) return false; if (action.GetHoldTime() > HOLD_TIME_START && ((m_orientation == VERTICAL && (action.GetID() == ACTION_MOVE_UP || action.GetID() == ACTION_MOVE_DOWN)) || (m_orientation == HORIZONTAL && (action.GetID() == ACTION_MOVE_LEFT || action.GetID() == ACTION_MOVE_RIGHT)))) { // action is held down - repeat a number of times float speed = std::min(1.0f, (float)(action.GetHoldTime() - HOLD_TIME_START) / (HOLD_TIME_END - HOLD_TIME_START)); unsigned int frameDuration = std::min(CTimeUtils::GetFrameTime() - m_lastHoldTime, 50u); // max 20fps // maximal scroll rate is at least 30 items per second, and at most (item_rows/7) items per second // i.e. timed to take 7 seconds to traverse the list at full speed. // minimal scroll rate is at least 10 items per second float maxSpeed = std::max(frameDuration * 0.001f * 30, frameDuration * 0.001f * GetRows() / 7); float minSpeed = frameDuration * 0.001f * 10; m_scrollItemsPerFrame += std::max(minSpeed, speed*maxSpeed); // accelerate to max speed m_lastHoldTime = CTimeUtils::GetFrameTime(); if(m_scrollItemsPerFrame < 1.0f)//not enough hold time accumulated for one step return true; while (m_scrollItemsPerFrame >= 1) { if (action.GetID() == ACTION_MOVE_LEFT || action.GetID() == ACTION_MOVE_UP) MoveUp(false); else MoveDown(false); m_scrollItemsPerFrame--; } return true; } else { //if HOLD_TIME_START is reached we need //a sane initial value for calculating m_scrollItemsPerPage m_lastHoldTime = CTimeUtils::GetFrameTime(); m_scrollItemsPerFrame = 0.0f; return CGUIControl::OnAction(action); } } case ACTION_CONTEXT_MENU: if (OnContextMenu()) return true; break; case ACTION_SHOW_INFO: if (m_listProvider) { int selected = GetSelectedItem(); if (selected >= 0 && selected < static_cast<int>(m_items.size())) { m_listProvider->OnInfo(m_items[selected]); return true; } } else if (OnInfo()) return true; else if (action.GetID()) return OnClick(action.GetID()); else return false; case ACTION_FIRST_PAGE: SelectItem(0); return true; case ACTION_LAST_PAGE: if (m_items.size()) SelectItem(m_items.size() - 1); return true; case ACTION_NEXT_LETTER: OnNextLetter(); return true; case ACTION_PREV_LETTER: OnPrevLetter(); return true; case ACTION_JUMP_SMS2: case ACTION_JUMP_SMS3: case ACTION_JUMP_SMS4: case ACTION_JUMP_SMS5: case ACTION_JUMP_SMS6: case ACTION_JUMP_SMS7: case ACTION_JUMP_SMS8: case ACTION_JUMP_SMS9: OnJumpSMS(action.GetID() - ACTION_JUMP_SMS2 + 2); return true; default: break; } return action.GetID() && OnClick(action.GetID()); }
void GPLogManager::Info(const QString &info) { emit OnInfo(info); }
void OnChanInfo(CommandSource &source, ChanServ::Channel *ci, InfoFormatter &info, bool show_hidden) override { OnInfo(source, ci, info); }
void OnNickInfo(CommandSource &source, NickServ::Nick *na, InfoFormatter &info, bool show_hidden) override { OnInfo(source, na->GetAccount(), info); }