| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| string SubmitPageTask::getFilePath() { return m_filePath; } |
| |
| |
| |
| void SubmitPageTask::setFilePath(const string &filePath) { |
| m_filePath = filePath; |
| } |
| |
| |
| |
| string SubmitPageTask::getName() { return m_name; } |
| |
| |
| |
| void SubmitPageTask::setName(const string &name) { m_name = name; } |
| |
| |
| |
| map<string, string> SubmitPageTask::getDependencies() { return m_depTasks; } |
| |
| |
| |
| void SubmitPageTask::setDependencies(const map<string, string> &tasks) { |
| m_depTasks = tasks; |
| } |
| |
| |
| |
| void SubmitPageTask::checkNameUnc() { |
| if (m_filePath == "") return; |
| |
| TFilePath fp(m_filePath); |
| string uncString = ""; |
| try { |
| uncString = convertToUncString(fp); |
| } catch (TException &) { |
| if (!TFileStatus(fp).doesExist()) { |
| string msg = toString(fp.getWideString()) + "\n"; |
| msg += "File not found\n"; |
| msg += "Please verify that the path is correct"; |
| throw TException(msg); |
| } |
| } |
| } |
| |
| |
| |
| CasmTask2::CasmTask2() { setDefaultValue(); } |
| |
| |
| |
| CasmTask2::CasmTask2(const string &s, const string &setupFilePath) |
| : m_setupFile(setupFilePath) { |
| setCommandLine(s); |
| } |
| |
| |
| |
| void CasmTask2::setDefaultValue() { |
| m_taskChunksize = 1; |
| m_start = 0; |
| m_end = 9999; |
| m_step = 1; |
| m_filePath = ""; |
| m_name = ""; |
| m_outname = ""; |
| m_firstFrame = 0; |
| m_lastFrame = 0; |
| m_reduction = 1; |
| m_moveType = M_BG_FRACMOVE; |
| m_prec = 32; |
| m_renderTile = 1.; |
| m_memChunk = 4.; |
| m_multimedia = false; |
| m_logfile = false; |
| m_cf = false; |
| m_restype = RES_TYPE_STANDARD; |
| m_noOverwrite = false; |
| m_clap = false; |
| m_mprocess = false; |
| m_numColumn = -1; |
| m_lineart = -1; |
| m_edgeAliasing = -1; |
| m_gamma = -1.; |
| m_bcScript = ""; |
| m_acScript = ""; |
| m_outputScript = ""; |
| m_outputScriptArgument = ""; |
| m_setupFile = ""; |
| xsize = 0; |
| ysize = 0; |
| } |
| |
| |
| |
| void CasmTask2::setFileArg(const string &fp) { |
| TFilePath filePath = TFilePath(fp); |
| CasmFileInfo casmFileInfo(filePath); |
| int start, end; |
| bool interlaced; |
| casmFileInfo.getFrameRange(start, end, interlaced); |
| |
| m_filePath = fp; |
| m_start = start; |
| m_end = end; |
| m_step = 1; |
| |
| setName(TFilePath(fp).getName()); |
| } |
| |
| |
| |
| string CasmTask2::getCommandLine() const { |
| string qualifiers, prgname, dirname, biname; |
| |
| if (m_reduction != 1) qualifiers += " -shrink " + toString(m_reduction) + " "; |
| |
| if (m_moveType != moveType::M_BG_FRACMOVE) |
| qualifiers += |
| (m_moveType == moveType::M_FRACMOVE) ? " -fracmove " : " -intmove "; |
| if (m_prec == 64) |
| qualifiers += " -64bit"; |
| else |
| qualifiers += " -32bit"; |
| |
| qualifiers += " -tile " + toString(m_renderTile) + " "; |
| |
| qualifiers += " -mem " + toString(m_memChunk) + " "; |
| |
| if (m_multimedia) { |
| if (m_numColumn < 0) |
| qualifiers += " -mm "; |
| else |
| qualifiers += " -mmsingle " + toString(m_numColumn) + " "; |
| } |
| |
| if (m_logfile) qualifiers += " -logfile +output/casm_batches.log "; |
| |
| if (m_lineart > -1) qualifiers += " -lineart " + toString(m_lineart) + " "; |
| if (m_edgeAliasing > -1) |
| qualifiers += " -edgealiasing " + toString(m_edgeAliasing) + " "; |
| if (m_gamma > -1.0) qualifiers += " -gamma " + toString(m_gamma) + " "; |
| |
| switch (m_restype) { |
| CASE RES_TYPE_STANDARD : qualifiers += " -sq "; |
| CASE RES_TYPE_IMPROVED : qualifiers += " -iq "; |
| CASE RES_TYPE_HIGH : qualifiers += " -hq "; |
| } |
| |
| if (m_cf) qualifiers += " -cf "; |
| |
| if (m_noOverwrite) qualifiers += " -no_overwrite "; |
| |
| if (m_clap) qualifiers += " -clap "; |
| |
| if (m_bcScript != "") qualifiers += " -bc " + m_bcScript + " "; |
| |
| if (m_acScript != "" && m_outputScript == "") |
| qualifiers += " -ac " + m_acScript + " "; |
| |
| if (m_outputScript != "") { |
| bool outputToDdr = (m_outputScript == DDR_OUTPUTSCRIPT_FILENAME); |
| |
| if (!outputToDdr) qualifiers += " -ac " + m_outputScript + " "; |
| if (m_outputScriptArgument != "") { |
| string entry_point = m_outputScriptArgument; |
| string parity = "odd"; |
| int i; |
| i = entry_point.size(); |
| if (i > 0 && entry_point[i - 1] == '+') { |
| parity = "even"; |
| entry_point[i - 1] = '\0'; |
| } |
| |
| if (outputToDdr) |
| qualifiers += " -ddr " + entry_point + " "; |
| else { |
| string app; |
| |
| app = " -ac_args \"$filename $count " + entry_point; |
| app += " " + parity; |
| app += " $total\" "; |
| qualifiers += app; |
| |
| app = " -ac_args '$filename $count " + entry_point; |
| app += " " + parity; |
| app += " $total' "; |
| qualifiers += " app; |
| #endif |
| } |
| } else { |
| if (outputToDdr) |
| qualifiers += " -ddr " + toString(0) + " "; |
| else |
| #ifdef WIN32 |
| qualifiers += " -ac_args \"$filename $count $total\" "; |
| |
| qualifiers += " -ac_args '$filename $count $total' "; |
| |
| } |
| } |
| |
| qualifiers += " -step " + toString(m_step); |
| |
| if (m_start > m_firstFrame || m_end < m_lastFrame) |
| qualifiers += " -range " + toString(m_start) + " " + toString(m_end) + " "; |
| |
| |
| |
| return qualifiers; |
| } |
| |
| |
| |
| static bool is_num(string word) { |
| string::iterator it = word.begin(); |
| while (it != word.end()) { |
| if ((*it < '0' || *it > '9') && *it != '.') return false; |
| it++; |
| } |
| return true; |
| } |
| |
| |
| |
| static string cpy_word(string &word, string s) { |
| |
| string::iterator it = s.begin(); |
| word = ""; |
| string::iterator it2 = word.begin(); |
| while (s[0] == ' ' || s[0] == '\t') it++; |
| if (s[0] == '\'' || s[0] == '\"') { |
| |
| char quote = *it++; |
| while (*it && *it != '\n') { |
| if (*it == '\\') { |
| it++; |
| if (*it == '\0' || *it == '\n') break; |
| switch (*it) { |
| CASE '\\' : *it2++ = '\\'; |
| DEFAULT: |
| *it2++ = *it; |
| } |
| it++; |
| } else if (*it == quote) { |
| it++; |
| break; |
| } else |
| *it2++ = *it++; |
| } |
| } else { |
| |
| while (*it && *it != ' ' && *it != '\t' && *it != '\n') *it2++ = *it++; |
| } |
| |
| |
| |
| while (*it == ' ' || *it == '\t') it++; |
| return s.erase(s.begin(), it); |
| } |
| |
| |
| |
| void CasmTask2::setCommandLine(const string &cmdLine) { |
| if (cmdLine.empty()) return; |
| |
| setDefaultValue(); |
| string s = cmdLine; |
| string::iterator it = s.begin(); |
| string word; |
| while (it != s.end()) { |
| s = cpy_word(word, s); |
| |
| if (word == "-64bit") |
| m_prec = 64; |
| else if (word == "-32bit") |
| m_prec = 32; |
| else if (word == "-sq") |
| m_restype = RES_TYPE_STANDARD; |
| else if (word == "-iq") |
| m_restype = RES_TYPE_IMPROVED; |
| else if (word == "-hq") |
| m_restype = RES_TYPE_HIGH; |
| else if (word == "-step") { |
| s = cpy_word(word, s); |
| if (is_num(word)) m_step = atoi(word.c_str()); |
| } else if (word == "-range") { |
| s = cpy_word(word, s); |
| if (is_num(word)) m_start = atoi(word.c_str()); |
| s = cpy_word(word, s); |
| if (is_num(word)) m_end = atoi(word.c_str()); |
| } else if (word == "-shrink") { |
| s = cpy_word(word, s); |
| if (is_num(word)) m_reduction = atoi(word.c_str()); |
| } else if (word == "-fracmove") { |
| m_moveType = M_FRACMOVE; |
| } else if (word == "-intmove") { |
| m_moveType = M_INTMOVE; |
| } |
| |
| |
| |
| |
| |
| |
| else if (word == "-tile") { |
| s = cpy_word(word, s); |
| if (is_num(word)) m_renderTile = atof(word.c_str()); |
| } else if (word == "-mem") { |
| s = cpy_word(word, s); |
| if (is_num(word)) m_taskChunksize = atoi(word.c_str()); |
| } else if (word == "-chunk") { |
| s = cpy_word(word, s); |
| if (is_num(word)) m_memChunk = atof(word.c_str()); |
| } else if (word == "-mm") { |
| m_multimedia = true; |
| m_numColumn = -1; |
| } else if (word == "-mmsingle") { |
| m_multimedia = true; |
| s = cpy_word(word, s); |
| if (is_num(word)) m_numColumn = atoi(word.c_str()); |
| } else if (word == "-lineart") { |
| s = cpy_word(word, s); |
| if (is_num(word)) m_lineart = atoi(word.c_str()); |
| } else if (word == "-edgealiasing") { |
| s = cpy_word(word, s); |
| if (is_num(word)) m_edgeAliasing = atoi(word.c_str()); |
| } else if (word == "-gamma") { |
| s = cpy_word(word, s); |
| if (is_num(word)) m_gamma = atof(word.c_str()); |
| } else if (word == "-cf") { |
| m_cf = true; |
| } else if (word == "-no_overwrite") { |
| m_noOverwrite = true; |
| } else if (word == "-clap") { |
| m_clap = true; |
| } else if (word == "-bc") { |
| s = cpy_word(word, s); |
| m_bcScript = word; |
| } else if (word == "-ac") { |
| s = cpy_word(word, s); |
| m_outputScript = word; |
| } else if (word == "-ac_args") { |
| |
| |
| |
| |
| } else if (word == "-logfile") { |
| s = cpy_word(word, s); |
| m_logfile = true; |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| it = s.begin(); |
| } |
| } |
| |
| |
| |
| void CasmTask2::checkNameUnc() { |
| SubmitPageTask::checkNameUnc(); |
| if (m_setupFile == "") return; |
| |
| TFilePath fp(m_setupFile); |
| string uncString = ""; |
| try { |
| uncString = convertToUncString(fp); |
| } catch (TException &) { |
| if (!TFileStatus(fp).doesExist()) { |
| string msg = toString(fp.getWideString()) + "\n"; |
| msg += "File not found\n"; |
| msg += "Please verify that the path is correct"; |
| throw TException(msg); |
| } |
| } |
| } |
| |
| |
| |
| ScriptTask::ScriptTask() { setDefaultValue(); } |
| |
| |
| |
| ScriptTask::ScriptTask(const string &s, const string &setupFilePath) |
| : m_setupFile(setupFilePath) { |
| setCommandLine(s); |
| } |
| |
| |
| |
| void ScriptTask::setFileArg(const string &fp) { |
| m_filePath = fp; |
| m_name = TFilePath(fp).getName(); |
| } |
| |
| |
| |
| string ScriptTask::getCommandLine() const { |
| string cmdLine; |
| if (m_filePath == "") { |
| assert(false); |
| return ""; |
| } |
| |
| |
| |
| |
| |
| |
| |
| cmdLine = "CALL " + m_filePath + " "; |
| |
| cmdLine = m_filePath; |
| |
| cmdLine += " "; |
| |
| if (m_arg1 != "") cmdLine += m_arg1 + " "; |
| if (m_arg2 != "") cmdLine += m_arg2 + " "; |
| if (m_arg3 != "") cmdLine += m_arg3 + " "; |
| if (m_arg4 != "") cmdLine += m_arg4 + " "; |
| if (m_arg5 != "") cmdLine += m_arg5 + " "; |
| return cmdLine; |
| } |
| |
| |
| |
| void ScriptTask::setCommandLine(const string &cmdLine) { |
| setDefaultValue(); |
| string s = cmdLine; |
| string word; |
| if (s == "") { |
| s = cpy_word(word, s); |
| |
| m_arg1 = word; |
| |
| |
| } |
| if (s == "") { |
| s = cpy_word(word, s); |
| |
| m_arg2 = word; |
| } |
| if (s == "") { |
| s = cpy_word(word, s); |
| |
| m_arg3 = word; |
| } |
| if (s == "") { |
| s = cpy_word(word, s); |
| |
| m_arg4 = word; |
| } |
| if (s == "") { |
| s = cpy_word(word, s); |
| |
| m_arg5 = word; |
| } |
| } |
| |
| |
| |
| void ScriptTask::setDefaultValue() { |
| m_name = ""; |
| m_filePath = ""; |
| m_setupFile = ""; |
| m_arg1 = ""; |
| m_arg2 = ""; |
| m_arg3 = ""; |
| m_arg4 = ""; |
| m_arg5 = ""; |
| } |
| |
| |
| |
| void ScriptTask::checkNameUnc() { |
| SubmitPageTask::checkNameUnc(); |
| if (m_arg1 == "") return; |
| |
| TFilePath fp(m_arg1); |
| string uncString = ""; |
| try { |
| uncString = convertToUncString(fp); |
| } catch (TException &) { |
| if (!TFileStatus(fp).doesExist()) { |
| string msg = toString(fp.getWideString()) + "\n"; |
| msg += "File not found\n"; |
| msg += "Please verify that the path is correct"; |
| throw TException(msg); |
| } |
| } |
| } |
| |