annotate view/Overview.h @ 1127:9fb8dfd7ce4c spectrogram-minor-refactor

Fix threshold in spectrogram -- it wasn't working in the last release. There is a new protocol for this. Formerly the threshold parameter had a range from -50dB to 0 with the default at -50, and -50 treated internally as "no threshold". However, there was a hardcoded, hidden internal threshold for spectrogram colour mapping at -80dB with anything below this being rounded to zero. Now the threshold parameter has range -81 to -1 with the default at -80, -81 is treated internally as "no threshold", and there is no hidden internal threshold. So the default behaviour is the same as before, an effective -80dB threshold, but it is now possible to change this in both directions. Sessions reloaded from prior versions may look slightly different because, if the session says there should be no threshold, there will now actually be no threshold instead of having the hidden internal one. Still need to do something in the UI to make it apparent that the -81dB setting removes the threshold entirely. This is at least no worse than the previous, also obscured, magic -50dB setting.
author Chris Cannam
date Mon, 01 Aug 2016 16:21:01 +0100
parents 73b0dc7d6ec1
children bc2cb82050a0
rev   line source
Chris@173 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@173 2
Chris@173 3 /*
Chris@173 4 Sonic Visualiser
Chris@173 5 An audio file viewer and annotation editor.
Chris@173 6 Centre for Digital Music, Queen Mary, University of London.
Chris@182 7 This file copyright 2006 Chris Cannam and QMUL.
Chris@173 8
Chris@173 9 This program is free software; you can redistribute it and/or
Chris@173 10 modify it under the terms of the GNU General Public License as
Chris@173 11 published by the Free Software Foundation; either version 2 of the
Chris@173 12 License, or (at your option) any later version. See the file
Chris@173 13 COPYING included with this distribution for more information.
Chris@173 14 */
Chris@173 15
Chris@173 16 #ifndef _OVERVIEW_H_
Chris@173 17 #define _OVERVIEW_H_
Chris@173 18
Chris@173 19 #include "View.h"
Chris@173 20
Chris@173 21 #include <QPoint>
Chris@274 22 #include <QTime>
Chris@173 23
Chris@173 24 class QWidget;
Chris@173 25 class QPaintEvent;
Chris@173 26 class Layer;
Chris@173 27 class View;
Chris@173 28
Chris@173 29 #include <map>
Chris@173 30
Chris@173 31 class Overview : public View
Chris@173 32 {
Chris@173 33 Q_OBJECT
Chris@173 34
Chris@173 35 public:
Chris@173 36 Overview(QWidget *parent = 0);
Chris@173 37
Chris@211 38 void registerView(View *view);
Chris@211 39 void unregisterView(View *view);
Chris@173 40
Chris@173 41 virtual QString getPropertyContainerIconName() const { return "panner"; }
Chris@173 42
Chris@173 43 public slots:
Chris@908 44 virtual void modelChangedWithin(sv_frame_t startFrame, sv_frame_t endFrame);
Chris@173 45 virtual void modelReplaced();
Chris@173 46
Chris@908 47 virtual void globalCentreFrameChanged(sv_frame_t);
Chris@908 48 virtual void viewCentreFrameChanged(View *, sv_frame_t);
Chris@806 49 virtual void viewZoomLevelChanged(View *, int, bool);
Chris@908 50 virtual void viewManagerPlaybackFrameChanged(sv_frame_t);
Chris@173 51
Chris@965 52 virtual void setBoxColour(QColor);
Chris@965 53
Chris@173 54 protected:
Chris@173 55 virtual void paintEvent(QPaintEvent *e);
Chris@173 56 virtual void mousePressEvent(QMouseEvent *e);
Chris@173 57 virtual void mouseReleaseEvent(QMouseEvent *e);
Chris@173 58 virtual void mouseMoveEvent(QMouseEvent *e);
Chris@189 59 virtual void mouseDoubleClickEvent(QMouseEvent *e);
Chris@189 60 virtual void enterEvent(QEvent *);
Chris@189 61 virtual void leaveEvent(QEvent *);
Chris@173 62 virtual bool shouldLabelSelections() const { return false; }
Chris@173 63
Chris@871 64 QColor getFillWithin() const;
Chris@871 65 QColor getFillWithout() const;
Chris@871 66
Chris@173 67 QPoint m_clickPos;
Chris@173 68 QPoint m_mousePos;
Chris@173 69 bool m_clickedInRange;
Chris@908 70 sv_frame_t m_dragCentreFrame;
Chris@274 71 QTime m_modelTestTime;
Chris@965 72 QColor m_boxColour;
Chris@173 73
Chris@211 74 typedef std::set<View *> ViewSet;
Chris@211 75 ViewSet m_views;
Chris@173 76 };
Chris@173 77
Chris@173 78 #endif
Chris@173 79