annotate base/Preferences.h @ 294:2c1e57ad86e7

* Show colour swatch next to layer name in pane (if available) * Fix for incorrect layer name prefix handling (was making some layers appear to have the same model name in cases where the model names differed by the final character only)
author Chris Cannam
date Wed, 05 Sep 2007 15:17:15 +0000
parents 3b8008d09541
children c022976d18e8
rev   line source
Chris@136 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@136 2
Chris@136 3 /*
Chris@136 4 Sonic Visualiser
Chris@136 5 An audio file viewer and annotation editor.
Chris@136 6 Centre for Digital Music, Queen Mary, University of London.
Chris@202 7 This file copyright 2006 Chris Cannam and QMUL.
Chris@136 8
Chris@136 9 This program is free software; you can redistribute it and/or
Chris@136 10 modify it under the terms of the GNU General Public License as
Chris@136 11 published by the Free Software Foundation; either version 2 of the
Chris@136 12 License, or (at your option) any later version. See the file
Chris@136 13 COPYING included with this distribution for more information.
Chris@136 14 */
Chris@136 15
Chris@136 16 #ifndef _PREFERENCES_H_
Chris@136 17 #define _PREFERENCES_H_
Chris@136 18
Chris@136 19 #include "PropertyContainer.h"
Chris@136 20
Chris@140 21 #include "Window.h"
Chris@140 22
Chris@136 23 class Preferences : public PropertyContainer
Chris@136 24 {
Chris@136 25 Q_OBJECT
Chris@136 26
Chris@136 27 public:
Chris@156 28 static Preferences *getInstance();
Chris@136 29
Chris@136 30 virtual PropertyList getProperties() const;
Chris@136 31 virtual QString getPropertyLabel(const PropertyName &) const;
Chris@136 32 virtual PropertyType getPropertyType(const PropertyName &) const;
Chris@245 33 virtual int getPropertyRangeAndValue(const PropertyName &, int *, int *, int *) const;
Chris@136 34 virtual QString getPropertyValueLabel(const PropertyName &, int value) const;
Chris@136 35 virtual QString getPropertyContainerName() const;
Chris@136 36 virtual QString getPropertyContainerIconName() const;
Chris@136 37
Chris@246 38 enum SpectrogramSmoothing {
Chris@246 39 NoSpectrogramSmoothing,
Chris@246 40 SpectrogramInterpolated,
Chris@246 41 SpectrogramZeroPadded,
Chris@246 42 SpectrogramZeroPaddedAndInterpolated
Chris@246 43 };
Chris@246 44
Chris@246 45 SpectrogramSmoothing getSpectrogramSmoothing() const { return m_spectrogramSmoothing; }
Chris@136 46 float getTuningFrequency() const { return m_tuningFrequency; }
Chris@140 47 WindowType getWindowType() const { return m_windowType; }
Chris@164 48 int getResampleQuality() const { return m_resampleQuality; }
Chris@136 49
Chris@138 50 //!!! harmonise with PaneStack
Chris@138 51 enum PropertyBoxLayout {
Chris@138 52 VerticallyStacked,
Chris@138 53 Layered
Chris@138 54 };
Chris@138 55 PropertyBoxLayout getPropertyBoxLayout() const { return m_propertyBoxLayout; }
Chris@138 56
Chris@277 57 bool getOmitTempsFromRecentFiles() const { return m_omitRecentTemps; }
Chris@277 58
Chris@136 59 public slots:
Chris@136 60 virtual void setProperty(const PropertyName &, int);
Chris@136 61
Chris@246 62 void setSpectrogramSmoothing(SpectrogramSmoothing smoothing);
Chris@136 63 void setTuningFrequency(float freq);
Chris@138 64 void setPropertyBoxLayout(PropertyBoxLayout layout);
Chris@140 65 void setWindowType(WindowType type);
Chris@164 66 void setResampleQuality(int quality);
Chris@277 67 void setOmitTempsFromRecentFiles(bool omit);
Chris@136 68
Chris@136 69 private:
Chris@145 70 Preferences(); // may throw DirectoryCreationFailed
Chris@145 71 virtual ~Preferences();
Chris@136 72
Chris@136 73 static Preferences *m_instance;
Chris@136 74
Chris@246 75 SpectrogramSmoothing m_spectrogramSmoothing;
Chris@136 76 float m_tuningFrequency;
Chris@138 77 PropertyBoxLayout m_propertyBoxLayout;
Chris@140 78 WindowType m_windowType;
Chris@164 79 int m_resampleQuality;
Chris@277 80 bool m_omitRecentTemps;
Chris@136 81 };
Chris@136 82
Chris@136 83 #endif