// This file is part of Motion Watch. // Motion Watch is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Motion Watch is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. #include "common.h" #include "camera.h" int main(int argc, char** argv) { QCoreApplication app(argc, argv); QCoreApplication::setApplicationName(APP_NAME); QCoreApplication::setApplicationVersion(APP_VER); cv::utils::logging::setLogLevel(cv::utils::logging::LogLevel::LOG_LEVEL_DEBUG); auto args = QCoreApplication::arguments(); auto ret = 0; if (args.contains("-h")) { QTextStream(stdout) << "Motion Watch " << APP_VER << Qt::endl << Qt::endl; QTextStream(stdout) << "Usage: mow " << Qt::endl << Qt::endl; QTextStream(stdout) << "-h : display usage information about this application." << Qt::endl; QTextStream(stdout) << "-c : path to the config file used to run a single camera instance." << Qt::endl; QTextStream(stdout) << "-d : path to a directory that can contain multiple config files." << Qt::endl; QTextStream(stdout) << " each file found in the directory will be used to run a" << Qt::endl; QTextStream(stdout) << " camera instance." << Qt::endl; QTextStream(stdout) << "-v : display the current version." << Qt::endl << Qt::endl; } else if (args.contains("-v")) { QTextStream(stdout) << APP_VER << Qt::endl; } else if (args.contains("-d")) { auto *muli = new MultiInstance(&app); ret = muli->start(args); if (ret == 0) { ret = QCoreApplication::exec(); } } else if (args.contains("-c")) { auto *cam = new Camera(&app); ret = cam->start(args); if (ret == 0) { ret = QCoreApplication::exec(); } } else { QTextStream(stderr) << "err: no config file(s) were given in -c" << Qt::endl; } return ret; }