Mercurial > hg > svcore
diff base/Clipboard.cpp @ 74:47fd14e29813
* Fix long-standing off-by-1 bug in WaveFileModel that was getting us the wrong
values for almost all audio data when merging channels (channel == -1)
* Implement cut, copy and paste
* Make draw mode work properly in time value layer
* Minor fixes to CSV import
author | Chris Cannam |
---|---|
date | Fri, 07 Apr 2006 17:50:33 +0000 |
parents | |
children | 516819f2b97b 6f6ab834449d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base/Clipboard.cpp Fri Apr 07 17:50:33 2006 +0000 @@ -0,0 +1,158 @@ +/* -*- 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. +*/ + +#include "Clipboard.h" + +Clipboard::Point::Point(long frame, QString label) : + m_haveFrame(true), + m_frame(frame), + m_haveValue(false), + m_haveDuration(false), + m_haveLabel(true), + m_label(label) +{ +} + +Clipboard::Point::Point(long frame, float value, QString label) : + m_haveFrame(true), + m_frame(frame), + m_haveValue(true), + m_value(value), + m_haveDuration(false), + m_haveLabel(true), + m_label(label) +{ +} + +Clipboard::Point::Point(long frame, float value, size_t duration, QString label) : + m_haveFrame(true), + m_frame(frame), + m_haveValue(true), + m_value(value), + m_haveDuration(true), + m_duration(duration), + m_haveLabel(true), + m_label(label) +{ +} + +Clipboard::Point::Point(const Point &point) : + m_haveFrame(point.m_haveFrame), + m_frame(point.m_frame), + m_haveValue(point.m_haveValue), + m_value(point.m_value), + m_haveDuration(point.m_haveDuration), + m_duration(point.m_duration), + m_haveLabel(point.m_haveLabel), + m_label(point.m_label) +{ +} + +Clipboard::Point & +Clipboard::Point::operator=(const Point &point) +{ + if (this == &point) return *this; + m_haveFrame = point.m_haveFrame; + m_frame = point.m_frame; + m_haveValue = point.m_haveValue; + m_value = point.m_value; + m_haveDuration = point.m_haveDuration; + m_duration = point.m_duration; + m_haveLabel = point.m_haveLabel; + m_label = point.m_label; + return *this; +} + +bool +Clipboard::Point::haveFrame() const +{ + return m_haveFrame; +} + +long +Clipboard::Point::getFrame() const +{ + return m_frame; +} + +bool +Clipboard::Point::haveValue() const +{ + return m_haveValue; +} + +float +Clipboard::Point::getValue() const +{ + return m_value; +} + +bool +Clipboard::Point::haveDuration() const +{ + return m_haveDuration; +} + +size_t +Clipboard::Point::getDuration() const +{ + return m_duration; +} + +bool +Clipboard::Point::haveLabel() const +{ + return m_haveLabel; +} + +QString +Clipboard::Point::getLabel() const +{ + return m_label; +} + +Clipboard::Clipboard() { } +Clipboard::~Clipboard() { } + +void +Clipboard::clear() +{ + m_points.clear(); +} + +bool +Clipboard::empty() const +{ + return m_points.empty(); +} + +const Clipboard::PointList & +Clipboard::getPoints() const +{ + return m_points; +} + +void +Clipboard::setPoints(const PointList &pl) +{ + m_points = pl; +} + +void +Clipboard::addPoint(const Point &point) +{ + m_points.push_back(point); +} +