Ignore:
Timestamp:
Jan 15, 2016, 4:22:49 AM (7 years ago)
Author:
roman
Message:

Added ability to flush media sample trace data to file via command line

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/DirectShowSpy/FilterGraphSpy.cpp

    r545 r569  
    104104}
    105105
     106#if defined(_WIN64)
     107        extern "C" __declspec(dllexport)
     108#else
     109        #pragma comment(linker, "/EXPORT:DoMediaSampleTraceTasks=_DoMediaSampleTraceTasks@16,PRIVATE")
     110        extern "C" // __declspec(dllexport)
     111#endif // defined(_WIN64)
     112
     113HRESULT STDMETHODCALLTYPE DoMediaSampleTraceTasks(HWND hParentWindow, HINSTANCE, LPSTR pszCommandLine, INT nShowCommand)
     114{
     115        _ATLTRY
     116        {
     117                CSingleThreadedApartment SingleThreadedApartment;
     118                hParentWindow; nShowCommand;
     119                CCommandLineArguments Arguments((LPCWSTR) CStringW(pszCommandLine), 0);
     120                for(; ; )
     121                {
     122                        CCommandLineArguments::CArgument Argument;
     123                        if(!Arguments.Next(Argument))
     124                                break;
     125                        __D(!Argument.m_bSwitch, E_INVALIDARG);
     126                        if(Argument.m_sValue.CompareNoCase(_T("reset")) == 0)
     127                        {
     128                                CMediaSampleTraceBase::ResetData();
     129                        } else
     130                        if(Argument.m_sValue.CompareNoCase(_T("write")) == 0)
     131                        {
     132                                CCommandLineArguments::CArgument PathArgument;
     133                                __D(Arguments.Next(PathArgument), E_INVALIDARG);
     134                                __D(!PathArgument.m_bSwitch, E_INVALIDARG);
     135                                CMediaSampleTraceBase::SaveToFile(CMediaSampleTraceBase::CreateDataText(), (LPCTSTR) PathArgument.m_sValue);
     136                        } else
     137                                __C(E_INVALIDARG);
     138                }
     139        }
     140        _ATLCATCH(Exception)
     141        {
     142                _C(Exception);
     143        }
     144        return S_OK;
     145}
     146
Note: See TracChangeset for help on using the changeset viewer.