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. cannam@0: All rights reserved. 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@0: #include "dsp/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(); cannam@0: else if (iPosition >= 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: }