Mercurial > hg > svcore
view base/Clipboard.h @ 1008:d9e0e59a1581
When using an aggregate model to pass data to a transform, zero-pad the shorter input to the duration of the longer rather than truncating the longer. (This is better behaviour for e.g. MATCH, and in any case the code was previously truncating incorrectly and ending up with garbage data at the end.)
author | Chris Cannam |
---|---|
date | Fri, 14 Nov 2014 13:51:33 +0000 |
parents | 6a94bb528e9d |
children | 31f01931b781 |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ /* Sonic Visualiser An audio file viewer and annotation editor. Centre for Digital Music, Queen Mary, University of London. This file copyright 2006 Chris Cannam. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING included with this distribution for more information. */ #ifndef _CLIPBOARD_H_ #define _CLIPBOARD_H_ #include <QString> #include <vector> class Clipboard { public: class Point { public: Point(long frame, QString label); Point(long frame, float value, QString label); Point(long frame, float value, int duration, QString label); Point(long frame, float value, int duration, float level, QString label); Point(const Point &point); Point &operator=(const Point &point); bool haveFrame() const; long getFrame() const; Point withFrame(long frame) const; bool haveValue() const; float getValue() const; Point withValue(float value) const; bool haveDuration() const; int getDuration() const; Point withDuration(int duration) const; bool haveLabel() const; QString getLabel() const; Point withLabel(QString label) const; bool haveLevel() const; float getLevel() const; Point withLevel(float level) const; bool haveReferenceFrame() const; bool referenceFrameDiffers() const; // from point frame long getReferenceFrame() const; void setReferenceFrame(long); private: bool m_haveFrame; long m_frame; bool m_haveValue; float m_value; bool m_haveDuration; int m_duration; bool m_haveLabel; QString m_label; bool m_haveLevel; float m_level; bool m_haveReferenceFrame; long m_referenceFrame; }; Clipboard(); ~Clipboard(); typedef std::vector<Point> PointList; void clear(); bool empty() const; const PointList &getPoints() const; void setPoints(const PointList &points); void addPoint(const Point &point); bool haveReferenceFrames() const; bool referenceFramesDiffer() const; protected: PointList m_points; }; #endif