예제 #1
0
파일: utils.c 프로젝트: jsharma44/vlc
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;
    }
}
예제 #2
0
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;
}