lbajardsilogic@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@0: lbajardsilogic@0: /* lbajardsilogic@0: Sonic Visualiser lbajardsilogic@0: An audio file viewer and annotation editor. lbajardsilogic@0: Centre for Digital Music, Queen Mary, University of London. lbajardsilogic@0: lbajardsilogic@0: This program is free software; you can redistribute it and/or lbajardsilogic@0: modify it under the terms of the GNU General Public License as lbajardsilogic@0: published by the Free Software Foundation; either version 2 of the lbajardsilogic@0: License, or (at your option) any later version. See the file lbajardsilogic@0: COPYING included with this distribution for more information. lbajardsilogic@0: */ lbajardsilogic@0: lbajardsilogic@0: #ifndef FADER_H lbajardsilogic@0: #define FADER_H lbajardsilogic@0: lbajardsilogic@0: /** lbajardsilogic@0: * Horizontal audio fader and meter widget. lbajardsilogic@0: * Based on the vertical fader and meter widget from: lbajardsilogic@0: * lbajardsilogic@0: * Hydrogen lbajardsilogic@0: * Copyright(c) 2002-2005 by Alex >Comix< Cominu [comix@users.sourceforge.net] lbajardsilogic@0: * http://www.hydrogen-music.org lbajardsilogic@0: */ lbajardsilogic@0: lbajardsilogic@0: lbajardsilogic@0: #include lbajardsilogic@0: #include lbajardsilogic@0: lbajardsilogic@0: #include lbajardsilogic@0: #include lbajardsilogic@0: #include lbajardsilogic@0: #include lbajardsilogic@0: #include lbajardsilogic@0: lbajardsilogic@0: class Fader : public QWidget lbajardsilogic@0: { lbajardsilogic@0: Q_OBJECT lbajardsilogic@0: lbajardsilogic@0: public: lbajardsilogic@0: Fader(QWidget *parent, bool withoutKnob = false); lbajardsilogic@0: ~Fader(); lbajardsilogic@0: lbajardsilogic@0: void setValue(float newValue); lbajardsilogic@0: float getValue(); lbajardsilogic@0: lbajardsilogic@0: void setPeakLeft(float); lbajardsilogic@0: float getPeakLeft() { return m_peakLeft; } lbajardsilogic@0: lbajardsilogic@0: void setPeakRight(float); lbajardsilogic@0: float getPeakRight() { return m_peakRight; } lbajardsilogic@0: lbajardsilogic@0: signals: lbajardsilogic@0: void valueChanged(float); // 0.0 -> 1.0 lbajardsilogic@0: lbajardsilogic@0: void mouseEntered(); lbajardsilogic@0: void mouseLeft(); lbajardsilogic@0: lbajardsilogic@0: protected: lbajardsilogic@0: virtual void mousePressEvent(QMouseEvent *ev); lbajardsilogic@0: virtual void mouseDoubleClickEvent(QMouseEvent *ev); lbajardsilogic@0: virtual void mouseMoveEvent(QMouseEvent *ev); lbajardsilogic@0: virtual void mouseReleaseEvent(QMouseEvent *ev); lbajardsilogic@0: virtual void wheelEvent( QWheelEvent *ev ); lbajardsilogic@0: virtual void paintEvent(QPaintEvent *ev); lbajardsilogic@0: virtual void enterEvent(QEvent *); lbajardsilogic@0: virtual void leaveEvent(QEvent *); lbajardsilogic@0: lbajardsilogic@0: int getMaxX() const; lbajardsilogic@0: lbajardsilogic@0: bool m_withoutKnob; lbajardsilogic@0: float m_value; lbajardsilogic@0: float m_peakLeft; lbajardsilogic@0: float m_peakRight; lbajardsilogic@0: lbajardsilogic@0: bool m_mousePressed; lbajardsilogic@0: int m_mousePressX; lbajardsilogic@0: float m_mousePressValue; lbajardsilogic@0: lbajardsilogic@0: QPixmap m_back; lbajardsilogic@0: QPixmap m_leds; lbajardsilogic@0: QPixmap m_knob; lbajardsilogic@0: QPixmap m_clip; lbajardsilogic@0: }; lbajardsilogic@0: lbajardsilogic@0: #endif