annotate widgets/PaneStack.h @ 33:651e4e868bcc

* Implement play mute, level and pan controls and a layer visibility control * Handle swapping the buffers in AudioCallbackPlaySource more gracefully, so that in many cases it can be done inaudibly. Still gets it wrong when playing in a noncontiguous selection. * Fix to SV file save for non-2d sparse models * Fixes to LED button drawing and AudioDial mouse functionality * Add progress bar for Ogg file import * Reshuffle PropertyContainer and its subclasses so it can be a QObject * Add layer dormancy (invisible layer permitted to free its cache space) * Optimisations to SpectrogramLayer, removing locks when reading/writing individual pixels in the cache (should be unnecessary there) -- there's still an issue here as we need a lock when reading from the model in case the model is replaced, and we don't currently have one * Several munlock() calls to make it harder to exhaust real memory if running in an RT mode with mlockall() active
author Chris Cannam
date Fri, 17 Feb 2006 18:04:26 +0000
parents 46d8f5add6f0
children 78515b1e29eb
rev   line source
Chris@0 1
Chris@0 2 /* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */
Chris@0 3
Chris@0 4 /*
Chris@0 5 A waveform viewer and audio annotation editor.
Chris@5 6 Chris Cannam, Queen Mary University of London, 2005-2006
Chris@0 7
Chris@0 8 This is experimental software. Not for distribution.
Chris@0 9 */
Chris@0 10
Chris@0 11 #ifndef _PANESTACK_H_
Chris@0 12 #define _PANESTACK_H_
Chris@0 13
Chris@0 14 #include <QSplitter>
Chris@0 15
Chris@0 16 class QWidget;
Chris@0 17 class QLabel;
Chris@0 18 class Pane;
Chris@17 19 class Layer;
Chris@0 20 class ViewManager;
Chris@0 21 class PropertyContainer;
Chris@0 22 class PropertyStack;
Chris@0 23
Chris@0 24 class PaneStack : public QSplitter
Chris@0 25 {
Chris@0 26 Q_OBJECT
Chris@0 27
Chris@0 28 public:
Chris@0 29 PaneStack(QWidget *parent, ViewManager *viewManager);
Chris@0 30
Chris@0 31 Pane *addPane(bool suppressPropertyBox = false); // I own the returned value
Chris@0 32 Pane *getPane(int n); // I own the returned value
Chris@0 33 void deletePane(Pane *pane); // Deletes the pane and all its views
Chris@0 34 int getPaneCount() const;
Chris@0 35
Chris@0 36 void setCurrentPane(Pane *pane);
Chris@19 37 void setCurrentLayer(Pane *pane, Layer *layer);
Chris@0 38 Pane *getCurrentPane();
Chris@0 39
Chris@0 40 signals:
Chris@0 41 void currentPaneChanged(Pane *pane);
Chris@17 42 void currentLayerChanged(Pane *pane, Layer *layer);
Chris@0 43
Chris@0 44 public slots:
Chris@0 45 void propertyContainerAdded(PropertyContainer *);
Chris@0 46 void propertyContainerRemoved(PropertyContainer *);
Chris@0 47 void propertyContainerSelected(PropertyContainer *);
Chris@0 48 void paneInteractedWith();
Chris@0 49
Chris@0 50 protected:
Chris@0 51 Pane *m_currentPane;
Chris@0 52 //!!! should be a single vector of structs
Chris@0 53 std::vector<Pane *> m_panes; // I own these
Chris@0 54 std::vector<QWidget *> m_propertyStacks; // I own these
Chris@0 55 std::vector<QLabel *> m_currentIndicators; // I own these
Chris@0 56 ViewManager *m_viewManager; // I don't own this
Chris@0 57
Chris@0 58 void sizePropertyStacks();
Chris@0 59 };
Chris@0 60
Chris@0 61 #endif
Chris@0 62