int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QStringList args = a.arguments(); if(args.size() < 5) { std::cout << ">>> KESM Composer Controller ver " << kComposerControllerVersion << " <<<" << std::endl; std::cout << "Control composers." << std::endl; QFileInfo pathInfo(args[0]); QString fileName(pathInfo.completeBaseName()); std::cout << qPrintable(fileName )<< " dataPathName startIndex endIndex numberOfImagesToCompose" << std::endl; return kKESM_ERROR; } ProcessInfo processInfo; processInfo.init(args[1], args[2].toInt(), args[3].toInt(), args[4].toInt()); QString logTag; if(args.size() > 5) logTag = args[5]; std::cout << ">>> KESM Composer Controller ver " << kComposerControllerVersion << " <<<" << std::endl; std::cout << "Control composers." << std::endl; std::cout << "dataPathName: " << qPrintable(processInfo.dataPathName) << std::endl; std::cout << "startIndex: " << processInfo.startIndex << std::endl; std::cout << "endIndex: " << processInfo.endIndex << std::endl; std::cout << "numberOfImages: " << processInfo.numberOfImages << std::endl; //////////////////////////////////////////// // Controller KESM::ComposerController controller; for (int i = processInfo.startIndex; i < processInfo.endIndex; i+=kComposerUnitDepth) { //(processInfo.numberOfImages)/2) { processInfo.prepareArgs(i); QStringList argList; QString numberOfImages = QString("%1").arg(processInfo.args.numberOfImages); if(args.size() > 5) argList << processInfo.args.baseFilePathName << processInfo.args.outputPath << numberOfImages << logTag; else argList << processInfo.args.baseFilePathName << processInfo.args.outputPath << numberOfImages; std::cout << "Processing... " << i << ": " << qPrintable(processInfo.args.baseFilePathName) << std::endl; controller.process.startDetached(processInfo.processName, argList); //controller.process.start(processInfo.processName, argList); // default max wait time is 30 sec. // if more than 30 sec needed, we got to wait more... controller.process.waitForFinished();//kMaxProcessWaitTime); if(controller.isProcessError) break; } return kKESM_OK; //a.exec(); }