1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
/* Copyright (c) MediaArea.net SARL. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license that can
* be found in the License.html file in the root of the source tree.
*/
//---------------------------------------------------------------------------
#include <vector>
#include <algorithm>
#ifdef __BORLANDC__
#pragma hdrstop
#endif
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#ifdef MEDIAINFO_DLL_RUNTIME
#include "MediaInfoDLL/MediaInfoDLL.h"
#define MediaInfoNameSpace MediaInfoDLL
#elif defined MEDIAINFO_DLL_STATIC
#include "MediaInfoDLL/MediaInfoDLL_Static.h"
#define MediaInfoNameSpace MediaInfoDLL
#else
#include "MediaInfo/MediaInfoList.h"
#define MediaInfoNameSpace MediaInfoLib
#endif
#if defined(_MSC_VER) && defined(UNICODE)
#include "io.h"
#include "fcntl.h"
#endif
#include "CLI.h"
#include "CommandLine_Parser.h"
#include "MediaInfo/MediaInfo.h"
#include "MediaInfo/MediaInfo_Events.h"
//---------------------------------------------------------------------------
//***************************************************************************
// Main
//***************************************************************************
//---------------------------------------------------------------------------
int main(int argc, char* argv_ansi[])
{
//Localisation
setlocale(LC_ALL, "");
MediaInfoLib::MediaInfo::Option_Static(__T("CharSet"), __T(""));
//Initialize terminal (to fix Unicode output on Win32)
#if defined(_MSC_VER) && defined(UNICODE)
_setmode(_fileno(stdout), _O_U8TEXT);
_setmode(_fileno(stderr), _O_U8TEXT);
#endif
MediaInfoLib::MediaInfo::Option_Static(__T("LineSeparator"), __T("\n")); //Using sdtout
// TODO: Retrieve command line (mainly for Unicode)
GETCOMMANDLINE();
std::vector<std::string> args;
for (int i = 0; i < argc; ++i)
{
MediaInfoLib::String Argument(argv[i]);
args.push_back(ZenLib::Ztring(Argument).To_UTF8());
}
MediaConch::CLI cli;
int ret = cli.parse_args(args);
if (ret == CLI_RETURN_ERROR)
return 1;
else if (ret == CLI_RETURN_FINISH)
return 0;
std::string err;
if (cli.init(err) == CLI_RETURN_ERROR)
{
STRINGERR(ZenLib::Ztring().From_UTF8(err));
return 1;
}
if (cli.run(err) == CLI_RETURN_ERROR)
{
STRINGERR(ZenLib::Ztring().From_UTF8(err));
return 1;
}
cli.finish();
return 0;
}
|