# HG changeset patch # User Chris Cannam # Date 1401286560 -3600 # Node ID 1697457458b7141e5862aa6e281d490721e7a68b # Parent 9d70d687e4ebc0f4ee44beab6be22023bccde3d2 Don't retain returned hypotheses -- to avoid having to test whether we've seen them before diff -r 9d70d687e4eb -r 1697457458b7 src/AgentFeederMono.h --- a/src/AgentFeederMono.h Wed May 28 15:05:43 2014 +0100 +++ b/src/AgentFeederMono.h Wed May 28 15:16:00 2014 +0100 @@ -148,8 +148,10 @@ } } - Hypotheses getAcceptedHypotheses() const { - return m_accepted; + Hypotheses retrieveAcceptedHypotheses() { + Hypotheses aa = m_accepted; + m_accepted.clear(); + return aa; } private: diff -r 9d70d687e4eb -r 1697457458b7 src/AgentFeederPoly.h --- a/src/AgentFeederPoly.h Wed May 28 15:05:43 2014 +0100 +++ b/src/AgentFeederPoly.h Wed May 28 15:16:00 2014 +0100 @@ -71,12 +71,13 @@ } } - std::set getAcceptedHypotheses() const { + std::set retrieveAcceptedHypotheses() { std::set hs; for (typename Hypotheses::const_iterator i = m_state.completed.begin(); i != m_state.completed.end(); ++i) { hs.insert(*i); } + m_state.completed.clear(); return hs; } diff -r 9d70d687e4eb -r 1697457458b7 src/Silvet.cpp --- a/src/Silvet.cpp Wed May 28 15:05:43 2014 +0100 +++ b/src/Silvet.cpp Wed May 28 15:16:00 2014 +0100 @@ -696,7 +696,7 @@ return noteFeatures; } - std::set hh = feeder->getAcceptedHypotheses(); + std::set hh = feeder->retrieveAcceptedHypotheses(); //!!! inefficient for (std::set::const_iterator hi = hh.begin(); @@ -704,12 +704,6 @@ NoteHypothesis h(*hi); - if (m_emitted.find(h) != m_emitted.end()) { - continue; // already returned this one - } - - m_emitted.insert(h); - NoteHypothesis::Note n = h.getAveragedNote(); int velocity = n.confidence * 127; diff -r 9d70d687e4eb -r 1697457458b7 src/Silvet.h --- a/src/Silvet.h Wed May 28 15:05:43 2014 +0100 +++ b/src/Silvet.h Wed May 28 15:16:00 2014 +0100 @@ -88,7 +88,6 @@ vector *> m_postFilter; AgentFeeder *m_agentFeeder; - std::set m_emitted; Grid preProcess(const Grid &);