diff --git a/app/widget/viewer/viewer.cpp b/app/widget/viewer/viewer.cpp index acc7b45c4..9caee2a3e 100644 --- a/app/widget/viewer/viewer.cpp +++ b/app/widget/viewer/viewer.cpp @@ -388,7 +388,6 @@ void ViewerWidget::StartCapture(TimelineWidget *source, const TimeRange &time, c SetTimeAndSignal(time.in()); ArmForRecording(); - recording_filename_ = QStringLiteral("/home/matt/Desktop/ass.mp3"); recording_callback_ = source; recording_range_ = time; recording_track_ = track; @@ -1167,6 +1166,23 @@ void ViewerWidget::Play(bool in_to_out_only) in_to_out_only = false; } } else if (record_armed_) { + DisarmRecording(); + + if (GetConnectedNode()->project()->filename().isEmpty()) { + QMessageBox::critical(this, tr("Audio Recording"), tr("Project must be saved before you can record audio.")); + return; + } + + QDir audio_path(QFileInfo(GetConnectedNode()->project()->filename()).dir().filePath(tr("audio"))); + if (!audio_path.exists()) { + audio_path.mkpath(QStringLiteral(".")); + } + + recording_filename_ = audio_path.filePath(QStringLiteral("%1.%2").arg( + QDateTime::currentDateTime().toString("yyyy-MM-dd hh-mm-ss"), + ExportFormat::GetExtension(static_cast(Config::Current()[QStringLiteral("AudioRecordingFormat")].toInt()))) + ); + if (AudioManager::instance()->StartRecording(recording_filename_, GetConnectedNode()->GetAudioParams())) { recording_ = true; controls_->SetPauseButtonRecordingState(true); @@ -1175,8 +1191,6 @@ void ViewerWidget::Play(bool in_to_out_only) QMessageBox::critical(this, tr("Audio Recording"), tr("Failed to start audio recording")); return; } - - DisarmRecording(); } PlayInternal(1, in_to_out_only);