annotate dsp/tonal/TCSgram.cpp @ 309:d5014ab8b0e5

* Add GPL and README; some tidying
author Chris Cannam <c.cannam@qmul.ac.uk>
date Mon, 13 Dec 2010 14:55:28 +0000
parents a98dd8ec96f8
children e4a57215ddee
rev   line source
c@225 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
c@225 2
c@225 3 /*
c@225 4 QM DSP Library
c@225 5
c@225 6 Centre for Digital Music, Queen Mary, University of London.
c@225 7 This file copyright 2006 Martin Gasser.
c@309 8
c@309 9 This program is free software; you can redistribute it and/or
c@309 10 modify it under the terms of the GNU General Public License as
c@309 11 published by the Free Software Foundation; either version 2 of the
c@309 12 License, or (at your option) any later version. See the file
c@309 13 COPYING included with this distribution for more information.
c@225 14 */
c@225 15
c@225 16 #include "TCSgram.h"
c@225 17
c@225 18 #include <valarray>
c@225 19 #include <cmath>
c@225 20 #include <iostream>
c@225 21 #include <limits>
c@225 22
c@241 23 #include "maths/MathUtilities.h"
c@225 24
c@225 25 TCSGram::TCSGram() :
c@225 26 m_uNumBins(6)
c@225 27 {
c@225 28 }
c@225 29
c@225 30 TCSGram::~TCSGram()
c@225 31 {
c@225 32 }
c@225 33
c@225 34
c@225 35 void TCSGram::getTCSVector(int iPosition, TCSVector& rTCSVector) const
c@225 36 {
c@225 37 if (iPosition < 0)
c@225 38 rTCSVector = TCSVector();
c@225 39 else if (iPosition >= m_VectorList.size())
c@225 40 rTCSVector = TCSVector();
c@225 41 else
c@225 42 rTCSVector = m_VectorList[iPosition].second;
c@225 43 }
c@225 44
c@225 45 long TCSGram::getTime(size_t uPosition) const
c@225 46 {
c@225 47 return m_VectorList[uPosition].first;
c@225 48 }
c@225 49
c@225 50
c@225 51 void TCSGram::addTCSVector(const TCSVector& rTCSVector)
c@225 52 {
c@225 53 size_t uSize = m_VectorList.size();
c@225 54 long lMilliSeconds = static_cast<long>(uSize*m_dFrameDurationMS);
c@225 55 std::pair<long, TCSVector> p;
c@225 56 p.first = lMilliSeconds;
c@225 57 p.second = rTCSVector;
c@225 58
c@225 59 m_VectorList.push_back(p);
c@225 60 }
c@225 61
c@225 62 long TCSGram::getDuration() const
c@225 63 {
c@225 64 size_t uSize = m_VectorList.size();
c@225 65 return static_cast<long>(uSize*m_dFrameDurationMS);
c@225 66 }
c@225 67
c@225 68 void TCSGram::printDebug()
c@225 69 {
c@225 70 vectorlist_t::iterator vectorIterator = m_VectorList.begin();
c@225 71
c@225 72 while (vectorIterator != m_VectorList.end())
c@225 73 {
c@225 74 vectorIterator->second.printDebug();
c@225 75 vectorIterator++;
c@225 76 }
c@225 77 }