Commit 8de955668d904cf9adba5e62bcb871b75e263706

Authored by Josh Klontz
1 parent c9cf519c

introduced Template::readUniversalTemplate and Template::freeUniversalTemplate

openbr/openbr_plugin.cpp
@@ -439,6 +439,23 @@ Template Template::fromUniversalTemplate(const br_utemplate &ut) @@ -439,6 +439,23 @@ Template Template::fromUniversalTemplate(const br_utemplate &ut)
439 return Template(File(map), m); 439 return Template(File(map), m);
440 } 440 }
441 441
  442 +br_utemplate Template::readUniversalTemplate(QFile &file)
  443 +{
  444 + const size_t headerSize = sizeof(br_universal_template);
  445 + br_universal_template *t = (br_universal_template*) malloc(headerSize);
  446 + file.read((char*) t, headerSize);
  447 +
  448 + const size_t dataSize = t->mdSize + t->fvSize;
  449 + t = (br_universal_template*) realloc(t, headerSize + dataSize);
  450 + file.read((char*) &t->data, dataSize);
  451 + return t;
  452 +}
  453 +
  454 +void Template::freeUniversalTemplate(br_const_utemplate t)
  455 +{
  456 + free((void*) t);
  457 +}
  458 +
442 QDataStream &br::operator<<(QDataStream &stream, const Template &t) 459 QDataStream &br::operator<<(QDataStream &stream, const Template &t)
443 { 460 {
444 return stream << static_cast<const QList<cv::Mat>&>(t) << t.file; 461 return stream << static_cast<const QList<cv::Mat>&>(t) << t.file;
openbr/openbr_plugin.h
@@ -296,6 +296,8 @@ struct Template : public QList&lt;cv::Mat&gt; @@ -296,6 +296,8 @@ struct Template : public QList&lt;cv::Mat&gt;
296 296
297 static br_utemplate toUniversalTemplate(const Template &t); 297 static br_utemplate toUniversalTemplate(const Template &t);
298 static Template fromUniversalTemplate(const br_utemplate &ut); 298 static Template fromUniversalTemplate(const br_utemplate &ut);
  299 + static br_utemplate readUniversalTemplate(QFile &file);
  300 + static void freeUniversalTemplate(br_const_utemplate t);
299 }; 301 };
300 302
301 BR_EXPORT QDataStream &operator<<(QDataStream &stream, const Template &t); 303 BR_EXPORT QDataStream &operator<<(QDataStream &stream, const Template &t);