int main(int argc, char* argv_ansi[]) { //Localisation setlocale(LC_ALL, ""); 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); CLI_Option_Bom=false; #endif MediaInfo::Option_Static(__T("LineSeparator"), __T("\n")); //Using sdtout //Configure MediaInfo core Core MI; MI.Menu_View_Text(); //Default to text with CLI. //Retrieve command line (mainly for Unicode) GETCOMMANDLINE(); //Parse command line vector<String> List; for (int Pos=1; Pos<argc; Pos++) { //First part of argument (before "=") should be case insensitive String Argument(argv[Pos]); size_t Egal_Pos=Argument.find(__T('=')); if (Egal_Pos==string::npos) Egal_Pos=Argument.size(); transform(Argument.begin(), Argument.begin()+Egal_Pos, Argument.begin(), (int(*)(int))tolower); //(int(*)(int)) is a patch for unix int Return=Parse (MI, Argument); if (Return<0) return Return; //no more tasks to do if (Return>0) List.push_back(argv[Pos]); //Append the filename to the list of filenames to parse } //If no filenames (and no options) if (List.empty()) return Help_Nothing(); //Callback for error handling CallBack_Set(MI, (void*)Event_CallBackFunction); //Parse files MI.Menu_File_Open_Files_Begin(); size_t Files_Count=0; for (size_t Pos=0; Pos<List.size(); Pos++) Files_Count+=MI.Menu_File_Open_Files_Continue(List[Pos]); //Output STRINGOUT(MI.Inform_Get()); //Output, in a file if needed LogFile_Action(MI.Inform_Get()); return Files_Count?0:1; }
int main(int argc, char* argv_ansi[]) { //Localisation setlocale(LC_ALL, """"""); //Configure MediaInfo core Core MI; MI.Menu_View_Text(); //Default to text with CLI. //Retrieve command line (mainly for Unicode) GETCOMMANDLINE(); //Specific #ifdef __MACOSX__ MediaInfo::Option_Static(_T("LineSeparator"), _T("\n")); //if \r, output is broken, why? #endif //Parse command line vector<String> List; for (int Pos=1; Pos<argc; Pos++) { //First part of argument (before "=") should be case insensitive String Argument(argv[Pos]); size_t Egal_Pos=Argument.find(_T('=')); if (Egal_Pos==string::npos) Egal_Pos=Argument.size(); transform(Argument.begin(), Argument.begin()+Egal_Pos, Argument.begin(), (int(*)(int))tolower); //(int(*)(int)) is a patch for unix int Return=Parse (MI, Argument); if (Return<0) return Return; //no more tasks to do if (Return>0) List.push_back(argv[Pos]); //Append the filename to the list of filenames to parse } //If no filenames (and no options) if (List.empty()) return Help_Nothing(); //Parse files MI.Menu_File_Open_Files_Begin(); size_t Files_Count=0; for (size_t Pos=0; Pos<List.size(); Pos++) Files_Count+=MI.Menu_File_Open_Files_Continue(List[Pos]); //Output STRINGOUT(MI.Inform_Get()); //Output, in a file if needed LogFile_Action(MI.Inform_Get()); return Files_Count?0:1; }