aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Effect/filewriter
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-02-20 19:28:44 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-02-20 19:28:44 +0000
commit8cede851af210c0ce8d09199170223d6960c081b (patch)
treee94b87d7b794373332214b05bb733462ea98bbbc /src/plugins/Effect/filewriter
parent94aa57d698a6400ae9c9d46991193d8ee844bb83 (diff)
downloadqmmp-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')
-rw-r--r--src/plugins/Effect/filewriter/filewriterplugin.cpp6
-rw-r--r--src/plugins/Effect/filewriter/filewriterplugin.h5
-rw-r--r--src/plugins/Effect/filewriter/settingsdialog.cpp4
-rw-r--r--src/plugins/Effect/filewriter/settingsdialog.ui73
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/>