c@225: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ c@225: c@225: /* c@225: QM DSP Library c@225: c@225: Centre for Digital Music, Queen Mary, University of London. c@225: This file copyright 2006 Martin Gasser. c@309: c@309: This program is free software; you can redistribute it and/or c@309: modify it under the terms of the GNU General Public License as c@309: published by the Free Software Foundation; either version 2 of the c@309: License, or (at your option) any later version. See the file c@309: COPYING included with this distribution for more information. c@225: */ c@225: c@225: #include "TCSgram.h" c@225: c@225: #include c@225: #include c@225: #include c@225: #include c@225: c@241: #include "maths/MathUtilities.h" c@225: c@225: TCSGram::TCSGram() : cannam@482: m_uNumBins(6) c@225: { c@225: } c@225: c@225: TCSGram::~TCSGram() c@225: { c@225: } c@225: c@225: c@225: void TCSGram::getTCSVector(int iPosition, TCSVector& rTCSVector) const c@225: { cannam@482: if (iPosition < 0) { cannam@482: rTCSVector = TCSVector(); cannam@482: } else if (iPosition >= int(m_VectorList.size())) { cannam@482: rTCSVector = TCSVector(); cannam@482: } else { cannam@482: rTCSVector = m_VectorList[iPosition].second; cannam@482: } c@225: } c@225: c@225: long TCSGram::getTime(size_t uPosition) const c@225: { cannam@482: return m_VectorList[uPosition].first; c@225: } c@225: c@225: c@225: void TCSGram::addTCSVector(const TCSVector& rTCSVector) c@225: { cannam@482: size_t uSize = m_VectorList.size(); cannam@482: long lMilliSeconds = static_cast(uSize*m_dFrameDurationMS); cannam@482: std::pair p; cannam@482: p.first = lMilliSeconds; cannam@482: p.second = rTCSVector; cannam@482: cannam@482: m_VectorList.push_back(p); c@225: } c@225: c@225: long TCSGram::getDuration() const c@225: { cannam@482: size_t uSize = m_VectorList.size(); cannam@482: return static_cast(uSize*m_dFrameDurationMS); c@225: } c@225: c@225: void TCSGram::printDebug() c@225: { cannam@482: vectorlist_t::iterator vectorIterator = m_VectorList.begin(); cannam@482: cannam@482: while (vectorIterator != m_VectorList.end()) { cannam@482: vectorIterator->second.printDebug(); cannam@482: vectorIterator++; cannam@482: } c@225: }