20 #include <QLatin1Char> 24 #include <QDateTimeEdit> 29 #include <QProgressBar> 30 #include <QPushButton> 36 #include <QTreeWidget> 37 #include <QTreeWidgetItem> 40 #include <KHelpClient> 41 #include <KLocalizedString> 42 #include <KIconLoader> 76 #define SETUP(enabled,property,check,value) \ 77 check->setChecked(m_params.enabled); \ 78 value->setValue(m_params.property); \ 80 #define STD_SETUP(enabled,property,control) \ 81 SETUP(enabled,property,chk##control,sb##control); \ 82 sb##control->setEnabled(chk##control->isEnabled() && \ 83 chk##control->isChecked()); 85 #define STD_SETUP_SLIDER(enabled,property,control) \ 86 STD_SETUP(enabled,property,control); \ 87 sl##control->setEnabled(sb##control->isEnabled()); 93 :QDialog(parent), Ui::RecordDlg(), m_methods_map(),
94 m_file_filter(), m_devices_list_map(),
96 m_supported_resolutions(), m_buffer_progress_count(0),
97 m_buffer_progress_total(0), m_buffer_progress_timer(this),
98 m_record_enabled(true), m_samples_recorded(0),
99 m_enable_setDevice(true), m_state_icon_widget(Q_NULLPTR)
113 btNew->setIcon( QIcon::fromTheme(
_(
"document-new")));
114 btStop->setIcon( QIcon::fromTheme(
_(
"kwave_player_stop")));
115 btPause->setIcon( QIcon::fromTheme(
_(
"kwave_player_pause")));
116 btRecord->setIcon(QIcon::fromTheme(
_(
"kwave_player_record")));
119 unsigned int index=0;
123 cbMethod->setEnabled(cbMethod->count() > 1);
129 connect(chkRecordPre, SIGNAL(toggled(
bool)),
131 connect(sbRecordPre, SIGNAL(valueChanged(
int)),
135 STD_SETUP(record_time_limited, record_time, RecordTime);
151 STD_SETUP(fade_in_enabled, fade_in_time, LevelFadeIn);
154 STD_SETUP(fade_out_enabled, fade_out_time, LevelFadeOut);
170 connect(cbMethod, SIGNAL(activated(
int)),
176 connect(slSourceBufferSize, SIGNAL(valueChanged(
int)),
178 connect(slSourceBufferCount, SIGNAL(valueChanged(
int)),
183 SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
185 connect(listDevices, SIGNAL(itemExpanded(QTreeWidgetItem*)),
187 connect(listDevices, SIGNAL(focusLost()),
191 connect(btSourceSelect, SIGNAL(clicked()),
193 connect(cbDevice, SIGNAL(activated(QString)),
197 connect(chkRecordTime, SIGNAL(toggled(
bool)),
199 connect(sbRecordTime, SIGNAL(valueChanged(
int)),
202 connect(chkRecordStartTime, SIGNAL(toggled(
bool)),
204 connect(startTime, SIGNAL(dateTimeChanged(QDateTime)),
207 connect(chkRecordTrigger, SIGNAL(toggled(
bool)),
209 connect(sbRecordTrigger, SIGNAL(valueChanged(
int)),
212 connect(cbFormatSampleRate, SIGNAL(editTextChanged(QString)),
214 connect(cbFormatSampleRate, SIGNAL(activated(QString)),
217 connect(sbFormatTracks, SIGNAL(valueChanged(
int)),
220 connect(cbFormatCompression, SIGNAL(activated(
int)),
223 connect(sbFormatResolution, SIGNAL(valueChanged(
int)),
226 connect(cbFormatSampleFormat, SIGNAL(activated(
int)),
230 connect(btNew, SIGNAL(clicked()),
231 controller, SLOT(actionReset()));
232 connect(btStop, SIGNAL(clicked()),
233 controller, SLOT(actionStop()));
234 connect(btPause, SIGNAL(clicked()),
235 controller, SLOT(actionPause()));
236 connect(btRecord, SIGNAL(clicked()),
237 controller, SLOT(actionStart()));
240 connect(
this, SIGNAL(rejected()), controller, SLOT(actionStop()));
241 connect(
this, SIGNAL(accepted()), controller, SLOT(actionStop()));
252 connect(buttonBox->button(QDialogButtonBox::Help), SIGNAL(clicked()),
257 Q_ASSERT(m_state_icon_widget);
258 if (!m_state_icon_widget)
return;
260 m_state_icon_widget->setFixedSize(16, 16);
261 lbl_state->addWidget(m_state_icon_widget);
266 m_status_bar.m_state->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
272 m_status_bar.m_time->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
275 m_status_bar.m_sample_rate =
new (std::nothrow) QLabel(
_(
" "));
278 m_status_bar.m_sample_rate->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
281 m_status_bar.m_bits_per_sample =
new (std::nothrow) QLabel(
_(
" "));
284 m_status_bar.m_bits_per_sample->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
290 m_status_bar.m_tracks->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
293 m_state_icon_widget->setFixedSize(16, lbl_state->childrenRect().height());
299 tabRecord->setCurrentIndex(1);
300 QWidget *page = tabRecord->currentWidget();
301 tabRecord->setCurrentIndex(0);
302 if (page)
delete page;
305 QPushButton *bt_done =
306 buttonBox->addButton(i18n(
"&Done"), QDialogButtonBox::AcceptRole);
308 if (!bt_done)
return;
309 connect(bt_done, SIGNAL(clicked(
bool)),
this, SLOT(accept()));
314 tabRecord->setCurrentIndex(1);
317 tabRecord->setCurrentIndex(2);
322 tabRecord->setCurrentIndex(0);
324 btRecord->setFocus();
371 Q_ASSERT(listDevices);
372 if (!cbDevice || !listDevices)
return;
379 KIconLoader *icon_loader = KIconLoader::global();
381 cbDevice->clearEditText();
383 listDevices->clear();
385 if (devices.contains(
_(
"#EDIT#"))) {
386 devices.removeAll(
_(
"#EDIT#"));
387 cbDevice->setEditable(
true);
389 cbDevice->setEditable(
false);
392 if (devices.contains(
_(
"#SELECT#"))) {
393 devices.removeAll(
_(
"#SELECT#"));
394 btSourceSelect->setEnabled(
true);
395 btSourceSelect->show();
397 btSourceSelect->setEnabled(
false);
398 btSourceSelect->hide();
401 if (devices.contains(
_(
"#TREE#"))) {
403 devices.removeAll(
_(
"#TREE#"));
404 listDevices->setEnabled(
true);
405 cbDevice->setEnabled(
false);
410 foreach (QString dev_id, devices) {
411 QTreeWidgetItem *parent = Q_NULLPTR;
413 QStringList list = dev_id.split(
_(
"||"), QString::KeepEmptyParts);
414 foreach (QString token, list) {
415 QTreeWidgetItem *item = Q_NULLPTR;
419 int pos = token.indexOf(QLatin1Char(
'|'));
421 icon_name = token.mid(pos+1);
422 token = token.left(pos);
428 for (
int i = 0; i < parent->childCount(); i++) {
429 QTreeWidgetItem *node = parent->child(i);
430 if (node && node->text(0) == token) {
436 QList<QTreeWidgetItem *> matches =
437 listDevices->findItems(token, Qt::MatchExactly);
439 item = matches.takeFirst();
447 item =
new QTreeWidgetItem(parent);
450 item->setText(0, token);
454 parent->setExpanded(
true);
455 parent->setFlags(parent->flags() &
456 ~(Qt::ItemIsUserCheckable | Qt::ItemIsSelectable));
463 item =
new QTreeWidgetItem(listDevices);
466 item->setText(0, token);
471 if (item && icon_name.length() && icon_loader) {
472 QIcon icon = icon_loader->loadIcon(
473 icon_name, KIconLoader::User);
474 item->setIcon(0, icon);
483 cbDevice->addItems(devices);
485 listDevices->setEnabled(
false);
487 if (devices.contains(current_device)) {
489 cbDevice->setCurrentIndex(cbDevice->findText(current_device));
491 if (cbDevice->isEditable() && current_device.length()) {
493 cbDevice->setEditText(current_device);
494 }
else if (devices.count()) {
496 cbDevice->setCurrentIndex(0);
499 cbDevice->clearEditText();
503 cbDevice->setEnabled(devices.count() > 1);
512 QTreeWidgetItem *previous)
514 Q_ASSERT(listDevices);
516 if (!current || !listDevices)
return;
540 Q_ASSERT(listDevices);
541 if (!cbDevice || !listDevices)
return;
547 if (listDevices->isEnabled()) {
551 node->setSelected(
true);
552 listDevices->scrollToItem(node);
553 listDevices->setCurrentItem(node);
555 }
else if (cbDevice->isEditable() && device.length()) {
557 if (!device.isEmpty() && (cbDevice->currentText() != device)) {
558 cbDevice->setCurrentIndex(cbDevice->findText(device));
559 cbDevice->setEditText(device);
563 if (cbDevice->findText(device) >= 0) {
564 cbDevice->setCurrentIndex(cbDevice->findText(device));
565 }
else if (cbDevice->count()) {
566 cbDevice->setCurrentIndex(0);
576 Q_ASSERT(value >= 4);
577 Q_ASSERT(value <= 64);
578 if (value < 4) value = 4;
579 if (value > 64) value = 64;
589 Q_ASSERT(value >= 10);
590 Q_ASSERT(value <= 18);
591 if (value < 10) value = 10;
592 if (value > 18) value = 18;
598 unsigned int buffer_size = (1 << value);
599 txtSourceBuffer->setText(i18n(
"%1 samples", buffer_size));
608 if (btSourceSelect) btSourceSelect->setEnabled(
m_file_filter.length());
617 filter +=
_(
"dsp*|") + i18n(
"OSS record device (dsp*)");
618 filter +=
_(
"\nadsp*|") + i18n(
"ALSA record device (adsp*)");
619 filter +=
_(
"\n*|") + i18n(
"Any device (*)");
622 _(
"kfiledialog:///kwave_record_device"),
627 dlg->setWindowTitle(i18n(
"Select Record Device"));
631 dlg->selectUrl(QUrl(
_(
"file:/dev/*")));
632 if (dlg->exec() == QDialog::Accepted) {
634 QString new_device = dlg->selectedUrl().path();
645 const QString dot = locale.decimalPoint();
646 const QString tsep = locale.groupSeparator();
649 QString s = locale.toString(rate,
'f', 3);
655 while (s.endsWith(
_(
"0"))) s.remove(s.length()-1, 1);
658 if (s.endsWith(dot)) s.remove(s.length()-1, 1);
667 const QString s = rate;
670 r = locale.toDouble(rate, &ok);
672 if (!ok)
return s.toDouble();
681 Q_ASSERT(sbFormatTracks);
682 if (!sbFormatTracks)
return;
684 if ((min == max) || (!max)) {
685 sbFormatTracks->setEnabled(
false);
688 sbFormatTracks->setEnabled(
true);
690 if (sbFormatTracks->value() < sbFormatTracks->minimum()) {
691 sbFormatTracks->setMaximum(max);
692 sbFormatTracks->setMinimum(min);
694 sbFormatTracks->setMinimum(min);
695 sbFormatTracks->setMaximum(max);
704 Q_ASSERT(sbFormatTracks);
714 tracks_str = i18n(
"Mono");
717 tracks_str = i18n(
"Stereo");
720 tracks_str = i18n(
"Quadro");
726 if (tracks_str.length()) {
727 lblTracksVerbose->setText(
_(
"(") + tracks_str +
_(
")"));
730 lblTracksVerbose->setText(
_(
""));
731 m_status_bar.m_tracks->setText(i18n(
"%1 tracks", tracks));
734 sbFormatTracks->setValue(tracks);
740 if (tracks < 1)
return;
750 Q_ASSERT(cbFormatSampleRate);
751 if (!cbFormatSampleRate)
return;
753 cbFormatSampleRate->clearEditText();
754 cbFormatSampleRate->setEditable(
false);
755 cbFormatSampleRate->clear();
757 foreach (
double r, rates) {
759 Q_ASSERT(rate.length());
760 if (!rate.length())
continue;
761 cbFormatSampleRate->addItem(rate);
764 bool have_choice = (cbFormatSampleRate->count() > 1);
765 cbFormatSampleRate->setEnabled(have_choice);
771 Q_ASSERT(cbFormatSampleRate);
773 if (!cbFormatSampleRate || !
m_status_bar.m_sample_rate)
return;
776 cbFormatSampleRate->setEnabled(
false);
779 bool have_choice = (cbFormatSampleRate->count() > 1);
780 cbFormatSampleRate->setEnabled(have_choice);
786 cbFormatSampleRate->setCurrentItem(rate,
true);
787 m_status_bar.m_sample_rate->setText(i18n(
"%1 Hz", rate));
793 if (!rate.length())
return;
803 const QList<Kwave::Compression::Type> &comps
806 Q_ASSERT(cbFormatCompression);
807 if (!cbFormatCompression)
return;
809 cbFormatCompression->clear();
811 if (comps.isEmpty()) {
814 cbFormatCompression->addItem(comp.
name());
818 cbFormatCompression->addItem(comp.
name(), comp.
toInt());
822 bool have_choice = (cbFormatCompression->count() > 1);
823 cbFormatCompression->setEnabled(have_choice);
829 Q_ASSERT(cbFormatCompression);
830 if (!cbFormatCompression)
return;
832 if (compression < 0) {
833 cbFormatCompression->setEnabled(
false);
836 bool have_choice = (cbFormatCompression->count() > 1);
837 cbFormatCompression->setEnabled(have_choice);
842 cbFormatCompression->setCurrentItem(comp.
name(),
true);
849 cbFormatCompression->itemData(index).toInt());
857 Q_ASSERT(sbFormatResolution);
858 if (!sbFormatResolution)
return;
862 sbFormatResolution->setMinimum(bits.first());
863 sbFormatResolution->setMaximum(bits.last());
867 sbFormatResolution->setEnabled(bits.count() > 1);
873 Q_ASSERT(sbFormatResolution);
875 if (!sbFormatResolution || !
m_status_bar.m_bits_per_sample)
return;
878 sbFormatResolution->setEnabled(
false);
885 m_status_bar.m_bits_per_sample->setText(i18n(
"%1 bit", bits));
886 sbFormatResolution->setValue(bits);
892 if (bits < 1)
return;
894 if (bits == last)
return;
901 while (it.hasNext()) {
903 if (bits > last)
break;
910 while (it.hasPrevious()) {
911 bits = it.previous();
912 if (bits < last)
break;
920 if (sbFormatResolution && (bits != sbFormatResolution->value()))
921 sbFormatResolution->setValue(bits);
928 const QList<Kwave::SampleFormat::Format> &formats)
930 Q_ASSERT(cbFormatSampleFormat);
931 if (!cbFormatSampleFormat)
return;
933 cbFormatSampleFormat->clear();
937 cbFormatSampleFormat->addItem(
943 bool have_choice = (cbFormatSampleFormat->count() > 1);
944 cbFormatSampleFormat->setEnabled(have_choice);
951 Q_ASSERT(cbFormatSampleFormat);
952 if (!cbFormatSampleFormat)
return;
955 cbFormatSampleFormat->setEnabled(
false);
958 bool have_choice = (cbFormatSampleFormat->count() > 1);
959 cbFormatSampleFormat->setEnabled(have_choice);
963 int cb_index = cbFormatSampleFormat->findData(
965 cbFormatSampleFormat->setCurrentIndex(cb_index);
971 Q_ASSERT(cbFormatSampleFormat);
972 if (!cbFormatSampleFormat)
return;
975 format.
fromInt(cbFormatSampleFormat->itemData(index).toInt());
988 bool enable_new =
false;
989 bool enable_pause =
false;
990 bool enable_stop =
false;
991 bool enable_record =
false;
992 bool enable_settings =
false;
993 bool enable_trigger =
false;
994 QString state_text =
_(
"");
995 QVector<QPixmap> pixmaps;
996 unsigned int animation_time = 500;
1001 state_text = i18n(
"Please check the source device settings...");
1003 enable_pause =
false;
1004 enable_stop =
false;
1005 enable_record =
false;
1006 enable_settings =
true;
1007 enable_trigger =
true;
1008 pixmaps.push_back(QPixmap(stop_hand_xpm));
1009 pixmaps.push_back(QPixmap(ledred_xpm));
1013 state_text = i18n(
"(empty)");
1015 enable_pause =
false;
1016 enable_stop =
false;
1018 enable_settings =
true;
1019 enable_trigger =
true;
1020 pixmaps.push_back(QPixmap(ledgreen_xpm));
1024 state_text = i18n(
"Buffering...");
1026 enable_pause =
false;
1028 enable_record =
true;
1029 enable_settings =
false;
1030 enable_trigger =
true;
1031 pixmaps.push_back(QPixmap(ledgreen_xpm));
1032 pixmaps.push_back(QPixmap(ledlightgreen_xpm));
1035 state_text = i18n(
"Prerecording...");
1037 enable_pause =
false;
1039 enable_record =
true;
1040 enable_settings =
false;
1041 enable_trigger =
true;
1042 pixmaps.push_back(QPixmap(ledgreen_xpm));
1043 pixmaps.push_back(QPixmap(ledlightgreen_xpm));
1046 state_text = i18n(
"Waiting for trigger...");
1048 enable_pause =
false;
1050 enable_record =
true;
1051 enable_settings =
false;
1052 enable_trigger =
true;
1053 pixmaps.push_back(QPixmap(ledgreen_xpm));
1054 pixmaps.push_back(QPixmap(ledlightgreen_xpm));
1057 state_text = i18n(
"Recording...");
1059 enable_pause =
true;
1061 enable_record =
false;
1062 enable_settings =
false;
1063 enable_trigger =
false;
1064 pixmaps.push_back(QPixmap(walk_r1_xpm));
1065 pixmaps.push_back(QPixmap(walk_r2_xpm));
1066 pixmaps.push_back(QPixmap(walk_r3_xpm));
1067 pixmaps.push_back(QPixmap(walk_r4_xpm));
1068 pixmaps.push_back(QPixmap(walk_r5_xpm));
1069 pixmaps.push_back(QPixmap(walk_r6_xpm));
1070 pixmaps.push_back(QPixmap(walk_r7_xpm));
1071 pixmaps.push_back(QPixmap(walk_r8_xpm));
1072 animation_time = 100;
1075 state_text = i18n(
"Paused");
1077 enable_pause =
true;
1079 enable_record =
true;
1080 enable_settings =
false;
1081 enable_trigger =
false;
1082 pixmaps.push_back(QPixmap(ledgreen_xpm));
1083 pixmaps.push_back(QPixmap(ledyellow_xpm));
1086 state_text = i18n(
"Done");
1088 enable_pause =
false;
1089 enable_stop =
false;
1090 enable_record =
true;
1091 enable_settings =
true;
1092 enable_trigger =
true;
1093 pixmaps.push_back(QPixmap(ok_xpm));
1100 btNew->setEnabled(enable_new);
1101 btPause->setEnabled(enable_pause);
1102 btStop->setEnabled(enable_stop);
1107 chkRecordPre->setEnabled(enable_settings);
1108 sbRecordPre->setEnabled(enable_settings &&
1109 chkRecordPre->isChecked());
1110 slRecordPre->setEnabled(enable_settings &&
1111 chkRecordPre->isChecked());
1113 chkRecordStartTime->setEnabled(enable_settings);
1114 chkRecordTime->setEnabled(enable_settings);
1115 sbRecordTime->setEnabled(enable_settings &&
1116 chkRecordTime->isChecked());
1117 chkRecordTrigger->setEnabled(enable_settings);
1120 sbRecordTrigger->setEnabled(enable_trigger &&
1121 chkRecordTrigger->isChecked());
1122 slRecordTrigger->setEnabled(enable_trigger &&
1123 chkRecordTrigger->isChecked());
1124 startTime->setEnabled(enable_settings &&
1125 chkRecordStartTime->isChecked());
1127 grpFormat->setEnabled(enable_settings);
1128 grpSource->setEnabled(enable_settings);
1136 Q_ASSERT(progress_bar);
1145 progress_bar->setTextVisible(
false);
1146 progress_bar->setMinimum(0);
1147 progress_bar->setMaximum(100);
1148 progress_bar->setValue(0);
1149 progress_bar->reset();
1170 QDateTime now = QDateTime::currentDateTime();
1184 QString days = (d) ?
1185 i18np(
"one day ",
"%1 days ", d) :
_(
"");
1186 QString hours = (h) ?
1187 i18np(
"one hour ",
"%1 hours ", h) :
_(
"");
1188 QString minutes = (m) ?
1189 i18np(
"one minute ",
"%1 minutes ", m) :
_(
"");
1192 i18np(
"and %1 second",
"and %1 seconds", s) :
1193 i18np(
"%1 second",
"%1 seconds", s);
1196 "%1=days; %2=hours; %3=minutes; %4=seconds",
1197 "Waiting for start in %1%2%3%4...",
1198 days, hours, minutes, seconds);
1201 state_text = i18n(
"Waiting for trigger...");
1212 double ms = (rate > 0) ?
1217 _(
" ") + i18n(
"(%1 samples)",
1269 t.setHMS(t.hour(), t.minute(), 0, 0);
1298 progress_bar->setTextVisible(
true);
1299 progress_bar->setMinimum(0);
1300 progress_bar->setMaximum(100 * total);
1301 progress_bar->setValue(100 * count);
1312 if (!buffer.
size())
return;
1317 level_meter->updateTrack(track, buffer);
1333 bool old_enable = btRecord->isEnabled();
1341 if (new_enable != old_enable) btRecord->setEnabled(new_enable);
1347 KHelpClient::invokeHelp(
_(
"recording"));
1353 if (lbl_state) lbl_state->showMessage(message, 3000);
1359 if (tabRecord) tabRecord->setCurrentIndex(2);
void bitsPerSampleChanged(int bits)
RecordDialog(QWidget *parent, QStringList ¶ms, Kwave::RecordController *controller, Mode mode)
void setBitsPerSample(unsigned int bits)
unsigned int bits_per_sample
void updateRecordButton()
void recordTimeChecked(bool limited)
void setState(Kwave::RecordState state)
void updateBufferState(unsigned int count, unsigned int total)
void setTracks(unsigned int tracks)
unsigned int count() const
struct Kwave::RecordDialog::@16 m_status_bar
Kwave::StatusWidget * m_state_icon_widget
QString Q_DECL_EXPORT ms2string(double ms, int precision=6)
QString Q_DECL_EXPORT samples2string(sample_index_t samples)
QString rate2string(double rate) const
QString description(IDX type, bool localized) const
void selectUrl(const QUrl &url)
DATA data(IDX type) const
void sigDeviceChanged(const QString &device)
void setSupportedBits(const QList< unsigned int > &bits)
void updateListSelection()
void sourceBufferSizeChanged(int value)
QMap< QTreeWidgetItem *, QString > m_devices_list_map
QTimer m_buffer_progress_timer
sample_index_t m_samples_recorded
void preRecordingTimeChanged(int time)
static Kwave::Compression::Type fromInt(int i)
unsigned int pre_record_time
Kwave::RecordParams m_params
void sigBitsPerSampleChanged(unsigned int bits)
void tracksChanged(int tracks)
bool connect(Kwave::StreamObject &source, const char *output, Kwave::StreamObject &sink, const char *input)
Kwave::RecordTypesMap m_methods_map
void selectRecordDevice()
unsigned int m_buffer_progress_total
void setCompression(int compression)
unsigned int record_trigger
#define STD_SETUP(enabled, property, control)
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
void sigMethodChanged(Kwave::record_method_t method)
void setSampleRate(double new_rate)
void sigRecordTimeChanged(int limit)
QList< unsigned int > m_supported_resolutions
void setSupportedTracks(unsigned int min, unsigned int max)
void triggerChanged(int trigger)
void sampleRateChanged(double rate)
void listEntrySelected(QTreeWidgetItem *current, QTreeWidgetItem *previous)
bool record_trigger_enabled
void setSampleFormat(Kwave::SampleFormat::Format sample_format)
Kwave::RecordParams & params()
Kwave::SampleFormat::Format sample_format
void sourceBufferCountChanged(int value)
void triggerChecked(bool enabled)
void setDevice(const QString &device)
unsigned int size() const
void setSupportedDevices(QStringList devices)
#define STD_SETUP_SLIDER(enabled, property, control)
Kwave::record_method_t method
void startTimeChanged(const QDateTime &datetime)
void updateBufferProgressBar()
void sigTriggerChanged(bool enabled)
void updateEffects(unsigned int track, Kwave::SampleArray &buffer)
Kwave::Compression::Type compression
unsigned int buffer_count
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)
virtual int fromList(const QStringList &list)
Kwave::RecordState m_state
IDX findFromData(const DATA &data) const
void methodSelected(int index)
void recordTimeChanged(int record_time)
void setSupportedCompressions(const QList< Kwave::Compression::Type > &comps)
void message(const QString &message)