view base/Clipboard.h @ 284:41d64b873d87

* continue to pick "new" colours for coloured layers even when all colours have been used at least once, rather than sticking on the last one * some messing about with application palette settings * when replacing an audio file, retain the previous playback settings for any layers that depended on the old file * re-check plugin program setting when a parameter changes -- so a plugin can decide to reset the program if the parameters no longer match those for the current program * fix failure to update check-boxes for toggled plugin parameters when their parameters are changed by program changes
author Chris Cannam
date Thu, 09 Aug 2007 14:40:03 +0000
parents 47fd14e29813
children 516819f2b97b 6f6ab834449d
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, size_t duration, QString label);
        Point(const Point &point);
        Point &operator=(const Point &point);

        bool haveFrame() const;
        long getFrame() const;

        bool haveValue() const;
        float getValue() const;
        
        bool haveDuration() const;
        size_t getDuration() const;
        
        bool haveLabel() const;
        QString getLabel() const;

    private:
        bool m_haveFrame;
        long m_frame;
        bool m_haveValue;
        float m_value;
        bool m_haveDuration;
        size_t m_duration;
        bool m_haveLabel;
        QString m_label;
    };

    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);

protected:
    PointList m_points;
};

#endif