annotate widgets/CSVFormatDialog.h @ 1318:b149b53df365 import-audio-data

Support audio-format CSV format selection in dialog
author Chris Cannam
date Thu, 06 Sep 2018 11:49:31 +0100
parents fcc1f45f7bd5
children fbda05431ce0
rev   line source
Chris@378 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@378 2
Chris@378 3 /*
Chris@378 4 Sonic Visualiser
Chris@378 5 An audio file viewer and annotation editor.
Chris@378 6 Centre for Digital Music, Queen Mary, University of London.
Chris@378 7 This file copyright 2006 Chris Cannam.
Chris@378 8
Chris@378 9 This program is free software; you can redistribute it and/or
Chris@378 10 modify it under the terms of the GNU General Public License as
Chris@378 11 published by the Free Software Foundation; either version 2 of the
Chris@378 12 License, or (at your option) any later version. See the file
Chris@378 13 COPYING included with this distribution for more information.
Chris@378 14 */
Chris@378 15
Chris@1312 16 #ifndef SV_CSV_FORMAT_DIALOG_H
Chris@1312 17 #define SV_CSV_FORMAT_DIALOG_H
Chris@378 18
Chris@378 19 #include "data/fileio/CSVFormat.h"
Chris@378 20
Chris@378 21 class QTableWidget;
Chris@378 22 class QComboBox;
Chris@378 23 class QLabel;
Chris@378 24
Chris@378 25 #include <QDialog>
Chris@378 26
Chris@378 27 class CSVFormatDialog : public QDialog
Chris@378 28 {
Chris@378 29 Q_OBJECT
Chris@378 30
Chris@378 31 public:
Chris@1318 32 CSVFormatDialog(QWidget *parent,
Chris@1318 33 CSVFormat initialFormat,
Chris@581 34 int maxDisplayCols = 5);
Chris@378 35 ~CSVFormatDialog();
Chris@378 36
Chris@378 37 CSVFormat getFormat() const;
Chris@378 38
Chris@378 39 protected slots:
Chris@378 40 void timingTypeChanged(int type);
Chris@378 41 void sampleRateChanged(QString);
Chris@378 42 void windowSizeChanged(QString);
Chris@560 43 void columnPurposeChanged(int purpose);
Chris@959 44
Chris@959 45 void updateFormatFromDialog();
Chris@561 46 void updateModelLabel();
Chris@378 47
Chris@378 48 protected:
Chris@1318 49 enum DialogType {
Chris@1318 50 AnnotationDataDialog,
Chris@1318 51 AudioDataDialog
Chris@1318 52 };
Chris@1318 53 DialogType m_dialogType;
Chris@1318 54
Chris@560 55 CSVFormat m_format;
Chris@581 56 int m_maxDisplayCols;
Chris@1318 57
Chris@959 58 enum TimingOption {
Chris@959 59 TimingExplicitSeconds = 0,
Chris@959 60 TimingExplicitMsec,
Chris@959 61 TimingExplicitSamples,
Chris@959 62 TimingImplicit
Chris@959 63 };
Chris@959 64 std::map<TimingOption, QString> m_timingLabels;
Chris@959 65 TimingOption m_initialTimingOption;
Chris@959 66
Chris@1318 67 void columnPurposeChangedForAnnotationType(QComboBox *, int purpose);
Chris@959 68 void updateComboVisibility();
Chris@959 69 void applyStartTimePurpose();
Chris@959 70 void removeStartTimePurpose();
Chris@378 71
Chris@378 72 QComboBox *m_timingTypeCombo;
Chris@378 73 QLabel *m_sampleRateLabel;
Chris@378 74 QComboBox *m_sampleRateCombo;
Chris@378 75 QLabel *m_windowSizeLabel;
Chris@378 76 QComboBox *m_windowSizeCombo;
Chris@561 77 QLabel *m_modelLabel;
Chris@378 78
Chris@560 79 QList<QComboBox *> m_columnPurposeCombos;
Chris@581 80 int m_fuzzyColumn;
Chris@378 81 };
Chris@378 82
Chris@378 83 #endif