#include "arvidline.h" ArVidLine::ArVidLine() { this->clear(); } ArVidLine::ArVidLine(const ArVidLine &in_object) : PCMLine(in_object) { // Copy base class fields. PCMLine::operator =(in_object); // Copy own fields. // Copy pixel coordinates. for(uint8_t bit=0;bit0); text_out += DUMP_WBRR_OK; } return text_out; } //------------------------ Output full information about the line. std::string ArVidLine::dumpContentString() { std::string text_out; char c_buf[256]; if(isServiceLine()!=false) { if(isServNewFile()!=false) { sprintf(c_buf, "F[%03u] L[%03u] SERVICE LINE: next lines are from new file: %s", (unsigned int)frame_number, line_number, file_path.substr(0, 192).c_str()); text_out += c_buf; } else if(isServEndFile()!=false) { sprintf(c_buf, "F[%03u] L[%03u] SERVICE LINE: previous lines were last in the file", (unsigned int)frame_number, line_number); text_out += c_buf; } else if(isServFiller()!=false) { sprintf(c_buf, "F[%03u] L[%03u] SERVICE LINE: line from a filler frame", (unsigned int)frame_number, line_number); text_out += c_buf; } else if(isServEndField()!=false) { sprintf(c_buf, "F[%03u] L[%03u] SERVICE LINE: field of a frame ended", (unsigned int)frame_number, line_number); text_out += c_buf; } else if(isServEndFrame()!=false) { sprintf(c_buf, "F[%03u] L[%03u] SERVICE LINE: frame ended", (unsigned int)frame_number, line_number); text_out += c_buf; } } else { sprintf(c_buf, "F[%03u] L[%03u] ", (unsigned int)frame_number, line_number); text_out += c_buf; if(hasBWSet()==false) { sprintf(c_buf, "Y[%03u?%03u] ", black_level, white_level); text_out += c_buf; } else { sprintf(c_buf, "Y[%03u|%03u] ", black_level, white_level); text_out += c_buf; } if(isDataByRefSweep()!=false) { sprintf(c_buf, "R>[%03u|%03u|%03u] ", ref_low, ref_level, ref_high); } else if(isDataBySkip()!=false) { sprintf(c_buf, "R=[%03u|%03u|%03u] ", ref_low, ref_level, ref_high); } else { sprintf(c_buf, "R?[%03u|%03u|%03u] ", ref_low, ref_level, ref_high); } text_out += c_buf; if(isDataByCoordSweep()!=false) { sprintf(c_buf, "D[%03d:%04d] ", coords.data_start, coords.data_stop); text_out += c_buf; } else if(coords.areValid()!=false) { sprintf(c_buf, "D[%03d|%04d] ", coords.data_start, coords.data_stop); text_out += c_buf; } else { text_out += "D[N/A| N/A] "; } text_out += dumpWordsString(); sprintf(c_buf, " PPB[%02u.%03u] ", getPPB(), getPPBfrac()); text_out += c_buf; sprintf(c_buf, "T[%05u]", process_time); text_out += c_buf; } return text_out; } //------------------------ Next line in help output. std::string ArVidLine::helpDumpNext() { std::string text_out; // TODO return text_out; } void ArVidLine::calcCoordinates(uint8_t in_shift) { for(uint8_t bit=0;bit