annotate widgets/LevelPanToolButton.h @ 1037:6f7a471826d1 spectrogram-minor-refactor

Timing tweaks to reduce the number of repaints
author Chris Cannam
date Tue, 02 Feb 2016 15:32:57 +0000
parents fcbfc7fad1f2
children 6a6a63506e3f
rev   line source
Chris@929 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@929 2
Chris@929 3 /*
Chris@929 4 Sonic Visualiser
Chris@929 5 An audio file viewer and annotation editor.
Chris@929 6 Centre for Digital Music, Queen Mary, University of London.
Chris@929 7
Chris@929 8 This program is free software; you can redistribute it and/or
Chris@929 9 modify it under the terms of the GNU General Public License as
Chris@929 10 published by the Free Software Foundation; either version 2 of the
Chris@929 11 License, or (at your option) any later version. See the file
Chris@929 12 COPYING included with this distribution for more information.
Chris@929 13 */
Chris@929 14
Chris@929 15 #ifndef LEVEL_PAN_TOOLBUTTON_H
Chris@929 16 #define LEVEL_PAN_TOOLBUTTON_H
Chris@929 17
Chris@929 18 #include <QToolButton>
Chris@929 19
Chris@929 20 class LevelPanWidget;
Chris@929 21
Chris@929 22 class LevelPanToolButton : public QToolButton
Chris@929 23 {
Chris@929 24 Q_OBJECT
Chris@929 25
Chris@929 26 public:
Chris@929 27 LevelPanToolButton(QWidget *parent = 0);
Chris@929 28 ~LevelPanToolButton();
Chris@929 29
Chris@929 30 /// Return level as a gain value in the range [0,1]
Chris@929 31 float getLevel() const;
Chris@929 32
Chris@929 33 /// Return pan as a value in the range [-1,1]
Chris@929 34 float getPan() const;
Chris@929 35
Chris@940 36 /// Discover whether the level range includes muting or not
Chris@940 37 bool includesMute() const;
Chris@940 38
Chris@929 39 void setImageSize(int pixels);
Chris@929 40
Chris@942 41 void setBigImageSize(int pixels);
Chris@942 42
Chris@929 43 public slots:
Chris@929 44 /// Set level in the range [0,1] -- will be rounded
Chris@929 45 void setLevel(float);
Chris@929 46
Chris@929 47 /// Set pan in the range [-1,1] -- will be rounded
Chris@929 48 void setPan(float);
Chris@929 49
Chris@940 50 /// Specify whether the level range should include muting or not
Chris@940 51 void setIncludeMute(bool);
Chris@940 52
Chris@933 53 void setEnabled(bool enabled);
Chris@940 54
Chris@929 55 signals:
Chris@929 56 void levelChanged(float);
Chris@929 57 void panChanged(float);
Chris@929 58
Chris@930 59 private slots:
Chris@930 60 void selfLevelChanged(float);
Chris@930 61 void selfClicked();
Chris@930 62
Chris@929 63 protected:
Chris@932 64 void paintEvent(QPaintEvent *);
Chris@932 65
Chris@929 66 LevelPanWidget *m_lpw;
Chris@929 67 int m_pixels;
Chris@942 68 int m_pixelsBig;
Chris@930 69 bool m_muted;
Chris@930 70 float m_savedLevel;
Chris@929 71 };
Chris@929 72
Chris@929 73 #endif