void PrintOmxEvent(vlc_object_t *p_this, OMX_EVENTTYPE event, OMX_U32 data_1, OMX_U32 data_2, OMX_PTR event_data) { switch (event) { case OMX_EventCmdComplete: switch ((OMX_STATETYPE)data_1) { case OMX_CommandStateSet: msg_Dbg( p_this, "OmxEventHandler (%s, %s, %s)", EventToString(event), CommandToString(data_1), StateToString(data_2) ); break; default: msg_Dbg( p_this, "OmxEventHandler (%s, %s, %u)", EventToString(event), CommandToString(data_1), (unsigned int)data_2 ); break; } break; case OMX_EventError: msg_Dbg( p_this, "OmxEventHandler (%s, %s, %u, %s)", EventToString(event), ErrorToString((OMX_ERRORTYPE)data_1), (unsigned int)data_2, (const char *)event_data); break; default: msg_Dbg( p_this, "OmxEventHandler (%s, %u, %u)", EventToString(event), (unsigned int)data_1, (unsigned int)data_2 ); break; } }
bool mmConsole::mmClient::AutoComplete(void) { std::pair<std::wstring, std::size_t> v_sElement = m_sCommandLine.GetParam(); if(v_sElement.second == 0) { std::vector<mmCommandName> v_sGoodNames(m_sCommandNames.begin(), m_sCommandNames.end()); std::vector<mmCommandName>::iterator v_sGoodNamesEnd = (v_sElement.first.empty() ? v_sGoodNames.end() : std::remove_if(v_sGoodNames.begin(), v_sGoodNames.end(), RemoveIfNotPartialMatchNS(v_sElement.first))); if(v_sGoodNamesEnd - v_sGoodNames.begin() == 1) { EraseToPrompt(); m_sCommandLine.SetParam(CommandToString(v_sGoodNames.front())); return true; } else { NewLine(); for(std::vector<mmCommandName>::iterator v_sName = v_sGoodNames.begin(); v_sName != v_sGoodNamesEnd; ++v_sName) WriteLn(CommandToString(*v_sName)); if(! v_sElement.first.empty()) { std::vector<std::wstring> v_sGoodNamesFull; std::transform(v_sGoodNames.begin(), v_sGoodNamesEnd, std::back_inserter(v_sGoodNamesFull), CommandToString); std::wstring v_sCommonString = mmStringUtilities::GetCommonSubstring(v_sGoodNamesFull.begin(), v_sGoodNamesFull.end(), v_sElement.first.length()); if(v_sCommonString.length() > v_sElement.first.size()) m_sCommandLine.SetParam(v_sCommonString); } return false; } } else { mmCommands::mmCommand * v_psCommand = FindCommand(m_sCommandLine.GetParam(0)); if(v_psCommand != NULL) { std::vector<mmCommands::mmParam> v_sParams = v_psCommand->GetInputParams(); if(v_sElement.second - 1 < v_sParams.size()) { switch(v_sParams[v_sElement.second - 1].eType) { case mmCommands::mmParam::mmTypeImage: { if(m_psImageStructure->GetImageCount() == 0) { NewLine(); ::_cwprintf_s(L"%s (image): no images available\r\n", v_sParams[v_sElement.second - 1].sName.c_str()); return false; } std::vector<std::wstring> v_sImageNames; for(mmImages::mmImageI * v_psImage = m_psImageStructure->FindImage(); NULL != v_psImage; v_psImage = m_psImageStructure->FindImage(v_psImage)) v_sImageNames.push_back(v_psImage->GetName()); std::vector<std::wstring>::iterator v_sImageNamesEnd = std::remove_if(v_sImageNames.begin(), v_sImageNames.end(), RemoveIfNotPartialMatch(v_sElement.first)); if(v_sImageNamesEnd - v_sImageNames.begin() == 1) { EraseToPrompt(); m_sCommandLine.SetParam(v_sImageNames.front()); return true; } else { NewLine(); if(v_sImageNamesEnd != v_sImageNames.begin()) { for(std::vector<std::wstring>::iterator v_sName = v_sImageNames.begin(); v_sName != v_sImageNamesEnd; ++v_sName) WriteLn(*v_sName); if(! v_sElement.first.empty()) { std::wstring v_sCommonString = mmStringUtilities::GetCommonSubstring(v_sImageNames.begin(), v_sImageNamesEnd, v_sElement.first.length()); if(v_sCommonString.length() > v_sElement.first.size()) m_sCommandLine.SetParam(v_sCommonString); } } return false; } } break; case mmCommands::mmParam::mmTypeLayer: { NewLine(); ::_cwprintf_s(L"%s (layer)\r\n", v_sParams[v_sElement.second - 1].sName.c_str()); } break; case mmCommands::mmParam::mmTypeFile: { NewLine(); ::_cwprintf_s(L"%s (file)\r\n", v_sParams[v_sElement.second - 1].sName.c_str()); } break; case mmCommands::mmParam::mmTypeBool: { NewLine(); ::_cwprintf_s(L"%s (bool)\r\n", v_sParams[v_sElement.second - 1].sName.c_str()); } break; case mmCommands::mmParam::mmTypeInt: { NewLine(); ::_cwprintf_s(L"%s (int)\r\n", v_sParams[v_sElement.second - 1].sName.c_str()); } break; case mmCommands::mmParam::mmTypeReal: { NewLine(); ::_cwprintf_s(L"%s (real)\r\n", v_sParams[v_sElement.second - 1].sName.c_str()); } break; case mmCommands::mmParam::mmTypeString: { NewLine(); ::_cwprintf_s(L"%s (string)\r\n", v_sParams[v_sElement.second - 1].sName.c_str()); } break; default: { NewLine(); ::_cwprintf_s(L"%s (unknown type)\r\n", v_sParams[v_sElement.second - 1].sName.c_str()); } break; } } else { NewLine(); WriteLn(L"too many parameters"); } } } return false; }