diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-02-20 19:28:44 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-02-20 19:28:44 +0000 |
| commit | 8cede851af210c0ce8d09199170223d6960c081b (patch) | |
| tree | e94b87d7b794373332214b05bb733462ea98bbbc /src/plugins/Effect/filewriter | |
| parent | 94aa57d698a6400ae9c9d46991193d8ee844bb83 (diff) | |
| download | qmmp-8cede851af210c0ce8d09199170223d6960c081b.tar.gz qmmp-8cede851af210c0ce8d09199170223d6960c081b.tar.bz2 qmmp-8cede851af210c0ce8d09199170223d6960c081b.zip | |
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
Diffstat (limited to 'src/plugins/Effect/filewriter')
4 files changed, 49 insertions, 39 deletions
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 @@ <x>0</x> <y>0</y> <width>405</width> - <height>146</height> + <height>178</height> </rect> </property> <property name="windowTitle"> @@ -30,9 +30,29 @@ </property> </widget> </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_6"> + <property name="text"> + <string>Quality:</string> + </property> + </widget> + </item> <item row="0" column="1"> <widget class="QLineEdit" name="outDirEdit"/> </item> + <item row="4" column="0"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> <item row="0" column="2"> <widget class="QToolButton" name="dirButton"> <property name="text"> @@ -40,6 +60,9 @@ </property> </widget> </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="outFileEdit"/> + </item> <item row="2" column="1" colspan="2"> <widget class="QDoubleSpinBox" name="qualitySpinBox"> <property name="minimum"> @@ -53,6 +76,19 @@ </property> </widget> </item> + <item row="6" column="0" colspan="3"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> <item row="1" column="0"> <widget class="QLabel" name="label_3"> <property name="text"> @@ -60,9 +96,6 @@ </property> </widget> </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="outFileEdit"/> - </item> <item row="1" column="2"> <widget class="QToolButton" name="fileNameButton"> <property name="text"> @@ -70,39 +103,13 @@ </property> </widget> </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_6"> + <item row="3" column="0" colspan="2"> + <widget class="QCheckBox" name="singleFileCheckBox"> <property name="text"> - <string>Quality:</string> - </property> - </widget> - </item> - <item row="4" column="0" colspan="3"> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + <string>Write to single file if possible.</string> </property> </widget> </item> - <item row="3" column="0"> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> </layout> </widget> <resources/> |
