Commit 17eabb7114746810542d3b7967a90d06665ed362

Authored by Josh Klontz
2 parents 6cdd5961 d15634d6

Merge pull request #214 from biometrics/recursive_property

Implement a method for setting properties after objects have been created
app/br/br.cpp
... ... @@ -178,7 +178,7 @@ public:
178 178 } else if (!strcmp(fun, "objects")) {
179 179 check(parc <= 2, "Incorrect parameter count for 'objects'.");
180 180 int size = br_objects(NULL, 0, parc >= 1 ? parv[0] : ".*", parc >= 2 ? parv[1] : ".*");
181   - char * temp = new char[size];
  181 + char *temp = new char[size];
182 182 br_objects(temp, size, parc >= 1 ? parv[0] : ".*", parc >= 2 ? parv[1] : ".*");
183 183 printf("%s\n", temp);
184 184 delete [] temp;
... ...
openbr/core/core.cpp
... ... @@ -49,7 +49,7 @@ struct AlgorithmCore
49 49  
50 50 QScopedPointer<Transform> trainingWrapper(Transform::make("DirectStream(readMode=DistributeFrames)", NULL));
51 51  
52   - CompositeTransform * downcast = dynamic_cast<CompositeTransform *>(trainingWrapper.data());
  52 + CompositeTransform *downcast = dynamic_cast<CompositeTransform *>(trainingWrapper.data());
53 53 if (downcast == NULL)
54 54 qFatal("downcast failed?");
55 55 downcast->transforms.append(this->transform.data());
... ... @@ -144,7 +144,7 @@ struct AlgorithmCore
144 144 fileExclusion = true;
145 145 }
146 146  
147   - Gallery * temp = Gallery::make(input);
  147 + Gallery *temp = Gallery::make(input);
148 148 qint64 total = temp->totalSize();
149 149  
150 150 Globals->currentStep = 0;
... ... @@ -156,13 +156,13 @@ struct AlgorithmCore
156 156  
157 157 if (!multiProcess) {
158 158 basePipe.reset(Transform::make(pipeDesc,NULL));
159   - CompositeTransform * downcast = dynamic_cast<CompositeTransform *>(basePipe.data());
  159 + CompositeTransform *downcast = dynamic_cast<CompositeTransform *>(basePipe.data());
160 160  
161 161 if (downcast == NULL) qFatal("downcast failed?");
162 162  
163 163 downcast->transforms.prepend(this->transform.data());
164 164 if (fileExclusion) {
165   - Transform * temp = Transform::make("FileExclusion(" + gallery.flat() + ")", downcast);
  165 + Transform *temp = Transform::make("FileExclusion(" + gallery.flat() + ")", downcast);
166 166 downcast->transforms.prepend(temp);
167 167 }
168 168  
... ... @@ -180,7 +180,7 @@ struct AlgorithmCore
180 180 // Next, we make a Stream (with placeholder transform)
181 181 QString streamDesc = "Stream(readMode=StreamGallery)";
182 182 QScopedPointer<Transform> baseStream(Transform::make(streamDesc, NULL));
183   - WrapperTransform * wrapper = dynamic_cast<WrapperTransform *> (baseStream.data());
  183 + WrapperTransform *wrapper = dynamic_cast<WrapperTransform *> (baseStream.data());
184 184  
185 185 // replace that placeholder with the pipe we built
186 186 wrapper->transform = basePipe.data();
... ... @@ -373,7 +373,7 @@ struct AlgorithmCore
373 373 File colGallery = targetGallery;
374 374 qint64 rowSize;
375 375  
376   - Gallery * temp;
  376 + Gallery *temp;
377 377 if (transposeMode)
378 378 {
379 379 rowGallery = targetGallery;
... ... @@ -456,7 +456,7 @@ struct AlgorithmCore
456 456 {
457 457 compareRegionDesc = compareRegionDesc;
458 458 compareRegion.reset(Transform::make(compareRegionDesc,NULL));
459   - CompositeTransform * downcast = dynamic_cast<CompositeTransform *> (compareRegion.data());
  459 + CompositeTransform *downcast = dynamic_cast<CompositeTransform *> (compareRegion.data());
460 460 if (downcast == NULL)
461 461 qFatal("Pipe downcast failed in compare");
462 462  
... ... @@ -496,7 +496,7 @@ struct AlgorithmCore
496 496  
497 497 // Assign the comparison transform we previously built, and the output transform we just built to
498 498 // two stages of a pipe.
499   - CompositeTransform * downcast = dynamic_cast<CompositeTransform *> (join.data());
  499 + CompositeTransform *downcast = dynamic_cast<CompositeTransform *> (join.data());
500 500 downcast->transforms.append(compareRegion.data());
501 501 downcast->transforms.append(outputTform.data());
502 502  
... ... @@ -508,7 +508,7 @@ struct AlgorithmCore
508 508 // and pass the transforms it reads through the base algorithm.
509 509 QString streamDesc = "Stream(readMode=StreamGallery)";
510 510 QScopedPointer<Transform> streamBase(Transform::make(streamDesc, NULL));
511   - WrapperTransform * streamWrapper = dynamic_cast<WrapperTransform *> (streamBase.data());
  511 + WrapperTransform *streamWrapper = dynamic_cast<WrapperTransform *> (streamBase.data());
512 512 streamWrapper->transform = join.data();
513 513  
514 514 // The transform we will use is now complete.
... ... @@ -687,7 +687,7 @@ void br::Convert(const File &amp;fileType, const File &amp;inputFile, const File &amp;output
687 687  
688 688 if (targetFiles.size() != m.cols)
689 689 {
690   - MatrixOutput * mOut = dynamic_cast<MatrixOutput *>(o.data());
  690 + MatrixOutput *mOut = dynamic_cast<MatrixOutput *>(o.data());
691 691 if (mOut)
692 692 mOut->data.create(queryFiles.size(), 1, CV_32FC1);
693 693 }
... ... @@ -730,7 +730,7 @@ QSharedPointer&lt;br::Transform&gt; br::Transform::fromAlgorithm(const QString &amp;algori
730 730 else {
731 731 QSharedPointer<Transform> orig_tform = AlgorithmManager::getAlgorithm(algorithm)->transform;
732 732 QSharedPointer<Transform> newRoot = QSharedPointer<Transform>(Transform::make("Stream(readMode=DistributeFrames)", NULL));
733   - WrapperTransform * downcast = dynamic_cast<WrapperTransform *> (newRoot.data());
  733 + WrapperTransform *downcast = dynamic_cast<WrapperTransform *> (newRoot.data());
734 734 downcast->transform = orig_tform.data();
735 735 downcast->init();
736 736 return newRoot;
... ...
openbr/core/eval.cpp
... ... @@ -68,7 +68,7 @@ static float getTAR(const QList&lt;OperatingPoint&gt; &amp;operatingPoints, float FAR)
68 68  
69 69 // Decide whether to construct a normal mask matrix, or a pairwise mask by comparing the dimensions of
70 70 // scores with the size of the target and query lists
71   -static cv::Mat constructMatchingMask(const cv::Mat & scores, const FileList & target, const FileList & query, int partition=0)
  71 +static cv::Mat constructMatchingMask(const cv::Mat &scores, const FileList &target, const FileList &query, int partition=0)
72 72 {
73 73 // If the dimensions of the score matrix match the sizes of the target and query lists, construct a normal mask matrix
74 74 if (target.size() == scores.cols && query.size() == scores.rows)
... ... @@ -288,7 +288,7 @@ struct GenImpCounts
288 288 qint64 impCount;
289 289 };
290 290  
291   -float InplaceEval(const QString & simmat, const QString & target, const QString & query, const QString & csv)
  291 +float InplaceEval(const QString &simmat, const QString &target, const QString &query, const QString &csv)
292 292 {
293 293 qDebug("Evaluating %s%s%s",
294 294 qPrintable(simmat),
... ...
openbr/openbr_plugin.cpp
... ... @@ -517,7 +517,7 @@ TemplateList TemplateList::relabel(const TemplateList &amp;tl, const QString &amp;propNa
517 517 return result;
518 518 }
519 519  
520   -QList<int> TemplateList::indexProperty(const QString & propName, QHash<QString, int> * valueMap,QHash<int, QVariant> * reverseLookup) const
  520 +QList<int> TemplateList::indexProperty(const QString &propName, QHash<QString, int> * valueMap,QHash<int, QVariant> * reverseLookup) const
521 521 {
522 522 QHash<QString, int> dummyForwards;
523 523 QHash<int, QVariant> dummyBackwards;
... ... @@ -528,13 +528,13 @@ QList&lt;int&gt; TemplateList::indexProperty(const QString &amp; propName, QHash&lt;QString,
528 528 return indexProperty(propName, *valueMap, *reverseLookup);
529 529 }
530 530  
531   -QList<int> TemplateList::indexProperty(const QString & propName, QHash<QString, int> & valueMap, QHash<int, QVariant> & reverseLookup) const
  531 +QList<int> TemplateList::indexProperty(const QString &propName, QHash<QString, int> &valueMap, QHash<int, QVariant> &reverseLookup) const
532 532 {
533 533 valueMap.clear();
534 534 reverseLookup.clear();
535 535  
536 536 const QList<QVariant> originalLabels = File::values(*this, propName);
537   - foreach (const QVariant & label, originalLabels) {
  537 + foreach (const QVariant &label, originalLabels) {
538 538 QString labelString = label.toString();
539 539 if (!valueMap.contains(labelString)) {
540 540 reverseLookup.insert(valueMap.size(), label);
... ... @@ -717,6 +717,16 @@ void Object::load(QDataStream &amp;stream)
717 717 init();
718 718 }
719 719  
  720 +bool Object::setPropertyRecursive(const QString &name, QVariant value)
  721 +{
  722 + if (this->metaObject()->indexOfProperty(qPrintable(name)) == -1)
  723 + return false;
  724 +
  725 + setProperty(name, value);
  726 + init();
  727 + return true;
  728 +}
  729 +
720 730 void Object::setProperty(const QString &name, QVariant value)
721 731 {
722 732 QString type;
... ... @@ -1300,8 +1310,8 @@ QList&lt;Transform *&gt; Transform::getChildren() const
1300 1310 {
1301 1311 QList<Transform *> output;
1302 1312 for (int i=0; i < metaObject()->propertyCount(); i++) {
1303   - const char * prop_name = metaObject()->property(i).name();
1304   - const QVariant & variant = this->property(prop_name);
  1313 + const char *prop_name = metaObject()->property(i).name();
  1314 + const QVariant &variant = this->property(prop_name);
1305 1315  
1306 1316 if (variant.canConvert<Transform *>())
1307 1317 output.append(variant.value<Transform *>());
... ... @@ -1311,11 +1321,11 @@ QList&lt;Transform *&gt; Transform::getChildren() const
1311 1321 return output;
1312 1322 }
1313 1323  
1314   -TemplateEvent * Transform::getEvent(const QString & name)
  1324 +TemplateEvent *Transform::getEvent(const QString &name)
1315 1325 {
1316   - foreach(Transform * child, getChildren())
  1326 + foreach(Transform *child, getChildren())
1317 1327 {
1318   - TemplateEvent * probe = child->getEvent(name);
  1328 + TemplateEvent *probe = child->getEvent(name);
1319 1329 if (probe)
1320 1330 return probe;
1321 1331 }
... ... @@ -1337,7 +1347,7 @@ void Transform::train(const TemplateList &amp;data)
1337 1347 void Transform::train(const QList<TemplateList> &data)
1338 1348 {
1339 1349 TemplateList combined;
1340   - foreach(const TemplateList & set, data) {
  1350 + foreach(const TemplateList &set, data) {
1341 1351 combined.append(set);
1342 1352 }
1343 1353 train(combined);
... ...
openbr/openbr_plugin.h
... ... @@ -461,9 +461,9 @@ struct TemplateList : public QList&lt;Template&gt;
461 461 /*!< \brief Ensure labels are in the range [0,numClasses-1]. */
462 462 BR_EXPORT static TemplateList relabel(const TemplateList &tl, const QString &propName, bool preserveIntegers);
463 463  
464   - QList<int> indexProperty(const QString & propName, QHash<QString, int> * valueMap=NULL,QHash<int, QVariant> * reverseLookup = NULL) const;
465   - QList<int> indexProperty(const QString & propName, QHash<QString, int> & valueMap, QHash<int, QVariant> & reverseLookup) const;
466   - QList<int> applyIndex(const QString & propName, const QHash<QString, int> & valueMap) const;
  464 + QList<int> indexProperty(const QString &propName, QHash<QString, int> * valueMap=NULL,QHash<int, QVariant> * reverseLookup = NULL) const;
  465 + QList<int> indexProperty(const QString &propName, QHash<QString, int> &valueMap, QHash<int, QVariant> &reverseLookup) const;
  466 + QList<int> applyIndex(const QString &propName, const QHash<QString, int> &valueMap) const;
467 467  
468 468 /*!
469 469 * \brief Returns the total number of bytes in all the templates.
... ... @@ -539,7 +539,7 @@ struct TemplateList : public QList&lt;Template&gt;
539 539 * \brief Returns the number of occurences for each label in the list.
540 540 */
541 541 template<typename T>
542   - QMap<T,int> countValues(const QString & propName, bool excludeFailures = false) const
  542 + QMap<T,int> countValues(const QString &propName, bool excludeFailures = false) const
543 543 {
544 544 QMap<T, int> labelCounts;
545 545 foreach (const File &file, files())
... ... @@ -597,6 +597,8 @@ public:
597 597 QString argument(int index) const; /*!< \brief A string value for the argument at the specified index. */
598 598 QString description() const; /*!< \brief Returns a string description of the object. */
599 599 void setProperty(const QString &name, QVariant value); /*!< \brief Overload of QObject::setProperty to handle OpenBR data types. */
  600 + virtual bool setPropertyRecursive(const QString &name, QVariant value); /*!< \brief Recursive version of setProperty, try to set the property on this object, or its children, returns true if successful. */
  601 +
600 602 static QStringList parse(const QString &string, char split = ','); /*!< \brief Splits the string while respecting lexical scoping of <tt>()</tt>, <tt>[]</tt>, <tt>\<\></tt>, and <tt>{}</tt>. */
601 603  
602 604 private:
... ... @@ -1126,13 +1128,13 @@ class TemplateEvent : public QObject
1126 1128 Q_OBJECT
1127 1129  
1128 1130 public:
1129   - void pulseSignal(const Template & output) const
  1131 + void pulseSignal(const Template &output) const
1130 1132 {
1131 1133 emit theSignal(output);
1132 1134 }
1133 1135  
1134 1136 signals:
1135   - void theSignal(const Template & output) const;
  1137 + void theSignal(const Template &output) const;
1136 1138 };
1137 1139  
1138 1140 /*!
... ... @@ -1219,7 +1221,7 @@ public:
1219 1221 * and the transform can emit a final set if templates if it wants. Time-invariant transforms
1220 1222 * don't have to do anything.
1221 1223 */
1222   - virtual void finalize(TemplateList & output) { output = TemplateList(); }
  1224 + virtual void finalize(TemplateList &output) { output = TemplateList(); }
1223 1225  
1224 1226 /*!
1225 1227 * \brief Does the transform require the non-const version of project? Can vary for aggregation type transforms
... ... @@ -1256,14 +1258,14 @@ public:
1256 1258 * and copy enough of their state that projectUpdate can safely be called on the original
1257 1259 * instance, and the copy concurrently.
1258 1260 */
1259   - virtual Transform * smartCopy(bool & newTransform) { newTransform=false; return this;}
  1261 + virtual Transform *smartCopy(bool &newTransform) { newTransform=false; return this;}
1260 1262  
1261   - virtual Transform * smartCopy() {bool junk; return smartCopy(junk);}
  1263 + virtual Transform *smartCopy() {bool junk; return smartCopy(junk);}
1262 1264  
1263 1265 /*!
1264 1266 * \brief Recursively retrieve a named event, returns NULL if an event is not found.
1265 1267 */
1266   - virtual TemplateEvent * getEvent(const QString & name);
  1268 + virtual TemplateEvent *getEvent(const QString &name);
1267 1269  
1268 1270 /*!
1269 1271 * \brief Get a list of child transforms of this transform, child transforms are considered to be
... ...
openbr/plugins/draw.cpp
... ... @@ -163,7 +163,7 @@ class DrawPropertiesPointTransform : public UntrainableTransform
163 163 const Scalar textColor(255, 255, 0);
164 164  
165 165 std::string outString = "";
166   - foreach (const QString & propName, propNames)
  166 + foreach (const QString &propName, propNames)
167 167 {
168 168 QVariant prop = dst.file.value(propName);
169 169  
... ...
openbr/plugins/gallery.cpp
... ... @@ -725,7 +725,7 @@ class memGallery : public Gallery
725 725  
726 726 BR_REGISTER(Gallery, memGallery)
727 727  
728   -FileList FileList::fromGallery(const File & file, bool cache)
  728 +FileList FileList::fromGallery(const File &file, bool cache)
729 729 {
730 730 File targetMeta = file;
731 731 targetMeta.name = targetMeta.path() + targetMeta.baseName() + "_meta" + targetMeta.hash() + ".mem";
... ... @@ -1059,7 +1059,7 @@ class xmlGallery : public FileGallery
1059 1059 // a presentation!
1060 1060 if (signatureToken == QXmlStreamReader::StartElement && reader.name() == "presentation") {
1061 1061 templates.append(Template(File("",currentSignatureName)));
1062   - foreach (const QXmlStreamAttribute & attribute, reader.attributes()) {
  1062 + foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
1063 1063 // file-name is stored directly on file, not as a key/value pair
1064 1064 if (attribute.name() == "file-name")
1065 1065 templates.last().file.name = attribute.value().toString();
... ...
openbr/plugins/gui.cpp
... ... @@ -46,7 +46,7 @@ template&lt;typename T&gt;
46 46 class ActualCreation : public NominalCreation
47 47 {
48 48 public:
49   - T * basis;
  49 + T *basis;
50 50  
51 51 void creation()
52 52 {
... ... @@ -83,7 +83,7 @@ public:
83 83 // the template with the NominalCreation interface, and call worker->creation
84 84 // in the slot.
85 85 template<typename T>
86   - T * getItem()
  86 + T *getItem()
87 87 {
88 88 // If this is called by the main thread, we can just create the object
89 89 // it's important to check, otherwise we will have problems trying to
... ... @@ -103,12 +103,12 @@ public:
103 103 emit needCreation();
104 104  
105 105 // collect the results, and return.
106   - T * output = actualWorker->basis;
  106 + T *output = actualWorker->basis;
107 107 delete actualWorker;
108 108 return output;
109 109 }
110 110  
111   - NominalCreation * worker;
  111 + NominalCreation *worker;
112 112  
113 113 signals:
114 114 void needCreation();
... ... @@ -135,7 +135,7 @@ protected:
135 135  
136 136 public:
137 137  
138   - DisplayWindow(QWidget * parent = NULL) : QLabel(parent)
  138 + DisplayWindow(QWidget *parent = NULL) : QLabel(parent)
139 139 {
140 140 setFixedSize(200,200);
141 141 QApplication::instance()->installEventFilter(this);
... ... @@ -146,7 +146,7 @@ public:
146 146 }
147 147  
148 148 public slots:
149   - void showImage(const QPixmap & input)
  149 + void showImage(const QPixmap &input)
150 150 {
151 151 pixmap = input;
152 152  
... ... @@ -161,7 +161,7 @@ public slots:
161 161 setFixedSize(temp);
162 162 }
163 163  
164   - bool eventFilter(QObject * obj, QEvent * event)
  164 + bool eventFilter(QObject *obj, QEvent *event)
165 165 {
166 166 if (event->type() == QEvent::KeyPress)
167 167 {
... ... @@ -292,7 +292,7 @@ public:
292 292 } else {
293 293 if (event->type() == QEvent::KeyPress)
294 294 {
295   - QKeyEvent * kevent = (QKeyEvent *) event;
  295 + QKeyEvent *kevent = (QKeyEvent *) event;
296 296 if (kevent->key() == Qt::Key_Enter || kevent->key() == Qt::Key_Return) {
297 297 event->accept();
298 298 return true;
... ... @@ -315,7 +315,7 @@ public:
315 315 return QList<QPointF>();
316 316 }
317 317  
318   - void setKeys(const QStringList & keys)
  318 + void setKeys(const QStringList &keys)
319 319 {
320 320 promptKeys = keys;
321 321 }
... ... @@ -370,13 +370,13 @@ private:
370 370  
371 371 class PromptWindow : public DisplayWindow
372 372 {
373   - bool eventFilter(QObject * obj, QEvent * event)
  373 + bool eventFilter(QObject *obj, QEvent *event)
374 374 {
375 375 if (event->type() == QEvent::KeyPress)
376 376 {
377 377 event->accept();
378 378  
379   - QKeyEvent * key_event = dynamic_cast<QKeyEvent *> (event);
  379 + QKeyEvent *key_event = dynamic_cast<QKeyEvent *> (event);
380 380 if (key_event == NULL) {
381 381 qDebug("failed to donwcast key event");
382 382 return true;
... ... @@ -419,7 +419,7 @@ class GUIWindow : public QMainWindow
419 419  
420 420 public:
421 421  
422   - GUIWindow(QWidget * parent = NULL) : QMainWindow(parent)
  422 + GUIWindow(QWidget *parent = NULL) : QMainWindow(parent)
423 423 {
424 424 centralWidget = new QWidget();
425 425 layout = new QHBoxLayout();
... ... @@ -440,7 +440,7 @@ public:
440 440 }
441 441  
442 442 public slots:
443   - void showImage(const QPixmap & input)
  443 + void showImage(const QPixmap &input)
444 444 {
445 445 hide();
446 446  
... ... @@ -545,11 +545,11 @@ public:
545 545 if (src.empty())
546 546 return;
547 547  
548   - foreach (const Template & t, src) {
  548 + foreach (const Template &t, src) {
549 549 // build label
550 550 QString newTitle;
551 551  
552   - foreach (const QString & s, keys) {
  552 + foreach (const QString &s, keys) {
553 553 if (s.compare("name", Qt::CaseInsensitive) == 0) {
554 554 newTitle = newTitle + s + ": " + t.file.fileName() + " ";
555 555 } else if (t.file.contains(s)) {
... ... @@ -578,7 +578,7 @@ public:
578 578 }
579 579 }
580 580  
581   - void finalize(TemplateList & output)
  581 + void finalize(TemplateList &output)
582 582 {
583 583 (void) output;
584 584 emit hideWindow();
... ... @@ -614,13 +614,13 @@ public:
614 614  
615 615 protected:
616 616 MainThreadCreator creator;
617   - DisplayWindow * window;
  617 + DisplayWindow *window;
618 618 QImage qImageBuffer;
619   - QPixmap * displayBuffer;
  619 + QPixmap *displayBuffer;
620 620  
621 621 signals:
622   - void updateImage(const QPixmap & input);
623   - void changeTitle(const QString & input);
  622 + void updateImage(const QPixmap &input);
  623 + void changeTitle(const QString &input);
624 624 void hideWindow();
625 625 void destroyWindow();
626 626 };
... ... @@ -772,7 +772,7 @@ public:
772 772 }
773 773 }
774 774 }
775   - RectMarkingWindow * trueWindow;
  775 + RectMarkingWindow *trueWindow;
776 776 void init()
777 777 {
778 778 if (!Globals->useGui)
... ... @@ -812,7 +812,7 @@ public:
812 812  
813 813 void project(const TemplateList &src, TemplateList &dst) const
814 814 {
815   - Transform * non_const = (ElicitTransform *) this;
  815 + Transform *non_const = (ElicitTransform *) this;
816 816 non_const->projectUpdate(src,dst);
817 817 }
818 818  
... ... @@ -910,7 +910,7 @@ public:
910 910 }
911 911 }
912 912 }
913   - PromptWindow * p_window;
  913 + PromptWindow *p_window;
914 914  
915 915  
916 916 void init()
... ... @@ -964,7 +964,7 @@ public:
964 964 last_time = timer.elapsed();
965 965 }
966 966  
967   - void finalize(TemplateList & output)
  967 + void finalize(TemplateList &output)
968 968 {
969 969 (void) output;
970 970 }
... ... @@ -1024,7 +1024,7 @@ public:
1024 1024 }
1025 1025 }
1026 1026  
1027   - void finalize(TemplateList & output)
  1027 + void finalize(TemplateList &output)
1028 1028 {
1029 1029 (void) output;
1030 1030 }
... ...
openbr/plugins/independent.cpp
... ... @@ -9,7 +9,7 @@ using namespace cv;
9 9 namespace br
10 10 {
11 11  
12   -static TemplateList Downsample(const TemplateList &templates, int classes, int instances, float fraction, const QString & inputVariable, const QStringList &gallery, const QStringList &subjects)
  12 +static TemplateList Downsample(const TemplateList &templates, int classes, int instances, float fraction, const QString &inputVariable, const QStringList &gallery, const QStringList &subjects)
13 13 {
14 14 // Return early when no downsampling is required
15 15 if ((classes == std::numeric_limits<int>::max()) &&
... ... @@ -29,7 +29,7 @@ static TemplateList Downsample(const TemplateList &amp;templates, int classes, int i
29 29 QMap<QString,int> counts = templates.countValues<QString>(inputVariable, instances != std::numeric_limits<int>::max());
30 30  
31 31 if ((instances != std::numeric_limits<int>::max()) && (classes != std::numeric_limits<int>::max()))
32   - foreach (const QString & label, counts.keys())
  32 + foreach (const QString &label, counts.keys())
33 33 if (counts[label] < instances)
34 34 counts.remove(label);
35 35  
... ... @@ -94,7 +94,7 @@ class DownsampleTrainingTransform : public Transform
94 94 BR_PROPERTY(QStringList, subjects, QStringList())
95 95  
96 96  
97   - void project(const Template & src, Template & dst) const
  97 + void project(const Template &src, Template &dst) const
98 98 {
99 99 transform->project(src,dst);
100 100 }
... ... @@ -126,6 +126,21 @@ class IndependentTransform : public MetaTransform
126 126  
127 127 QList<Transform*> transforms;
128 128  
  129 +
  130 + bool setPropertyRecursive(const QString &name, QVariant value)
  131 + {
  132 + if (br::Object::setPropertyRecursive(name, value))
  133 + return true;
  134 +
  135 + if (!transform->setPropertyRecursive(name, value))
  136 + return false;
  137 +
  138 + for (int i=0;i < transforms.size();i++)
  139 + transforms[i]->setPropertyRecursive(name, value);
  140 +
  141 + return true;
  142 + }
  143 +
129 144 void init()
130 145 {
131 146 transforms.clear();
... ...
openbr/plugins/meta.cpp
... ... @@ -149,7 +149,7 @@ class PipeTransform : public CompositeTransform
149 149  
150 150 // For time varying transforms, parallel execution over individual templates
151 151 // won't work.
152   - void projectUpdate(const TemplateList & src, TemplateList & dst)
  152 + void projectUpdate(const TemplateList &src, TemplateList &dst)
153 153 {
154 154 dst = src;
155 155 foreach (Transform *f, transforms)
... ... @@ -158,7 +158,7 @@ class PipeTransform : public CompositeTransform
158 158 }
159 159 }
160 160  
161   - virtual void finalize(TemplateList & output)
  161 + virtual void finalize(TemplateList &output)
162 162 {
163 163 output.clear();
164 164 // For each transform,
... ... @@ -185,7 +185,7 @@ class PipeTransform : public CompositeTransform
185 185 QList<Transform *> flattened;
186 186 for (int i=0;i < transforms.size(); i++)
187 187 {
188   - PipeTransform * probe = dynamic_cast<PipeTransform *> (transforms[i]);
  188 + PipeTransform *probe = dynamic_cast<PipeTransform *> (transforms[i]);
189 189 if (!probe) {
190 190 flattened.append(transforms[i]);
191 191 continue;
... ... @@ -212,7 +212,7 @@ protected:
212 212 }
213 213  
214 214 // Single template const project, pass the template through each sub-transform, one after the other
215   - virtual void _project(const Template & src, Template & dst) const
  215 + virtual void _project(const Template &src, Template &dst) const
216 216 {
217 217 dst = src;
218 218 foreach (const Transform *f, transforms) {
... ... @@ -247,7 +247,7 @@ class ExpandTransform : public UntrainableMetaTransform
247 247 dst = Expanded(src);
248 248 }
249 249  
250   - virtual void project(const Template & src, Template & dst) const
  250 + virtual void project(const Template &src, Template &dst) const
251 251 {
252 252 dst = src;
253 253 qDebug("Called Expand project(Template,Template), nothing will happen");
... ... @@ -272,11 +272,11 @@ class ContractTransform : public UntrainableMetaTransform
272 272 if (src.empty()) return;
273 273 Template out;
274 274  
275   - foreach (const Template & t, src) {
  275 + foreach (const Template &t, src) {
276 276 out.merge(t);
277 277 }
278 278 out.file.clearRects();
279   - foreach (const Template & t, src) {
  279 + foreach (const Template &t, src) {
280 280 if (!t.file.rects().empty())
281 281 out.file.appendRects(t.file.rects());
282 282 }
... ... @@ -284,7 +284,7 @@ class ContractTransform : public UntrainableMetaTransform
284 284 dst.append(out);
285 285 }
286 286  
287   - virtual void project(const Template & src, Template & dst) const
  287 + virtual void project(const Template &src, Template &dst) const
288 288 {
289 289 qFatal("this has gone bad");
290 290 (void) src; (void) dst;
... ... @@ -316,7 +316,7 @@ class ForkTransform : public CompositeTransform
316 316 }
317 317  
318 318 // same as _project, but calls projectUpdate on sub-transforms
319   - void projectupdate(const Template & src, Template & dst)
  319 + void projectupdate(const Template &src, Template &dst)
320 320 {
321 321 foreach (Transform *f, transforms) {
322 322 try {
... ... @@ -331,7 +331,7 @@ class ForkTransform : public CompositeTransform
331 331 }
332 332 }
333 333  
334   - void projectUpdate(const TemplateList & src, TemplateList & dst)
  334 + void projectUpdate(const TemplateList &src, TemplateList &dst)
335 335 {
336 336 dst.reserve(src.size());
337 337 for (int i=0; i<src.size(); i++) dst.append(Template(src[i].file));
... ... @@ -345,7 +345,7 @@ class ForkTransform : public CompositeTransform
345 345  
346 346 // this is probably going to go bad, fork transform probably won't work well in a variable
347 347 // input/output scenario
348   - virtual void finalize(TemplateList & output)
  348 + virtual void finalize(TemplateList &output)
349 349 {
350 350 output.clear();
351 351 // For each transform,
... ... @@ -493,6 +493,12 @@ class LoadStoreTransform : public MetaTransform
493 493 public:
494 494 LoadStoreTransform() : transform(NULL) {}
495 495  
  496 + bool setPropertyRecursive(const QString &name, QVariant value)
  497 + {
  498 + if (br::Object::setPropertyRecursive(name, value))
  499 + return true;
  500 + return transform->setPropertyRecursive(name, value);
  501 + }
496 502 private:
497 503 void init()
498 504 {
... ... @@ -543,7 +549,7 @@ private:
543 549 transform->projectUpdate(src, dst);
544 550 }
545 551  
546   - void finalize(TemplateList & output)
  552 + void finalize(TemplateList &output)
547 553 {
548 554 transform->finalize(output);
549 555 }
... ... @@ -635,7 +641,7 @@ class DistributeTemplateTransform : public MetaTransform
635 641  
636 642 public:
637 643  
638   - Transform * smartCopy(bool & newTransform)
  644 + Transform *smartCopy(bool &newTransform)
639 645 {
640 646 if (!transform->timeVarying()) {
641 647 newTransform = false;
... ... @@ -643,7 +649,7 @@ public:
643 649 }
644 650 newTransform = true;
645 651  
646   - DistributeTemplateTransform * output = new DistributeTemplateTransform;
  652 + DistributeTemplateTransform *output = new DistributeTemplateTransform;
647 653 bool newChild = false;
648 654 output->transform = transform->smartCopy(newChild);
649 655 if (newChild)
... ... @@ -660,8 +666,8 @@ public:
660 666 }
661 667  
662 668 QList<TemplateList> separated;
663   - foreach (const TemplateList & list, data) {
664   - foreach(const Template & t, list) {
  669 + foreach (const TemplateList &list, data) {
  670 + foreach(const Template &t, list) {
665 671 separated.append(TemplateList());
666 672 separated.last().append(t);
667 673 }
... ...
openbr/plugins/misc.cpp
... ... @@ -525,7 +525,7 @@ class IncrementalOutputTransform : public TimeVaryingTransform
525 525  
526 526 dst = src;
527 527 int idx =0;
528   - foreach(const Template & t, src) {
  528 + foreach(const Template &t, src) {
529 529 if (t.empty())
530 530 continue;
531 531  
... ... @@ -546,7 +546,7 @@ class IncrementalOutputTransform : public TimeVaryingTransform
546 546 }
547 547  
548 548 // Drop the current gallery.
549   - void finalize(TemplateList & data)
  549 + void finalize(TemplateList &data)
550 550 {
551 551 (void) data;
552 552 galleryUp = false;
... ... @@ -573,7 +573,7 @@ class EventTransform : public UntrainableMetaTransform
573 573 event.pulseSignal(dst);
574 574 }
575 575  
576   - TemplateEvent * getEvent(const QString & name)
  576 + TemplateEvent *getEvent(const QString &name)
577 577 {
578 578 return name == eventName ? &event : NULL;
579 579 }
... ... @@ -646,7 +646,7 @@ class ProgressCounterTransform : public TimeVaryingTransform
646 646 (void) data;
647 647 }
648 648  
649   - void finalize(TemplateList & data)
  649 + void finalize(TemplateList &data)
650 650 {
651 651 (void) data;
652 652 float p = br_progress();
... ... @@ -692,7 +692,7 @@ class OutputTransform : public TimeVaryingTransform
692 692 return;
693 693  
694 694 // we received a template, which is the next row/column in order
695   - foreach(const Template & t, dst) {
  695 + foreach(const Template &t, dst) {
696 696 for (int i=0; i < t.m().cols; i++)
697 697 {
698 698 output->setRelative(t.m().at<float>(0, i), currentRow, currentCol);
... ... @@ -819,7 +819,7 @@ class FileExclusionTransform : public UntrainableMetaTransform
819 819  
820 820 void project(const TemplateList &src, TemplateList &dst) const
821 821 {
822   - foreach(const Template & srcTemp, src)
  822 + foreach(const Template &srcTemp, src)
823 823 {
824 824 if (!excluded.contains(srcTemp.file))
825 825 dst.append(srcTemp);
... ...
openbr/plugins/openbr_internal.h
... ... @@ -48,8 +48,8 @@ protected:
48 48 class TransformCopier : public ResourceMaker<Transform>
49 49 {
50 50 public:
51   - Transform * basis;
52   - TransformCopier(Transform * _basis)
  51 + Transform *basis;
  52 + TransformCopier(Transform *_basis)
53 53 {
54 54 basis = _basis;
55 55 }
... ... @@ -66,7 +66,7 @@ class TimeInvariantWrapperTransform : public MetaTransform
66 66 public:
67 67 Resource<Transform> transformSource;
68 68  
69   - TimeInvariantWrapperTransform(Transform * basis) : transformSource(new TransformCopier(basis))
  69 + TimeInvariantWrapperTransform(Transform *basis) : transformSource(new TransformCopier(basis))
70 70 {
71 71 if (!basis)
72 72 qFatal("TimeInvariantWrapper created with NULL transform");
... ... @@ -76,14 +76,14 @@ public:
76 76  
77 77 virtual void project(const Template &src, Template &dst) const
78 78 {
79   - Transform * aTransform = transformSource.acquire();
  79 + Transform *aTransform = transformSource.acquire();
80 80 aTransform->projectUpdate(src,dst);
81 81 transformSource.release(aTransform);
82 82 }
83 83  
84 84 void project(const TemplateList &src, TemplateList &dst) const
85 85 {
86   - Transform * aTransform = transformSource.acquire();
  86 + Transform *aTransform = transformSource.acquire();
87 87 aTransform->projectUpdate(src,dst);
88 88 transformSource.release(aTransform);
89 89 }
... ... @@ -94,7 +94,7 @@ public:
94 94 }
95 95  
96 96 private:
97   - Transform * baseTransform;
  97 + Transform *baseTransform;
98 98 };
99 99  
100 100 /*!
... ... @@ -120,7 +120,7 @@ public:
120 120  
121 121 // Get a compile failure if this isn't here to go along with the other
122 122 // projectUpdate, no idea why
123   - virtual void projectUpdate(const Template & src, Template & dst)
  123 + virtual void projectUpdate(const Template &src, Template &dst)
124 124 {
125 125 (void) src; (void) dst;
126 126 qFatal("do something useful");
... ... @@ -128,7 +128,7 @@ public:
128 128  
129 129 virtual void projectUpdate(const TemplateList &src, TemplateList &dst)
130 130 {
131   - foreach (const Template & src_part, src) {
  131 + foreach (const Template &src_part, src) {
132 132 Template out;
133 133 projectUpdate(src_part, out);
134 134 dst.append(out);
... ... @@ -139,7 +139,7 @@ public:
139 139 *\brief For transforms that don't do any training, this default implementation
140 140 * which creates a new copy of the Transform from its description string is sufficient.
141 141 */
142   - virtual Transform * smartCopy(bool & newTransform)
  142 + virtual Transform *smartCopy(bool &newTransform)
143 143 {
144 144 newTransform = true;
145 145 return this->clone();
... ... @@ -180,17 +180,17 @@ public:
180 180 {
181 181 transform->projectUpdate(src,dst);
182 182 }
183   - void projectUpdate(const TemplateList & src, TemplateList & dst)
  183 + void projectUpdate(const TemplateList &src, TemplateList &dst)
184 184 {
185 185 transform->projectUpdate(src,dst);
186 186 }
187 187  
188   - void train(const QList<TemplateList> & data)
  188 + void train(const QList<TemplateList> &data)
189 189 {
190 190 transform->train(data);
191 191 }
192 192  
193   - virtual void finalize(TemplateList & output)
  193 + virtual void finalize(TemplateList &output)
194 194 {
195 195 transform->finalize(output);
196 196 }
... ... @@ -201,6 +201,17 @@ public:
201 201 this->trainable = transform->trainable;
202 202 }
203 203  
  204 + bool setPropertyRecursive(const QString &name, QVariant value)
  205 + {
  206 + if (br::Object::setPropertyRecursive(name, value))
  207 + return true;
  208 +
  209 + if (transform->setPropertyRecursive(name, value)) {
  210 + init();
  211 + return true;
  212 + }
  213 + return false;
  214 + }
204 215 };
205 216  
206 217 /*!
... ... @@ -251,7 +262,7 @@ public:
251 262 * it creates a new copy of its own class, and gives that copy the child transforms
252 263 * returned by calling smartCopy on this transforms children
253 264 */
254   - Transform * smartCopy(bool & newTransform)
  265 + Transform *smartCopy(bool &newTransform)
255 266 {
256 267 if (!timeVarying()) {
257 268 newTransform = false;
... ... @@ -273,7 +284,7 @@ public:
273 284 name += ")";
274 285 name.replace("br::","");
275 286  
276   - CompositeTransform * output = dynamic_cast<CompositeTransform *>(Transform::make(name, NULL));
  287 + CompositeTransform *output = dynamic_cast<CompositeTransform *>(Transform::make(name, NULL));
277 288  
278 289 if (output == NULL)
279 290 qFatal("Dynamic cast failed!");
... ... @@ -281,7 +292,7 @@ public:
281 292 foreach(Transform* t, transforms )
282 293 {
283 294 bool newItem = false;
284   - Transform * maybe_copy = t->smartCopy(newItem);
  295 + Transform *maybe_copy = t->smartCopy(newItem);
285 296 if (newItem)
286 297 maybe_copy->setParent(output);
287 298 output->transforms.append(maybe_copy);
... ... @@ -293,11 +304,26 @@ public:
293 304 return output;
294 305 }
295 306  
  307 + bool setPropertyRecursive(const QString &name, QVariant value)
  308 + {
  309 + if (br::Object::setPropertyRecursive(name, value))
  310 + return true;
  311 +
  312 + for (int i=0; i < this->transforms.size();i++) {
  313 + if (transforms[i]->setPropertyRecursive(name, value)) {
  314 + init();
  315 + return true;
  316 + }
  317 + }
  318 + return false;
  319 + }
  320 +
  321 +
296 322 protected:
297 323 bool isTimeVarying;
298 324  
299   - virtual void _project(const Template & src, Template & dst) const = 0;
300   - virtual void _project(const TemplateList & src, TemplateList & dst) const = 0;
  325 + virtual void _project(const Template &src, Template &dst) const = 0;
  326 + virtual void _project(const TemplateList &src, TemplateList &dst) const = 0;
301 327  
302 328 CompositeTransform() : TimeVaryingTransform(false) {}
303 329 };
... ... @@ -309,7 +335,7 @@ struct WorkerProcess
309 335 {
310 336 QString transform;
311 337 QString baseName;
312   - EnrollmentWorker * processInterface;
  338 + EnrollmentWorker *processInterface;
313 339  
314 340 void mainLoop();
315 341 };
... ... @@ -324,7 +350,7 @@ public:
324 350  
325 351 virtual void projectMetadata(const File &src, File &dst) const = 0;
326 352  
327   - void project(const Template & src, Template & dst) const
  353 + void project(const Template &src, Template &dst) const
328 354 {
329 355 dst = src;
330 356 projectMetadata(src.file, dst.file);
... ...
openbr/plugins/pp5.cpp
... ... @@ -220,7 +220,7 @@ class PP5EnrollTransform : public UntrainableMetaTransform
220 220 BR_PROPERTY(bool, detectOnly, false)
221 221 Resource<PP5Context> contexts;
222 222  
223   - void project(const Template & src, Template & dst) const
  223 + void project(const Template &src, Template &dst) const
224 224 {
225 225 if (Globals->enrollAll)
226 226 qFatal("single template project doesn't support enrollAll");
... ... @@ -232,7 +232,7 @@ class PP5EnrollTransform : public UntrainableMetaTransform
232 232 dst = dstList.first();
233 233 }
234 234  
235   - void project(const TemplateList &srcList, TemplateList & dstList) const
  235 + void project(const TemplateList &srcList, TemplateList &dstList) const
236 236 {
237 237 // Nothing to do here
238 238 if (srcList.empty())
... ...
openbr/plugins/slidingwindow.cpp
... ... @@ -428,9 +428,9 @@ private:
428 428 // each input dimension. Each input dimension corresponds to
429 429 // one of the input rect region. Thus, each eigenvector represents
430 430 // a set of overlaping regions.
431   - float * midX = new float[nRegions];
432   - float * midY = new float[nRegions];
433   - float * avgWidth = new float[nRegions];
  431 + float *midX = new float[nRegions];
  432 + float *midY = new float[nRegions];
  433 + float *avgWidth = new float[nRegions];
434 434 float *avgHeight = new float[nRegions];
435 435 float *confs = new float[nRegions];
436 436 int *cnts = new int[nRegions];
... ...
openbr/plugins/stream.cpp
... ... @@ -45,10 +45,10 @@ public:
45 45 SharedBuffer() {}
46 46 virtual ~SharedBuffer() {}
47 47  
48   - virtual void addItem(FrameData * input)=0;
  48 + virtual void addItem(FrameData *input)=0;
49 49 virtual void reset()=0;
50 50  
51   - virtual FrameData * tryGetItem()=0;
  51 + virtual FrameData *tryGetItem()=0;
52 52 virtual int size()=0;
53 53 };
54 54  
... ... @@ -63,14 +63,14 @@ public:
63 63 next_target = 0;
64 64 }
65 65  
66   - void addItem(FrameData * input)
  66 + void addItem(FrameData *input)
67 67 {
68 68 QMutexLocker bufferLock(&bufferGuard);
69 69  
70 70 buffer.insert(input->sequenceNumber, input);
71 71 }
72 72  
73   - FrameData * tryGetItem()
  73 + FrameData *tryGetItem()
74 74 {
75 75 QMutexLocker bufferLock(&bufferGuard);
76 76  
... ... @@ -86,7 +86,7 @@ public:
86 86  
87 87 next_target = next_target + 1;
88 88  
89   - FrameData * output = result.value();
  89 + FrameData *output = result.value();
90 90 buffer.erase(result);
91 91 return output;
92 92 }
... ... @@ -134,19 +134,19 @@ public:
134 134 }
135 135  
136 136 // called from the producer thread
137   - void addItem(FrameData * input)
  137 + void addItem(FrameData *input)
138 138 {
139 139 QReadLocker readLock(&bufferGuard);
140 140 inputBuffer->append(input);
141 141 }
142 142  
143   - FrameData * tryGetItem()
  143 + FrameData *tryGetItem()
144 144 {
145 145 QReadLocker readLock(&bufferGuard);
146 146  
147 147 // There is something for us to get
148 148 if (!outputBuffer->empty()) {
149   - FrameData * output = outputBuffer->first();
  149 + FrameData *output = outputBuffer->first();
150 150 outputBuffer->removeFirst();
151 151 return output;
152 152 }
... ... @@ -165,7 +165,7 @@ public:
165 165 std::swap(inputBuffer, outputBuffer);
166 166  
167 167 // Return a frame
168   - FrameData * output = outputBuffer->first();
  168 + FrameData *output = outputBuffer->first();
169 169 outputBuffer->removeFirst();
170 170 return output;
171 171 }
... ... @@ -201,10 +201,10 @@ class TemplateProcessor
201 201 {
202 202 public:
203 203 virtual ~TemplateProcessor() {}
204   - virtual bool open(Template & input)=0;
  204 + virtual bool open(Template &input)=0;
205 205 virtual bool isOpen()=0;
206 206 virtual void close()=0;
207   - virtual bool getNextTemplate(Template & output)=0;
  207 + virtual bool getNextTemplate(Template &output)=0;
208 208 protected:
209 209 Template basis;
210 210 string getAbsolutePath(QString filename)
... ... @@ -259,7 +259,7 @@ public:
259 259  
260 260 void close() { video.release(); }
261 261  
262   - bool getNextTemplate(Template & output)
  262 + bool getNextTemplate(Template &output)
263 263 {
264 264 if (!isOpen()) {
265 265 qDebug("video source is not open");
... ... @@ -320,7 +320,7 @@ struct StreamGallery : public TemplateProcessor
320 320 lastBlock = true;
321 321 }
322 322  
323   - bool getNextTemplate(Template & output)
  323 + bool getNextTemplate(Template &output)
324 324 {
325 325 // If we still have data available, we return one of those
326 326 if ((nextIdx >= currentData.size()) && !lastBlock) {
... ... @@ -373,7 +373,7 @@ public:
373 373 basis.clear();
374 374 }
375 375  
376   - bool getNextTemplate(Template & output)
  376 + bool getNextTemplate(Template &output)
377 377 {
378 378 if (!data_ok)
379 379 return false;
... ... @@ -563,7 +563,7 @@ private:
563 563 // apparently the text in seq files is 16 bit characters (UTF-16?)
564 564 // since we don't really need the last byte, snad since it gets interpreted as
565 565 // a terminating char, let's just grab the first byte for storage
566   - void readText(int bytes, char * buffer)
  566 + void readText(int bytes, char *buffer)
567 567 {
568 568 seqFile.read(buffer, bytes);
569 569 for (int i=0; i<bytes; i+=2) {
... ... @@ -601,7 +601,7 @@ public:
601 601 {
602 602 while (true)
603 603 {
604   - FrameData * frame = allFrames.tryGetItem();
  604 + FrameData *frame = allFrames.tryGetItem();
605 605 if (frame == NULL)
606 606 break;
607 607 delete frame;
... ... @@ -623,7 +623,7 @@ public:
623 623 return this->templates.size();
624 624 }
625 625  
626   - bool open(const TemplateList & input, br::Idiocy::StreamModes _mode)
  626 + bool open(const TemplateList &input, br::Idiocy::StreamModes _mode)
627 627 {
628 628 // Set up variables specific to us
629 629 current_template_idx = 0;
... ... @@ -655,7 +655,7 @@ public:
655 655 // Returns a NULL FrameData if too many frames are out, or the
656 656 // data source is broken. Sets last_frame to true iff the FrameData
657 657 // returned is the last valid frame, and the data source is now broken.
658   - FrameData * tryGetFrame(bool & last_frame)
  658 + FrameData *tryGetFrame(bool &last_frame)
659 659 {
660 660 last_frame = false;
661 661  
... ... @@ -665,7 +665,7 @@ public:
665 665  
666 666 // Try to get a FrameData from the pool, if we can't it means too many
667 667 // frames are already out, and we will return NULL to indicate failure
668   - FrameData * aFrame = allFrames.tryGetItem();
  668 + FrameData *aFrame = allFrames.tryGetItem();
669 669 if (aFrame == NULL)
670 670 return NULL;
671 671  
... ... @@ -691,7 +691,7 @@ public:
691 691  
692 692 // Return a frame to the pool, returns true if the frame returned was the last
693 693 // frame issued, false otherwise
694   - bool returnFrame(FrameData * inputFrame)
  694 + bool returnFrame(FrameData *inputFrame)
695 695 {
696 696 int frameNumber = inputFrame->sequenceNumber;
697 697  
... ... @@ -786,7 +786,7 @@ protected:
786 786 return true;
787 787 }
788 788  
789   - bool getNextFrame(FrameData & output)
  789 + bool getNextFrame(FrameData &output)
790 790 {
791 791 bool got_frame = false;
792 792  
... ... @@ -832,7 +832,7 @@ protected:
832 832 TemplateList templates;
833 833  
834 834 // processor for the current template
835   - TemplateProcessor * frameSource;
  835 + TemplateProcessor *frameSource;
836 836  
837 837 int next_sequence_number;
838 838 int final_frame;
... ... @@ -859,7 +859,7 @@ public:
859 859  
860 860 QList<ProcessingStage *> * stages;
861 861 int start_idx;
862   - FrameData * startItem;
  862 + FrameData *startItem;
863 863 };
864 864  
865 865 class ProcessingStage
... ... @@ -873,9 +873,9 @@ public:
873 873 }
874 874 virtual ~ProcessingStage() {}
875 875  
876   - virtual FrameData* run(FrameData * input, bool & should_continue, bool & final)=0;
  876 + virtual FrameData* run(FrameData *input, bool &should_continue, bool &final)=0;
877 877  
878   - virtual bool tryAcquireNextStage(FrameData *& input, bool & final)=0;
  878 + virtual bool tryAcquireNextStage(FrameData *& input, bool &final)=0;
879 879  
880 880 int stage_id;
881 881  
... ... @@ -886,11 +886,11 @@ public:
886 886 protected:
887 887 int thread_count;
888 888  
889   - SharedBuffer * inputBuffer;
890   - ProcessingStage * nextStage;
  889 + SharedBuffer *inputBuffer;
  890 + ProcessingStage *nextStage;
891 891 QList<ProcessingStage *> * stages;
892   - QThreadPool * threads;
893   - Transform * transform;
  892 + QThreadPool *threads;
  893 + Transform *transform;
894 894  
895 895 };
896 896  
... ... @@ -901,7 +901,7 @@ public:
901 901  
902 902 // Not much to worry about here, we will project the input
903 903 // and try to continue to the next stage.
904   - FrameData * run(FrameData * input, bool & should_continue, bool & final)
  904 + FrameData *run(FrameData *input, bool &should_continue, bool &final)
905 905 {
906 906 if (input == NULL) {
907 907 qFatal("null input to multi-thread stage");
... ... @@ -916,7 +916,7 @@ public:
916 916  
917 917 // Called from a different thread than run. Nothing to worry about
918 918 // we offer no restrictions on when loops may enter this stage.
919   - virtual bool tryAcquireNextStage(FrameData *& input, bool & final)
  919 + virtual bool tryAcquireNextStage(FrameData *& input, bool &final)
920 920 {
921 921 (void) input;
922 922 final = false;
... ... @@ -974,7 +974,7 @@ public:
974 974 QReadWriteLock statusLock;
975 975 Status currentStatus;
976 976  
977   - FrameData * run(FrameData * input, bool & should_continue, bool & final)
  977 + FrameData *run(FrameData *input, bool &should_continue, bool &final)
978 978 {
979 979 if (input == NULL)
980 980 qFatal("NULL input to stage %d", this->stage_id);
... ... @@ -995,7 +995,7 @@ public:
995 995  
996 996 // Is there anything on our input buffer? If so we should start a thread with that.
997 997 QWriteLocker lock(&statusLock);
998   - FrameData * newItem = inputBuffer->tryGetItem();
  998 + FrameData *newItem = inputBuffer->tryGetItem();
999 999 if (!newItem)
1000 1000 {
1001 1001 this->currentStatus = STOPPING;
... ... @@ -1008,9 +1008,9 @@ public:
1008 1008 return input;
1009 1009 }
1010 1010  
1011   - void startThread(br::FrameData * newItem)
  1011 + void startThread(br::FrameData *newItem)
1012 1012 {
1013   - BasicLoop * next = new BasicLoop();
  1013 + BasicLoop *next = new BasicLoop();
1014 1014 next->stages = stages;
1015 1015 next->start_idx = this->stage_id;
1016 1016 next->startItem = newItem;
... ... @@ -1025,7 +1025,7 @@ public:
1025 1025  
1026 1026  
1027 1027 // Calledfrom a different thread than run.
1028   - bool tryAcquireNextStage(FrameData *& input, bool & final)
  1028 + bool tryAcquireNextStage(FrameData *& input, bool &final)
1029 1029 {
1030 1030 final = false;
1031 1031 inputBuffer->addItem(input);
... ... @@ -1078,7 +1078,7 @@ public:
1078 1078 sets.append(src);
1079 1079 }
1080 1080  
1081   - void train(const TemplateList & data)
  1081 + void train(const TemplateList &data)
1082 1082 {
1083 1083 (void) data;
1084 1084 }
... ... @@ -1099,7 +1099,7 @@ public:
1099 1099 SingleThreadStage::reset();
1100 1100 }
1101 1101  
1102   - FrameData * run(FrameData * input, bool & should_continue, bool & final)
  1102 + FrameData *run(FrameData *input, bool &should_continue, bool &final)
1103 1103 {
1104 1104 if (input == NULL)
1105 1105 qFatal("NULL frame in input stage");
... ... @@ -1112,7 +1112,7 @@ public:
1112 1112 // frame if a frame is currently available.
1113 1113 QWriteLocker lock(&statusLock);
1114 1114 bool last_frame = false;
1115   - FrameData * newFrame = dataSource.tryGetFrame(last_frame);
  1115 + FrameData *newFrame = dataSource.tryGetFrame(last_frame);
1116 1116  
1117 1117 // Were we able to get a frame?
1118 1118 if (newFrame) startThread(newFrame);
... ... @@ -1127,7 +1127,7 @@ public:
1127 1127 }
1128 1128  
1129 1129 // The last stage, trying to access the first stage
1130   - bool tryAcquireNextStage(FrameData *& input, bool & final)
  1130 + bool tryAcquireNextStage(FrameData *& input, bool &final)
1131 1131 {
1132 1132 // Return the frame, was it the last one?
1133 1133 final = dataSource.returnFrame(input);
... ... @@ -1180,7 +1180,7 @@ public:
1180 1180 void BasicLoop::run()
1181 1181 {
1182 1182 int current_idx = start_idx;
1183   - FrameData * target_item = startItem;
  1183 + FrameData *target_item = startItem;
1184 1184 bool should_continue = true;
1185 1185 bool the_end = false;
1186 1186 forever
... ... @@ -1212,7 +1212,7 @@ public:
1212 1212  
1213 1213 friend class StreamTransfrom;
1214 1214  
1215   - void subProject(QList<TemplateList> & data, int end_idx)
  1215 + void subProject(QList<TemplateList> &data, int end_idx)
1216 1216 {
1217 1217 if (end_idx == 0)
1218 1218 return;
... ... @@ -1239,15 +1239,15 @@ public:
1239 1239 transforms = backup;
1240 1240 }
1241 1241  
1242   - void train(const QList<TemplateList> & data)
  1242 + void train(const QList<TemplateList> &data)
1243 1243 {
1244 1244 if (!trainable) {
1245 1245 qWarning("Attempted to train untrainable transform, nothing will happen.");
1246 1246 return;
1247 1247 }
1248 1248 QList<TemplateList> separated;
1249   - foreach (const TemplateList & list, data) {
1250   - foreach(const Template & t, list) {
  1249 + foreach (const TemplateList &list, data) {
  1250 + foreach(const Template &t, list) {
1251 1251 separated.append(TemplateList());
1252 1252 separated.last().append(t);
1253 1253 }
... ... @@ -1292,7 +1292,7 @@ public:
1292 1292 }
1293 1293  
1294 1294  
1295   - virtual void finalize(TemplateList & output)
  1295 + virtual void finalize(TemplateList &output)
1296 1296 {
1297 1297 (void) output;
1298 1298 // Nothing in particular to do here, stream calls finalize
... ... @@ -1301,7 +1301,7 @@ public:
1301 1301  
1302 1302 // start processing, consider all templates in src a continuous
1303 1303 // 'video'
1304   - void projectUpdate(const TemplateList & src, TemplateList & dst)
  1304 + void projectUpdate(const TemplateList &src, TemplateList &dst)
1305 1305 {
1306 1306 dst = src;
1307 1307 if (src.empty())
... ... @@ -1319,7 +1319,7 @@ public:
1319 1319  
1320 1320 // We have to get a frame before starting the thread
1321 1321 bool last_frame = false;
1322   - FrameData * firstFrame = readStage->dataSource.tryGetFrame(last_frame);
  1322 + FrameData *firstFrame = readStage->dataSource.tryGetFrame(last_frame);
1323 1323 if (firstFrame == NULL)
1324 1324 qFatal("Failed to read first frame of video");
1325 1325  
... ... @@ -1355,14 +1355,14 @@ public:
1355 1355  
1356 1356 // dst is set to all output received by the final stage, along
1357 1357 // with anything output via the calls to finalize.
1358   - foreach(const TemplateList & list, collector->sets) {
  1358 + foreach(const TemplateList &list, collector->sets) {
1359 1359 dst.append(list);
1360 1360 }
1361 1361 collector->sets.clear();
1362 1362  
1363 1363 dst.append(final_output);
1364 1364  
1365   - foreach(ProcessingStage * stage, processingStages) {
  1365 + foreach(ProcessingStage *stage, processingStages) {
1366 1366 stage->reset();
1367 1367 }
1368 1368 }
... ... @@ -1474,8 +1474,8 @@ public:
1474 1474 protected:
1475 1475 QList<bool> stage_variance;
1476 1476  
1477   - ReadStage * readStage;
1478   - SingleThreadStage * collectionStage;
  1477 + ReadStage *readStage;
  1478 + SingleThreadStage *collectionStage;
1479 1479 QSharedPointer<CollectSets> collector;
1480 1480  
1481 1481 QList<ProcessingStage *> processingStages;
... ... @@ -1497,14 +1497,14 @@ protected:
1497 1497 // number of jobs.
1498 1498 static QHash<QObject *, QThreadPool *> pools;
1499 1499 static QMutex poolsAccess;
1500   - QThreadPool * threads;
  1500 + QThreadPool *threads;
1501 1501  
1502 1502 void _project(const Template &src, Template &dst) const
1503 1503 {
1504 1504 (void) src; (void) dst;
1505 1505 qFatal("nope");
1506 1506 }
1507   - void _project(const TemplateList & src, TemplateList & dst) const
  1507 + void _project(const TemplateList &src, TemplateList &dst) const
1508 1508 {
1509 1509 (void) src; (void) dst;
1510 1510 qFatal("nope");
... ... @@ -1542,17 +1542,17 @@ public:
1542 1542 {
1543 1543 basis.projectUpdate(src,dst);
1544 1544 }
1545   - void projectUpdate(const TemplateList & src, TemplateList & dst)
  1545 + void projectUpdate(const TemplateList &src, TemplateList &dst)
1546 1546 {
1547 1547 basis.projectUpdate(src,dst);
1548 1548 }
1549 1549  
1550   - void train(const QList<TemplateList> & data)
  1550 + void train(const QList<TemplateList> &data)
1551 1551 {
1552 1552 basis.train(data);
1553 1553 }
1554 1554  
1555   - virtual void finalize(TemplateList & output)
  1555 + virtual void finalize(TemplateList &output)
1556 1556 {
1557 1557 (void) output;
1558 1558 // Nothing in particular to do here, stream calls finalize
... ... @@ -1573,7 +1573,7 @@ public:
1573 1573 basis.readMode = this->readMode;
1574 1574  
1575 1575 // We need at least a CompositeTransform * to acess transform's children.
1576   - CompositeTransform * downcast = dynamic_cast<CompositeTransform *> (transform);
  1576 + CompositeTransform *downcast = dynamic_cast<CompositeTransform *> (transform);
1577 1577  
1578 1578 // If this isn't even a composite transform, or it's not a pipe, just set up
1579 1579 // basis with 1 stage.
... ... @@ -1627,7 +1627,7 @@ public:
1627 1627 }
1628 1628 //otherwise we build a pipe
1629 1629 else {
1630   - CompositeTransform * pipe = dynamic_cast<CompositeTransform *>(Transform::make("Pipe([])", this));
  1630 + CompositeTransform *pipe = dynamic_cast<CompositeTransform *>(Transform::make("Pipe([])", this));
1631 1631 pipe->transforms = sets[i];
1632 1632 pipe->init();
1633 1633 transform_set.append(pipe);
... ... @@ -1638,10 +1638,10 @@ public:
1638 1638 basis.init();
1639 1639 }
1640 1640  
1641   - Transform * smartCopy(bool & newTransform)
  1641 + Transform *smartCopy(bool &newTransform)
1642 1642 {
1643 1643 // We just want the DirectStream to begin with, so just return a copy of that.
1644   - DirectStreamTransform * res = (DirectStreamTransform *) basis.smartCopy(newTransform);
  1644 + DirectStreamTransform *res = (DirectStreamTransform *) basis.smartCopy(newTransform);
1645 1645 res->activeFrames = this->activeFrames;
1646 1646 return res;
1647 1647 }
... ...