kwave  18.07.70
RecordDialog.h
Go to the documentation of this file.
1 /*************************************************************************
2  RecordDialog.h - dialog window for controlling audio recording
3  -------------------
4  begin : Wed Aug 20 2003
5  copyright : (C) 2003 by Thomas Eschenbacher
6  email : Thomas.Eschenbacher@gmx.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef RECORD_DIALOG_H
19 #define RECORD_DIALOG_H
20 
21 #include "config.h"
22 
23 #include <QList>
24 #include <QMap>
25 #include <QString>
26 #include <QStringList>
27 #include <QTimer>
28 
29 #include "libkwave/Compression.h"
30 #include "libkwave/Sample.h"
31 #include "libkwave/SampleArray.h"
32 #include "libkwave/SampleFormat.h"
33 
34 #include "RecordController.h"
35 #include "RecordParams.h"
36 #include "RecordState.h"
37 #include "RecordTypesMap.h"
38 #include "StatusWidget.h"
39 
40 #include "ui_RecordDlg.h"
41 
42 class QDateTime;
43 class QLabel;
44 class QTreeWidgetItem;
45 class QWidget;
46 
47 namespace Kwave
48 {
49  class RecordDialog: public QDialog,
50  public Ui::RecordDlg
51  {
52  Q_OBJECT
53 
54  public:
55  typedef enum {
60  } Mode;
61 
63  RecordDialog(QWidget *parent, QStringList &params,
64  Kwave::RecordController *controller,
65  Mode mode);
66 
68  virtual ~RecordDialog();
69 
72 
74  void setMethod(Kwave::record_method_t method);
75 
80  void setSupportedDevices(QStringList devices);
81 
83  void setSupportedTracks(unsigned int min, unsigned int max);
84 
86  void setTracks(unsigned int tracks);
87 
89  void setSupportedSampleRates(const QList<double> &rates);
90 
95  void setSampleRate(double new_rate);
96 
102  const QList<Kwave::Compression::Type> &comps
103  );
104 
110  void setCompression(int compression);
111 
113  void setSupportedBits(const QList<unsigned int> &bits);
114 
116  void setBitsPerSample(unsigned int bits);
117 
125  QString rate2string(double rate) const;
126 
132  const QList<Kwave::SampleFormat::Format> &formats
133  );
134 
140  void setSampleFormat(Kwave::SampleFormat::Format sample_format);
141 
147  void updateBufferState(unsigned int count, unsigned int total);
148 
154  void updateEffects(unsigned int track, Kwave::SampleArray &buffer);
155 
160  void showDevicePage();
161 
162  signals:
163 
166 
168  void sigDeviceChanged(const QString &device);
169 
171  void sigTracksChanged(unsigned int tracks);
172 
174  void sampleRateChanged(double rate);
175 
178 
180  void sigBitsPerSampleChanged(unsigned int bits);
181 
184 
186  void sigBuffersChanged();
187 
189  void sigRecordTimeChanged(int limit);
190 
192  void sigTriggerChanged(bool enabled);
193 
195  void sigPreRecordingChanged(bool enabled);
196 
197  public slots:
198 
200  void setDevice(const QString &device);
201 
203  void setFileFilter(const QString &filter);
204 
206  void setRecordedSamples(sample_index_t samples_recorded);
207 
209  void message(const QString &message);
210 
211  private slots:
212 
218  void methodSelected(int index);
219 
221  void sourceBufferCountChanged(int value);
222 
224  void sourceBufferSizeChanged(int value);
225 
227  void selectRecordDevice();
228 
230  void listEntrySelected(QTreeWidgetItem *current,
231  QTreeWidgetItem *previous);
232 
234  void listItemExpanded(QTreeWidgetItem *item);
235 
240  void updateListSelection();
241 
243  void tracksChanged(int tracks);
244 
246  void sampleRateChanged(const QString &rate);
247 
249  void compressionChanged(int index);
250 
252  void bitsPerSampleChanged(int bits);
253 
255  void sampleFormatChanged(int index);
256 
258  void setState(Kwave::RecordState state);
259 
262 
264  void preRecordingChecked(bool enabled);
265 
267  void preRecordingTimeChanged(int time);
268 
270  void recordTimeChecked(bool limited);
271 
273  void recordTimeChanged(int record_time);
274 
276  void startTimeChecked(bool enabled);
277 
279  void startTimeChanged(const QDateTime &datetime);
280 
282  void triggerChecked(bool enabled);
283 
285  void triggerChanged(int trigger);
286 
288  void invokeHelp();
289 
290  private:
291 
298  double string2rate(const QString &rate) const;
299 
304  void updateRecordButton();
305 
306  private:
307 
310 
312  QString m_file_filter;
313 
315  QMap<QTreeWidgetItem *, QString> m_devices_list_map;
316 
319 
322 
324  QList<unsigned int> m_supported_resolutions;
325 
328 
331 
334 
337 
344 
347 
350 
351  struct {
352  QLabel *m_state;
353  QLabel *m_time;
354  QLabel *m_sample_rate;
356  QLabel *m_tracks;
357  } m_status_bar;
358  };
359 }
360 
361 #endif /* RECORD_DIALOG_H */
362 
363 //***************************************************************************
364 //***************************************************************************
void bitsPerSampleChanged(int bits)
RecordDialog(QWidget *parent, QStringList &params, Kwave::RecordController *controller, Mode mode)
void setBitsPerSample(unsigned int bits)
void recordTimeChecked(bool limited)
void setState(Kwave::RecordState state)
void updateBufferState(unsigned int count, unsigned int total)
void setTracks(unsigned int tracks)
struct Kwave::RecordDialog::@16 m_status_bar
Definition: App.h:33
Kwave::StatusWidget * m_state_icon_widget
Definition: RecordDialog.h:349
QString rate2string(double rate) const
void sigDeviceChanged(const QString &device)
void setSupportedBits(const QList< unsigned int > &bits)
void sourceBufferSizeChanged(int value)
QMap< QTreeWidgetItem *, QString > m_devices_list_map
Definition: RecordDialog.h:315
QTimer m_buffer_progress_timer
Definition: RecordDialog.h:333
sample_index_t m_samples_recorded
Definition: RecordDialog.h:343
void preRecordingTimeChanged(int time)
quint64 sample_index_t
Definition: Sample.h:28
Kwave::RecordParams m_params
Definition: RecordDialog.h:321
void sigBitsPerSampleChanged(unsigned int bits)
void tracksChanged(int tracks)
Kwave::RecordTypesMap m_methods_map
Definition: RecordDialog.h:309
record_method_t
Definition: RecordParams.h:37
unsigned int m_buffer_progress_total
Definition: RecordDialog.h:330
void setCompression(int compression)
QLabel * m_bits_per_sample
Definition: RecordDialog.h:355
void setRecordedSamples(sample_index_t samples_recorded)
void setMethod(Kwave::record_method_t method)
void sigPreRecordingChanged(bool enabled)
void preRecordingChecked(bool enabled)
void sigTracksChanged(unsigned int tracks)
void sampleFormatChanged(int index)
void sigSampleFormatChanged(Kwave::SampleFormat::Format sample_format)
void startTimeChecked(bool enabled)
void setSupportedSampleRates(const QList< double > &rates)
void listItemExpanded(QTreeWidgetItem *item)
unsigned int m_buffer_progress_count
Definition: RecordDialog.h:327
void sigMethodChanged(Kwave::record_method_t method)
void setSampleRate(double new_rate)
void sigRecordTimeChanged(int limit)
QList< unsigned int > m_supported_resolutions
Definition: RecordDialog.h:324
void setSupportedTracks(unsigned int min, unsigned int max)
void triggerChanged(int trigger)
void sampleRateChanged(double rate)
void listEntrySelected(QTreeWidgetItem *current, QTreeWidgetItem *previous)
void setSampleFormat(Kwave::SampleFormat::Format sample_format)
Kwave::RecordParams & params()
void sourceBufferCountChanged(int value)
void triggerChecked(bool enabled)
void setDevice(const QString &device)
void setSupportedDevices(QStringList devices)
void startTimeChanged(const QDateTime &datetime)
void sigTriggerChanged(bool enabled)
void updateEffects(unsigned int track, Kwave::SampleArray &buffer)
double string2rate(const QString &rate) const
void sigCompressionChanged(Kwave::Compression::Type compression)
void setFileFilter(const QString &filter)
void compressionChanged(int index)
void setSupportedSampleFormats(const QList< Kwave::SampleFormat::Format > &formats)
Kwave::RecordState m_state
Definition: RecordDialog.h:318
RecordState
Definition: RecordState.h:25
void methodSelected(int index)
void recordTimeChanged(int record_time)
void setSupportedCompressions(const QList< Kwave::Compression::Type > &comps)
void message(const QString &message)