From 8cede851af210c0ce8d09199170223d6960c081b Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Thu, 20 Feb 2020 19:28:44 +0000 Subject: filewriter: feature to write singe file (#1033) git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9236 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Effect/filewriter/filewriterplugin.cpp | 6 +- src/plugins/Effect/filewriter/filewriterplugin.h | 5 +- src/plugins/Effect/filewriter/settingsdialog.cpp | 4 +- src/plugins/Effect/filewriter/settingsdialog.ui | 73 ++++++++++++---------- 4 files changed, 49 insertions(+), 39 deletions(-) (limited to 'src/plugins/Effect/filewriter') diff --git a/src/plugins/Effect/filewriter/filewriterplugin.cpp b/src/plugins/Effect/filewriter/filewriterplugin.cpp index f45a8b4e3..da7598284 100644 --- a/src/plugins/Effect/filewriter/filewriterplugin.cpp +++ b/src/plugins/Effect/filewriter/filewriterplugin.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2017 by Ilya Kotov * + * Copyright (C) 2017-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -28,7 +28,6 @@ FileWriterPlugin::FileWriterPlugin() { qsrand(time(nullptr)); - m_inited = false; } FileWriterPlugin::~FileWriterPlugin() @@ -45,7 +44,7 @@ void FileWriterPlugin::configure(quint32 srate, ChannelMap map) void FileWriterPlugin::applyEffect(Buffer *b) { - if(!b->trackInfo.isNull()) + if(!b->trackInfo.isNull() && !m_singleFile) init(*b->trackInfo); if(!m_inited || !b->samples) @@ -121,6 +120,7 @@ void FileWriterPlugin::init(const TrackInfo &info) QString fileName = settings.value("FileWriter/file_name", "%p%if(%p&%t, - ,)%t").toString(); if(fileName.isEmpty()) fileName = info.path().section("/", 1); + m_singleFile = settings.value("FileWriter/single_file", false).toBool(); MetaDataFormatter formatter(fileName); fileName = formatter.format(info); diff --git a/src/plugins/Effect/filewriter/filewriterplugin.h b/src/plugins/Effect/filewriter/filewriterplugin.h index 92ce91008..329358277 100644 --- a/src/plugins/Effect/filewriter/filewriterplugin.h +++ b/src/plugins/Effect/filewriter/filewriterplugin.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2017 by Ilya Kotov * + * Copyright (C) 2017-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -48,7 +48,8 @@ private: vorbis_comment m_vc; //struct that stores all the user comments vorbis_dsp_state m_vd; //central working state for the packet->PCM decoder vorbis_block m_vb; //local working space for packet->PCM decode - bool m_inited; + bool m_inited = false; + bool m_singleFile = false; QFile m_file; }; diff --git a/src/plugins/Effect/filewriter/settingsdialog.cpp b/src/plugins/Effect/filewriter/settingsdialog.cpp index e5f30e143..2d3329949 100644 --- a/src/plugins/Effect/filewriter/settingsdialog.cpp +++ b/src/plugins/Effect/filewriter/settingsdialog.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2017 by Ilya Kotov * + * Copyright (C) 2017-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -41,6 +41,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) m_ui.outDirEdit->setText(settings.value("FileWriter/out_dir", outDir).toString()); m_ui.outFileEdit->setText(settings.value("FileWriter/file_name", "%p%if(%p&%t, - ,)%t").toString()); m_ui.qualitySpinBox->setValue(settings.value("FileWriter/vorbis_quality", 0.8).toFloat()); + m_ui.singleFileCheckBox->setChecked(settings.value("FileWriter/single_file", false).toBool()); } SettingsDialog::~SettingsDialog() @@ -53,6 +54,7 @@ void SettingsDialog::accept() settings.setValue("FileWriter/out_dir", m_ui.outDirEdit->text()); settings.setValue("FileWriter/file_name", m_ui.outFileEdit->text()); settings.setValue("FileWriter/vorbis_quality", m_ui.qualitySpinBox->value()); + settings.setValue("FileWriter/single_file", m_ui.singleFileCheckBox->isChecked()); QDialog::accept(); } diff --git a/src/plugins/Effect/filewriter/settingsdialog.ui b/src/plugins/Effect/filewriter/settingsdialog.ui index 87dc4b0e8..b1014b87b 100644 --- a/src/plugins/Effect/filewriter/settingsdialog.ui +++ b/src/plugins/Effect/filewriter/settingsdialog.ui @@ -7,7 +7,7 @@ 0 0 405 - 146 + 178 @@ -30,9 +30,29 @@ + + + + Quality: + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -40,6 +60,9 @@ + + + @@ -53,6 +76,19 @@ + + + + + 0 + 0 + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + @@ -60,9 +96,6 @@ - - - @@ -70,39 +103,13 @@ - - + + - Quality: - - - - - - - - 0 - 0 - - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + Write to single file if possible. - - - - Qt::Vertical - - - - 20 - 40 - - - - -- cgit v1.2.3-13-gbd6f