Mercurial > hg > qm-dsp
view dsp/tonal/TCSgram.cpp @ 225:49844bc8a895
* Queen Mary C++ DSP library
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Wed, 05 Apr 2006 17:35:59 +0000 |
parents | |
children | 2e3f5d2d62c1 |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ /* QM DSP Library Centre for Digital Music, Queen Mary, University of London. This file copyright 2006 Martin Gasser. All rights reserved. */ #include "TCSgram.h" #include <valarray> #include <cmath> #include <iostream> #include <limits> #include "dsp/maths/MathUtilities.h" TCSGram::TCSGram() : m_uNumBins(6) { } TCSGram::~TCSGram() { } void TCSGram::getTCSVector(int iPosition, TCSVector& rTCSVector) const { if (iPosition < 0) rTCSVector = TCSVector(); else if (iPosition >= m_VectorList.size()) rTCSVector = TCSVector(); else rTCSVector = m_VectorList[iPosition].second; } long TCSGram::getTime(size_t uPosition) const { return m_VectorList[uPosition].first; } void TCSGram::addTCSVector(const TCSVector& rTCSVector) { size_t uSize = m_VectorList.size(); long lMilliSeconds = static_cast<long>(uSize*m_dFrameDurationMS); std::pair<long, TCSVector> p; p.first = lMilliSeconds; p.second = rTCSVector; m_VectorList.push_back(p); } long TCSGram::getDuration() const { size_t uSize = m_VectorList.size(); return static_cast<long>(uSize*m_dFrameDurationMS); } void TCSGram::printDebug() { vectorlist_t::iterator vectorIterator = m_VectorList.begin(); while (vectorIterator != m_VectorList.end()) { vectorIterator->second.printDebug(); vectorIterator++; } }