Use the new CLI parser class in a few more places.
This commit is contained in:
parent
b18d067d51
commit
2d7aa8f949
@ -46,6 +46,8 @@ s_parameters[] =
|
|||||||
{ "skip-avisynth-check", 0, CLI_PARAM_SKIP_AVS_CHECK },
|
{ "skip-avisynth-check", 0, CLI_PARAM_SKIP_AVS_CHECK },
|
||||||
{ "skip-vapoursynth-check", 0, CLI_PARAM_SKIP_VPS_CHECK },
|
{ "skip-vapoursynth-check", 0, CLI_PARAM_SKIP_VPS_CHECK },
|
||||||
{ "force-cpu-no-64bit", 0, CLI_PARAM_FORCE_CPU_NO_X64 },
|
{ "force-cpu-no-64bit", 0, CLI_PARAM_FORCE_CPU_NO_X64 },
|
||||||
|
{ "force-cpu-no-64bit", 0, CLI_PARAM_FORCE_CPU_NO_SSE },
|
||||||
|
{ "force-cpu-no-64bit", 0, CLI_PARAM_FORCE_CPU_NO_INT },
|
||||||
{ "no-deadlock-detection", 0, CLI_PARAM_NO_DEADLOCK },
|
{ "no-deadlock-detection", 0, CLI_PARAM_NO_DEADLOCK },
|
||||||
{ "console", 0, CLI_PARAM_DEBUG_CONSOLE },
|
{ "console", 0, CLI_PARAM_DEBUG_CONSOLE },
|
||||||
{ "no-console", 0, CLI_PARAM_NO_DEBUG_CONSOLE },
|
{ "no-console", 0, CLI_PARAM_NO_DEBUG_CONSOLE },
|
||||||
|
10
src/cli.h
10
src/cli.h
@ -37,10 +37,12 @@ static const int CLI_PARAM_SKIP_AVS_CHECK = 6;
|
|||||||
static const int CLI_PARAM_SKIP_VPS_CHECK = 7;
|
static const int CLI_PARAM_SKIP_VPS_CHECK = 7;
|
||||||
static const int CLI_PARAM_SKIP_X264_CHECK = 8;
|
static const int CLI_PARAM_SKIP_X264_CHECK = 8;
|
||||||
static const int CLI_PARAM_FORCE_CPU_NO_X64 = 9;
|
static const int CLI_PARAM_FORCE_CPU_NO_X64 = 9;
|
||||||
static const int CLI_PARAM_NO_DEADLOCK = 10;
|
static const int CLI_PARAM_FORCE_CPU_NO_SSE = 10;
|
||||||
static const int CLI_PARAM_DEBUG_CONSOLE = 11;
|
static const int CLI_PARAM_FORCE_CPU_NO_INT = 11;
|
||||||
static const int CLI_PARAM_NO_DEBUG_CONSOLE = 12;
|
static const int CLI_PARAM_NO_DEADLOCK = 12;
|
||||||
static const int CLI_PARAM_NO_GUI_STYLE = 13;
|
static const int CLI_PARAM_DEBUG_CONSOLE = 13;
|
||||||
|
static const int CLI_PARAM_NO_DEBUG_CONSOLE = 14;
|
||||||
|
static const int CLI_PARAM_NO_GUI_STYLE = 15;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// CLI Parser
|
// CLI Parser
|
||||||
|
130
src/global.cpp
130
src/global.cpp
@ -19,14 +19,7 @@
|
|||||||
// http://www.gnu.org/licenses/gpl-2.0.txt
|
// http://www.gnu.org/licenses/gpl-2.0.txt
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
//x264 includes
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "targetver.h"
|
|
||||||
|
|
||||||
//Version
|
|
||||||
#define ENABLE_X264_VERSION_INCLUDE
|
|
||||||
#include "version.h"
|
|
||||||
#undef ENABLE_X264_VERSION_INCLUDE
|
|
||||||
|
|
||||||
//Windows includes
|
//Windows includes
|
||||||
#define NOMINMAX
|
#define NOMINMAX
|
||||||
@ -47,6 +40,15 @@
|
|||||||
//VLD
|
//VLD
|
||||||
#include <vld.h>
|
#include <vld.h>
|
||||||
|
|
||||||
|
//x264 includes
|
||||||
|
#include "targetver.h"
|
||||||
|
#include "cli.h"
|
||||||
|
|
||||||
|
//Version
|
||||||
|
#define ENABLE_X264_VERSION_INCLUDE
|
||||||
|
#include "version.h"
|
||||||
|
#undef ENABLE_X264_VERSION_INCLUDE
|
||||||
|
|
||||||
//Qt includes
|
//Qt includes
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
@ -656,89 +658,6 @@ void x264_init_console(const QStringList &argv)
|
|||||||
{
|
{
|
||||||
bool enableConsole = x264_is_prerelease() || (X264_DEBUG);
|
bool enableConsole = x264_is_prerelease() || (X264_DEBUG);
|
||||||
|
|
||||||
if(_environ)
|
|
||||||
{
|
|
||||||
wchar_t *logfile = NULL;
|
|
||||||
size_t logfile_len = 0;
|
|
||||||
if(!_wdupenv_s(&logfile, &logfile_len, L"X264_LOGFILE"))
|
|
||||||
{
|
|
||||||
if(logfile && (logfile_len > 0))
|
|
||||||
{
|
|
||||||
FILE *temp = NULL;
|
|
||||||
if(!_wfopen_s(&temp, logfile, L"wb"))
|
|
||||||
{
|
|
||||||
fprintf(temp, "%c%c%c", char(0xEF), char(0xBB), char(0xBF));
|
|
||||||
g_x264_log_file = temp;
|
|
||||||
}
|
|
||||||
free(logfile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!X264_DEBUG)
|
|
||||||
{
|
|
||||||
for(int i = 0; i < argv.count(); i++)
|
|
||||||
{
|
|
||||||
if(!argv.at(i).compare("--console", Qt::CaseInsensitive))
|
|
||||||
{
|
|
||||||
enableConsole = true;
|
|
||||||
}
|
|
||||||
else if(!argv.at(i).compare("--no-console", Qt::CaseInsensitive))
|
|
||||||
{
|
|
||||||
enableConsole = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(enableConsole)
|
|
||||||
{
|
|
||||||
if(!g_x264_console_attached)
|
|
||||||
{
|
|
||||||
if(AllocConsole() != FALSE)
|
|
||||||
{
|
|
||||||
SetConsoleCtrlHandler(NULL, TRUE);
|
|
||||||
SetConsoleTitle(L"Simple x264 Launcher | Debug Console");
|
|
||||||
SetConsoleOutputCP(CP_UTF8);
|
|
||||||
g_x264_console_attached = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(g_x264_console_attached)
|
|
||||||
{
|
|
||||||
//-------------------------------------------------------------------
|
|
||||||
//See: http://support.microsoft.com/default.aspx?scid=kb;en-us;105305
|
|
||||||
//-------------------------------------------------------------------
|
|
||||||
const int flags = _O_WRONLY | _O_U8TEXT;
|
|
||||||
int hCrtStdOut = _open_osfhandle((intptr_t) GetStdHandle(STD_OUTPUT_HANDLE), flags);
|
|
||||||
int hCrtStdErr = _open_osfhandle((intptr_t) GetStdHandle(STD_ERROR_HANDLE), flags);
|
|
||||||
FILE *hfStdOut = (hCrtStdOut >= 0) ? _fdopen(hCrtStdOut, "wb") : NULL;
|
|
||||||
FILE *hfStdErr = (hCrtStdErr >= 0) ? _fdopen(hCrtStdErr, "wb") : NULL;
|
|
||||||
if(hfStdOut) { *stdout = *hfStdOut; std::cout.rdbuf(new std::filebuf(hfStdOut)); }
|
|
||||||
if(hfStdErr) { *stderr = *hfStdErr; std::cerr.rdbuf(new std::filebuf(hfStdErr)); }
|
|
||||||
}
|
|
||||||
|
|
||||||
HWND hwndConsole = GetConsoleWindow();
|
|
||||||
|
|
||||||
if((hwndConsole != NULL) && (hwndConsole != INVALID_HANDLE_VALUE))
|
|
||||||
{
|
|
||||||
HMENU hMenu = GetSystemMenu(hwndConsole, 0);
|
|
||||||
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
|
|
||||||
RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND);
|
|
||||||
|
|
||||||
SetWindowPos(hwndConsole, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_FRAMECHANGED);
|
|
||||||
SetWindowLong(hwndConsole, GWL_STYLE, GetWindowLong(hwndConsole, GWL_STYLE) & (~WS_MAXIMIZEBOX) & (~WS_MINIMIZEBOX));
|
|
||||||
SetWindowPos(hwndConsole, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_FRAMECHANGED);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize the console
|
|
||||||
*/
|
|
||||||
void x264_init_console(int argc, char* argv[])
|
|
||||||
{
|
|
||||||
bool enableConsole = x264_is_prerelease() || (X264_DEBUG);
|
|
||||||
|
|
||||||
if(_environ)
|
if(_environ)
|
||||||
{
|
{
|
||||||
wchar_t *logfile = NULL;
|
wchar_t *logfile = NULL;
|
||||||
@ -760,17 +679,8 @@ void x264_init_console(int argc, char* argv[])
|
|||||||
|
|
||||||
if(!X264_DEBUG)
|
if(!X264_DEBUG)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < argc; i++)
|
if(CLIParser::checkFlag(CLI_PARAM_DEBUG_CONSOLE, argv)) enableConsole = true;
|
||||||
{
|
if(CLIParser::checkFlag(CLI_PARAM_NO_DEBUG_CONSOLE, argv)) enableConsole = false;
|
||||||
if(!_stricmp(argv[i], "--console"))
|
|
||||||
{
|
|
||||||
enableConsole = true;
|
|
||||||
}
|
|
||||||
else if(!_stricmp(argv[i], "--no-console"))
|
|
||||||
{
|
|
||||||
enableConsole = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(enableConsole)
|
if(enableConsole)
|
||||||
@ -1108,17 +1018,11 @@ x264_cpu_t x264_detect_cpu_features(const QStringList &argv)
|
|||||||
features.count = qBound(1UL, systemInfo.dwNumberOfProcessors, 64UL);
|
features.count = qBound(1UL, systemInfo.dwNumberOfProcessors, 64UL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(argv.count() > 0)
|
bool flag = false;
|
||||||
{
|
if(CLIParser::checkFlag(CLI_PARAM_FORCE_CPU_NO_X64, argv)) { flag = true; features.x64 = false; }
|
||||||
bool flag = false;
|
if(CLIParser::checkFlag(CLI_PARAM_FORCE_CPU_NO_SSE, argv)) { flag = true; features.sse = features.sse2 = features.sse3 = features.ssse3 = false; }
|
||||||
for(int i = 0; i < argv.count(); i++)
|
if(CLIParser::checkFlag(CLI_PARAM_FORCE_CPU_NO_INT, argv)) { flag = true; features.intel = false; }
|
||||||
{
|
if(flag) qWarning("CPU flags overwritten by user-defined parameters. Take care!\n");
|
||||||
if(!argv[i].compare("--force-cpu-no-64bit", Qt::CaseInsensitive)) { flag = true; features.x64 = false; }
|
|
||||||
if(!argv[i].compare("--force-cpu-no-sse", Qt::CaseInsensitive)) { flag = true; features.sse = features.sse2 = features.sse3 = features.ssse3 = false; }
|
|
||||||
if(!argv[i].compare("--force-cpu-no-intel", Qt::CaseInsensitive)) { flag = true; features.intel = false; }
|
|
||||||
}
|
|
||||||
if(flag) qWarning("CPU flags overwritten by user-defined parameters. Take care!\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
return features;
|
return features;
|
||||||
}
|
}
|
||||||
@ -1484,7 +1388,7 @@ bool x264_user_is_admin(void)
|
|||||||
/*
|
/*
|
||||||
* Initialize Qt framework
|
* Initialize Qt framework
|
||||||
*/
|
*/
|
||||||
bool x264_init_qt(int argc, char* argv[])
|
bool x264_init_qt(int &argc, char **argv)
|
||||||
{
|
{
|
||||||
static bool qt_initialized = false;
|
static bool qt_initialized = false;
|
||||||
typedef BOOL (WINAPI *SetDllDirectoryProc)(WCHAR *lpPathName);
|
typedef BOOL (WINAPI *SetDllDirectoryProc)(WCHAR *lpPathName);
|
||||||
|
@ -132,9 +132,9 @@ x264_cpu_t x264_detect_cpu_features(const QStringList &argv);
|
|||||||
bool x264_enable_close_button(const QWidget *win, const bool bEnable);
|
bool x264_enable_close_button(const QWidget *win, const bool bEnable);
|
||||||
void x264_fatal_exit(const wchar_t* exitMessage, const wchar_t* errorBoxMessage = NULL);
|
void x264_fatal_exit(const wchar_t* exitMessage, const wchar_t* errorBoxMessage = NULL);
|
||||||
void x264_finalization(void);
|
void x264_finalization(void);
|
||||||
void x264_init_console(int argc, char* argv[]);
|
void x264_init_console(const QStringList &argv);
|
||||||
void x264_init_process(QProcess &process, const QString &wokringDir, const bool bReplaceTempDir = true);
|
void x264_init_process(QProcess &process, const QString &wokringDir, const bool bReplaceTempDir = true);
|
||||||
bool x264_init_qt(int argc, char* argv[]);
|
bool x264_init_qt(int &argc, char **argv);
|
||||||
bool x264_is_executable(const QString &path);
|
bool x264_is_executable(const QString &path);
|
||||||
bool x264_is_prerelease(void);
|
bool x264_is_prerelease(void);
|
||||||
const QString &x264_known_folder(x264_known_folder_t folder_id);
|
const QString &x264_known_folder(x264_known_folder_t folder_id);
|
||||||
|
12
src/main.cpp
12
src/main.cpp
@ -44,8 +44,11 @@ void handleMultipleInstances(const QStringList &args, IPC *ipc);
|
|||||||
|
|
||||||
static int x264_main(int argc, char* argv[])
|
static int x264_main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
|
//Get CLI arguments
|
||||||
|
const QStringList &arguments = x264_arguments();
|
||||||
|
|
||||||
//Init console
|
//Init console
|
||||||
x264_init_console(argc, argv);
|
x264_init_console(arguments);
|
||||||
|
|
||||||
//Print version info
|
//Print version info
|
||||||
qDebug("Simple x264 Launcher v%u.%02u.%u - use 64-Bit x264 with 32-Bit Avisynth", x264_version_major(), x264_version_minor(), x264_version_build());
|
qDebug("Simple x264 Launcher v%u.%02u.%u - use 64-Bit x264 with 32-Bit Avisynth", x264_version_major(), x264_version_minor(), x264_version_build());
|
||||||
@ -65,9 +68,6 @@ static int x264_main(int argc, char* argv[])
|
|||||||
qWarning("---------------------------------------------------------\n");
|
qWarning("---------------------------------------------------------\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
//Get CLI arguments
|
|
||||||
const QStringList &arguments = x264_arguments();
|
|
||||||
|
|
||||||
//Detect CPU capabilities
|
//Detect CPU capabilities
|
||||||
const x264_cpu_t cpuFeatures = x264_detect_cpu_features(arguments);
|
const x264_cpu_t cpuFeatures = x264_detect_cpu_features(arguments);
|
||||||
qDebug(" CPU vendor id : %s (Intel: %s)", cpuFeatures.vendor, X264_BOOL(cpuFeatures.intel));
|
qDebug(" CPU vendor id : %s (Intel: %s)", cpuFeatures.vendor, X264_BOOL(cpuFeatures.intel));
|
||||||
@ -110,7 +110,7 @@ static int x264_main(int argc, char* argv[])
|
|||||||
WinSevenTaskbar::init();
|
WinSevenTaskbar::init();
|
||||||
|
|
||||||
//Set style
|
//Set style
|
||||||
if(!qApp->arguments().contains("--no-style", Qt::CaseInsensitive))
|
if(!CLIParser::checkFlag(CLI_PARAM_NO_GUI_STYLE, arguments))
|
||||||
{
|
{
|
||||||
qApp->setStyle(new QPlastiqueStyle());
|
qApp->setStyle(new QPlastiqueStyle());
|
||||||
}
|
}
|
||||||
@ -170,8 +170,6 @@ void handleMultipleInstances(const QStringList &args, IPC *ipc)
|
|||||||
case CLI_PARAM_NO_FORCE_ENQUEUE:
|
case CLI_PARAM_NO_FORCE_ENQUEUE:
|
||||||
flags = (flags & (~IPC_FLAG_FORCE_ENQUEUE));
|
flags = (flags & (~IPC_FLAG_FORCE_ENQUEUE));
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
qWarning("Unknown command-line option!");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#define VER_X264_MAJOR 2
|
#define VER_X264_MAJOR 2
|
||||||
#define VER_X264_MINOR 3
|
#define VER_X264_MINOR 3
|
||||||
#define VER_X264_PATCH 0
|
#define VER_X264_PATCH 0
|
||||||
#define VER_X264_BUILD 743
|
#define VER_X264_BUILD 744
|
||||||
|
|
||||||
#define VER_X264_MINIMUM_REV 2380
|
#define VER_X264_MINIMUM_REV 2380
|
||||||
#define VER_X264_CURRENT_API 142
|
#define VER_X264_CURRENT_API 142
|
||||||
|
@ -1531,8 +1531,6 @@ bool MainWindow::parseCommandLineArgs(void)
|
|||||||
case CLI_PARAM_NO_FORCE_ENQUEUE:
|
case CLI_PARAM_NO_FORCE_ENQUEUE:
|
||||||
flags = (flags & (~IPC_FLAG_FORCE_ENQUEUE));
|
flags = (flags & (~IPC_FLAG_FORCE_ENQUEUE));
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
qWarning("Unknown command-line option!");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user