1 /*************************************************************************** 2 ** ** 3 ** Polyphone, a soundfont editor ** 4 ** Copyright (C) 2013-2020 Davy Triponney ** 5 ** ** 6 ** This program is free software: you can redistribute it and/or modify ** 7 ** it under the terms of the GNU General Public License as published by ** 8 ** the Free Software Foundation, either version 3 of the License, or ** 9 ** (at your option) any later version. ** 10 ** ** 11 ** This program is distributed in the hope that it will be useful, ** 12 ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** 13 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** 14 ** GNU General Public License for more details. ** 15 ** ** 16 ** You should have received a copy of the GNU General Public License ** 17 ** along with this program. If not, see http://www.gnu.org/licenses/. ** 18 ** ** 19 **************************************************************************** 20 ** Author: Davy Triponney ** 21 ** Website/Contact: https://www.polyphone-soundfonts.com ** 22 ** Date: 01.01.2013 ** 23 ***************************************************************************/ 24 25 #ifndef TOOLSAMPLEEXPORT_H 26 #define TOOLSAMPLEEXPORT_H 27 28 #include "abstracttooliterating.h" 29 #include <QObject> 30 #include <QMutex> 31 32 class ToolSampleExport: public AbstractToolIterating 33 { 34 Q_OBJECT 35 36 public: 37 ToolSampleExport() : AbstractToolIterating(elementSmpl) 38 { 39 _openWaitDialogJustInProcess = true; 40 } 41 42 /// Icon, label and category displayed to the user to describe the tool 43 QString getIconName() const override 44 { 45 return ":/tool/file-audio.svg"; 46 } 47 48 QString getCategory() const override 49 { 50 return tr("Files"); 51 } 52 53 /// Internal identifier 54 QString getIdentifier() const override 55 { 56 return "smpl:wavExport"; 57 } 58 59 /// Method executed before the iterating process 60 void beforeProcess(IdList ids) override; 61 62 /// Process an element 63 void process(SoundfontManager * sm, EltID id, AbstractToolParameters * parameters) override; 64 65 protected: 66 QString getLabelInternal() const override 67 { 68 return tr("Wav export"); 69 } 70 71 private: 72 QString getFilePath(SoundfontManager *sm, EltID id1, EltID id2, bool isStereo); 73 74 QMutex _mutex; 75 IdList _exportedSamples; 76 QString _dirPath; 77 }; 78 79 #endif // TOOLSAMPLEEXPORT_H 80