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