From 485b6bb4250674e08e3234fd2a149cff824d74b3 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Thu, 7 Mar 2019 11:29:42 -0500 Subject: [PATCH] Use type aliases FileExtension, FileExtensions... ... for wxString and wxArrayStringEx, holding file extensions (without dot); to be replaced later with different types (not yet using std::vector, becase of some uses of wxArrayString::Index with two arguments) And simplify some constructions of arrays --- include/audacity/ImporterInterface.h | 2 +- include/audacity/ModuleInterface.h | 2 +- include/audacity/Types.h | 6 ++++++ src/BatchCommands.cpp | 3 ++- src/BatchCommands.h | 3 ++- src/FileFormats.cpp | 4 ++-- src/FileFormats.h | 3 ++- src/PluginManager.cpp | 9 +++++---- src/PluginManager.h | 6 +++--- src/commands/LoadCommands.h | 2 +- src/effects/LoadEffects.h | 2 +- src/effects/VST/VSTEffect.cpp | 6 ++---- src/effects/VST/VSTEffect.h | 2 +- src/effects/audiounits/AudioUnitEffect.cpp | 6 ++---- src/effects/audiounits/AudioUnitEffect.h | 2 +- src/effects/ladspa/LadspaEffect.cpp | 14 ++++++-------- src/effects/ladspa/LadspaEffect.h | 2 +- src/effects/lv2/LoadLV2.h | 3 ++- src/effects/nyquist/LoadNyquist.cpp | 6 ++---- src/effects/nyquist/LoadNyquist.h | 2 +- src/effects/vamp/LoadVamp.h | 2 +- src/export/Export.cpp | 18 +++++++++--------- src/export/Export.h | 8 ++++---- src/export/ExportPCM.cpp | 4 ++-- src/import/Import.h | 8 +++++--- src/import/ImportFFmpeg.cpp | 10 ++++------ src/import/ImportFLAC.cpp | 7 +++---- src/import/ImportGStreamer.cpp | 10 +++++----- src/import/ImportLOF.cpp | 5 ++--- src/import/ImportMP3.cpp | 7 +++---- src/import/ImportOGG.cpp | 7 +++---- src/import/ImportPCM.cpp | 3 +-- src/import/ImportPlugin.h | 18 ++++++++++-------- src/import/ImportQT.cpp | 9 ++++----- 34 files changed, 100 insertions(+), 101 deletions(-) diff --git a/include/audacity/ImporterInterface.h b/include/audacity/ImporterInterface.h index 2f0db0b4b..252a35eb3 100644 --- a/include/audacity/ImporterInterface.h +++ b/include/audacity/ImporterInterface.h @@ -72,7 +72,7 @@ public: // Get a list of extensions this plugin expects to be able to // import. If a filename matches any of these extensions, // this importer will get first dibs on importing it. - virtual wxArrayString GetSupportedExtensions() = 0; + virtual FileExtensions GetSupportedExtensions() = 0; virtual bool SupportsExtension(const wxString & extension) = 0; // Create the client that will be used to import a file. diff --git a/include/audacity/ModuleInterface.h b/include/audacity/ModuleInterface.h index 7ae481494..67d389ca1 100644 --- a/include/audacity/ModuleInterface.h +++ b/include/audacity/ModuleInterface.h @@ -84,7 +84,7 @@ public: // This function returns nonempty only when that is the case, and lists // the possible extensions of such files (an empty string in a nonempty // array means any file is a candidate). - virtual wxArrayString GetFileExtensions() = 0; + virtual FileExtensions GetFileExtensions() = 0; // Returns empty, or else, where to copy a plug-in file or bundle. // Drag-and-drop is supported only if GetFileExtensions() returns nonempty and diff --git a/include/audacity/Types.h b/include/audacity/Types.h index 779f71e87..6802036c3 100644 --- a/include/audacity/Types.h +++ b/include/audacity/Types.h @@ -67,6 +67,12 @@ using PluginPaths = std::vector< PluginPath >; using RegistryPath = wxString; using RegistryPaths = std::vector< RegistryPath >; +class wxArrayStringEx; + +// File extensions, not including any leading dot +using FileExtension = wxString; +using FileExtensions = wxArrayStringEx; + // ---------------------------------------------------------------------------- // A native 64-bit integer...used when referring to any number of samples // ---------------------------------------------------------------------------- diff --git a/src/BatchCommands.cpp b/src/BatchCommands.cpp index 58a090d2c..fe97aa8ea 100644 --- a/src/BatchCommands.cpp +++ b/src/BatchCommands.cpp @@ -504,7 +504,8 @@ bool MacroCommands::IsMono() return ( tracks->Any() - &Track::IsLeader ).empty(); } -wxString MacroCommands::BuildCleanFileName(const wxString &fileName, const wxString &extension) +wxString MacroCommands::BuildCleanFileName(const wxString &fileName, + const FileExtension &extension) { const wxFileName newFileName{ fileName }; wxString justName = newFileName.GetName(); diff --git a/src/BatchCommands.h b/src/BatchCommands.h index 6b98eaf0e..4e32f2a7f 100644 --- a/src/BatchCommands.h +++ b/src/BatchCommands.h @@ -74,7 +74,8 @@ class MacroCommands final { void AbortBatch(); // Utility functions for the special commands. - static wxString BuildCleanFileName(const wxString &fileName, const wxString &extension); + static wxString BuildCleanFileName(const wxString &fileName, + const FileExtension &extension); bool WriteMp3File( const wxString & Name, int bitrate ); double GetEndTime(); static bool IsMono(); diff --git a/src/FileFormats.cpp b/src/FileFormats.cpp index c27bb14e7..cdf725347 100644 --- a/src/FileFormats.cpp +++ b/src/FileFormats.cpp @@ -204,9 +204,9 @@ bool sf_subtype_is_integer(unsigned int format) subtype == SF_FORMAT_PCM_32); } -wxArrayString sf_get_all_extensions() +FileExtensions sf_get_all_extensions() { - wxArrayStringEx exts; + FileExtensions exts; SF_FORMAT_INFO format_info; int count, k; diff --git a/src/FileFormats.h b/src/FileFormats.h index f02fee46f..212701cba 100644 --- a/src/FileFormats.h +++ b/src/FileFormats.h @@ -16,6 +16,7 @@ #include #include "Audacity.h" +#include "audacity/Types.h" #include "sndfile.h" @@ -97,7 +98,7 @@ SF_FORMAT_INFO *sf_simple_format(int i); bool sf_subtype_more_than_16_bits(unsigned int format); bool sf_subtype_is_integer(unsigned int format); -wxArrayString sf_get_all_extensions(); +extern FileExtensions sf_get_all_extensions(); wxString sf_normalize_name(const char *name); diff --git a/src/PluginManager.cpp b/src/PluginManager.cpp index f9628b5d2..64174ac6e 100644 --- a/src/PluginManager.cpp +++ b/src/PluginManager.cpp @@ -1320,14 +1320,15 @@ void PluginDescriptor::SetImporterFilterDescription(const wxString & filterDesc) mImporterFilterDesc = filterDesc; } -const wxArrayString & PluginDescriptor::GetImporterExtensions() const +const FileExtensions & PluginDescriptor::GetImporterExtensions() + const { return mImporterExtensions; } -void PluginDescriptor::SetImporterExtensions(const wxArrayString & extensions) +void PluginDescriptor::SetImporterExtensions( FileExtensions extensions ) { - mImporterExtensions = extensions; + mImporterExtensions = std::move( extensions ); } /////////////////////////////////////////////////////////////////////////////// @@ -2199,7 +2200,7 @@ void PluginManager::LoadGroup(wxFileConfig *pRegistry, PluginType type) { continue; } - wxArrayString extensions; + FileExtensions extensions; wxStringTokenizer tkr(strVal, wxT(":")); while (tkr.HasMoreTokens()) { diff --git a/src/PluginManager.h b/src/PluginManager.h index decad8564..c2a6c19aa 100644 --- a/src/PluginManager.h +++ b/src/PluginManager.h @@ -112,11 +112,11 @@ public: const wxString & GetImporterIdentifier() const; const wxString & GetImporterFilterDescription() const; - const wxArrayString & GetImporterExtensions() const; + const FileExtensions & GetImporterExtensions() const; void SetImporterIdentifier(const wxString & identifier); void SetImporterFilterDescription(const wxString & filterDesc); - void SetImporterExtensions(const wxArrayString & extensions); + void SetImporterExtensions(FileExtensions extensions); private: @@ -154,7 +154,7 @@ private: wxString mImporterIdentifier; wxString mImporterFilterDesc; - wxArrayString mImporterExtensions; + FileExtensions mImporterExtensions; }; /////////////////////////////////////////////////////////////////////////////// diff --git a/src/commands/LoadCommands.h b/src/commands/LoadCommands.h index 8d10f9032..b82108eda 100644 --- a/src/commands/LoadCommands.h +++ b/src/commands/LoadCommands.h @@ -41,7 +41,7 @@ public: bool Initialize() override; void Terminate() override; - wxArrayString GetFileExtensions() override { return {}; } + FileExtensions GetFileExtensions() override { return {}; } wxString InstallPath() override { return {}; } bool AutoRegisterPlugins(PluginManagerInterface & pm) override; diff --git a/src/effects/LoadEffects.h b/src/effects/LoadEffects.h index 58cc18486..97533abba 100644 --- a/src/effects/LoadEffects.h +++ b/src/effects/LoadEffects.h @@ -40,7 +40,7 @@ public: bool Initialize() override; void Terminate() override; - wxArrayString GetFileExtensions() override { return {}; } + FileExtensions GetFileExtensions() override { return {}; } wxString InstallPath() override { return {}; } bool AutoRegisterPlugins(PluginManagerInterface & pm) override; diff --git a/src/effects/VST/VSTEffect.cpp b/src/effects/VST/VSTEffect.cpp index ea7c00622..2bc72bed9 100644 --- a/src/effects/VST/VSTEffect.cpp +++ b/src/effects/VST/VSTEffect.cpp @@ -363,11 +363,9 @@ void VSTEffectsModule::Terminate() return; } -wxArrayString VSTEffectsModule::GetFileExtensions() +FileExtensions VSTEffectsModule::GetFileExtensions() { - static const wxString ext[] = { _T("vst") }; - static const wxArrayString result{ sizeof(ext)/sizeof(*ext), ext }; - return result; + return {{ _T("vst") }}; } wxString VSTEffectsModule::InstallPath() diff --git a/src/effects/VST/VSTEffect.h b/src/effects/VST/VSTEffect.h index 9486aa513..71cbd5de8 100644 --- a/src/effects/VST/VSTEffect.h +++ b/src/effects/VST/VSTEffect.h @@ -403,7 +403,7 @@ public: bool Initialize() override; void Terminate() override; - wxArrayString GetFileExtensions() override; + FileExtensions GetFileExtensions() override; wxString InstallPath() override; bool AutoRegisterPlugins(PluginManagerInterface & pm) override; diff --git a/src/effects/audiounits/AudioUnitEffect.cpp b/src/effects/audiounits/AudioUnitEffect.cpp index 7ce1749d9..85e2cf451 100644 --- a/src/effects/audiounits/AudioUnitEffect.cpp +++ b/src/effects/audiounits/AudioUnitEffect.cpp @@ -137,11 +137,9 @@ wxString AudioUnitEffectsModule::GetDescription() // ModuleInterface implementation // ============================================================================ -wxArrayString AudioUnitEffectsModule::GetFileExtensions() +FileExtensions AudioUnitEffectsModule::GetFileExtensions() { - static const wxString ext[] = { _T("au") }; - static const wxArrayString result{ sizeof(ext)/sizeof(*ext), ext }; - return result; + return {{ _T("au") }}; } bool AudioUnitEffectsModule::Initialize() diff --git a/src/effects/audiounits/AudioUnitEffect.h b/src/effects/audiounits/AudioUnitEffect.h index 6d0623211..b7fe1fb06 100644 --- a/src/effects/audiounits/AudioUnitEffect.h +++ b/src/effects/audiounits/AudioUnitEffect.h @@ -242,7 +242,7 @@ public: bool Initialize() override; void Terminate() override; - wxArrayString GetFileExtensions() override; + FileExtensions GetFileExtensions() override; wxString InstallPath() override { return {}; } bool AutoRegisterPlugins(PluginManagerInterface & pm) override; diff --git a/src/effects/ladspa/LadspaEffect.cpp b/src/effects/ladspa/LadspaEffect.cpp index 76bedc475..4e1ee2685 100644 --- a/src/effects/ladspa/LadspaEffect.cpp +++ b/src/effects/ladspa/LadspaEffect.cpp @@ -156,28 +156,26 @@ void LadspaEffectsModule::Terminate() return; } -wxArrayString LadspaEffectsModule::GetFileExtensions() +FileExtensions LadspaEffectsModule::GetFileExtensions() { - static const wxString ext[] = { + return {{ #ifdef __WXMSW__ - { _T("dll") } + _T("dll") #else - { _T("so") } + _T("so") #ifdef __WXMAC__ // Is it correct that these are candidate plug-in files too for macOs? - , { _T("dylib") } + , _T("dylib") #endif #endif - }; - static const wxArrayString result{ sizeof(ext)/sizeof(*ext), ext }; - return result; + }}; } wxString LadspaEffectsModule::InstallPath() diff --git a/src/effects/ladspa/LadspaEffect.h b/src/effects/ladspa/LadspaEffect.h index c27f158af..875748857 100644 --- a/src/effects/ladspa/LadspaEffect.h +++ b/src/effects/ladspa/LadspaEffect.h @@ -222,7 +222,7 @@ public: bool Initialize() override; void Terminate() override; - wxArrayString GetFileExtensions() override; + FileExtensions GetFileExtensions() override; wxString InstallPath() override; bool AutoRegisterPlugins(PluginManagerInterface & pm) override; diff --git a/src/effects/lv2/LoadLV2.h b/src/effects/lv2/LoadLV2.h index 8ee246766..38948ad82 100644 --- a/src/effects/lv2/LoadLV2.h +++ b/src/effects/lv2/LoadLV2.h @@ -12,6 +12,7 @@ #ifndef LV2EFFECTSMODULE_H #define LV2EFFECTSMODULE_H +#include "../../MemoryX.h" #include #include @@ -87,7 +88,7 @@ public: bool Initialize() override; void Terminate() override; - wxArrayString GetFileExtensions() override { return {}; } + FileExtensions GetFileExtensions() override { return {}; } wxString InstallPath() override { return {}; } bool AutoRegisterPlugins(PluginManagerInterface & pm) override; diff --git a/src/effects/nyquist/LoadNyquist.cpp b/src/effects/nyquist/LoadNyquist.cpp index 604e87296..cd33212c7 100644 --- a/src/effects/nyquist/LoadNyquist.cpp +++ b/src/effects/nyquist/LoadNyquist.cpp @@ -155,11 +155,9 @@ void NyquistEffectsModule::Terminate() return; } -wxArrayString NyquistEffectsModule::GetFileExtensions() +FileExtensions NyquistEffectsModule::GetFileExtensions() { - static const wxString ext[] = { _T("ny") }; - static const wxArrayString result{ sizeof(ext)/sizeof(*ext), ext }; - return result; + return {{ _T("ny") }}; } wxString NyquistEffectsModule::InstallPath() diff --git a/src/effects/nyquist/LoadNyquist.h b/src/effects/nyquist/LoadNyquist.h index 479addf14..2e591e04e 100644 --- a/src/effects/nyquist/LoadNyquist.h +++ b/src/effects/nyquist/LoadNyquist.h @@ -37,7 +37,7 @@ public: bool Initialize() override; void Terminate() override; - wxArrayString GetFileExtensions() override; + FileExtensions GetFileExtensions() override; wxString InstallPath() override; bool AutoRegisterPlugins(PluginManagerInterface & pm) override; diff --git a/src/effects/vamp/LoadVamp.h b/src/effects/vamp/LoadVamp.h index 7322a7764..f045b76a2 100644 --- a/src/effects/vamp/LoadVamp.h +++ b/src/effects/vamp/LoadVamp.h @@ -41,7 +41,7 @@ public: bool Initialize() override; void Terminate() override; - wxArrayString GetFileExtensions() override { return {}; } + FileExtensions GetFileExtensions() override { return {}; } wxString InstallPath() override { return {}; } bool AutoRegisterPlugins(PluginManagerInterface & pm) override; diff --git a/src/export/Export.cpp b/src/export/Export.cpp index 56a64b297..ca5ab2e04 100644 --- a/src/export/Export.cpp +++ b/src/export/Export.cpp @@ -128,9 +128,9 @@ void ExportPlugin::AddExtension(const wxString &extension,int index) mFormatInfos[index].mExtensions.push_back(extension); } -void ExportPlugin::SetExtensions(const wxArrayString & extensions, int index) +void ExportPlugin::SetExtensions(FileExtensions extensions, int index) { - mFormatInfos[index].mExtensions = extensions; + mFormatInfos[index].mExtensions = std::move(extensions); } void ExportPlugin::SetMask(const wxString & mask, int index) @@ -158,12 +158,12 @@ wxString ExportPlugin::GetDescription(int index) return mFormatInfos[index].mDescription; } -wxString ExportPlugin::GetExtension(int index) +FileExtension ExportPlugin::GetExtension(int index) { return mFormatInfos[index].mExtensions[0]; } -wxArrayString ExportPlugin::GetExtensions(int index) +FileExtensions ExportPlugin::GetExtensions(int index) { return mFormatInfos[index].mExtensions; } @@ -177,8 +177,8 @@ wxString ExportPlugin::GetMask(int index) wxString mask = GetDescription(index) + wxT("|"); // Build the mask - // wxString ext = GetExtension(index); - auto exts = GetExtensions(index); + // const auto &ext = GetExtension(index); + const auto &exts = GetExtensions(index); for (size_t i = 0; i < exts.size(); i++) { mask += wxT("*.") + exts[i] + wxT(";"); } @@ -201,8 +201,8 @@ bool ExportPlugin::IsExtension(const wxString & ext, int index) bool isext = false; for (int i = index; i < GetFormatCount(); i = GetFormatCount()) { - wxString defext = GetExtension(i); - auto defexts = GetExtensions(i); + const auto &defext = GetExtension(i); + const auto &defexts = GetExtensions(i); int indofext = defexts.Index(ext, false); if (defext.empty() || (indofext != wxNOT_FOUND)) isext = true; @@ -616,7 +616,7 @@ bool Exporter::GetFilename() } } - wxString ext = mFilename.GetExt(); + const auto &ext = mFilename.GetExt(); defext = mPlugins[mFormat]->GetExtension(mSubFormat).Lower(); // diff --git a/src/export/Export.h b/src/export/Export.h index 2e6db2611..fd8288e4d 100644 --- a/src/export/Export.h +++ b/src/export/Export.h @@ -48,7 +48,7 @@ class AUDACITY_DLL_API FormatInfo wxString mFormat; wxString mDescription; // wxString mExtension; - wxArrayString mExtensions; + FileExtensions mExtensions; wxString mMask; unsigned mMaxChannels; bool mCanMetaData; @@ -68,7 +68,7 @@ public: void SetFormat(const wxString & format, int index); void SetDescription(const wxString & description, int index); void AddExtension(const wxString &extension,int index); - void SetExtensions(const wxArrayString & extensions, int index); + void SetExtensions(FileExtensions extensions, int index); void SetMask(const wxString & mask, int index); void SetMaxChannels(unsigned maxchannels, unsigned index); void SetCanMetaData(bool canmetadata, int index); @@ -78,10 +78,10 @@ public: virtual wxString GetDescription(int index); /** @brief Return the (first) file name extension for the sub-format. * @param index The sub-format for which the extension is wanted */ - virtual wxString GetExtension(int index = 0); + virtual FileExtension GetExtension(int index = 0); /** @brief Return all the file name extensions used for the sub-format. * @param index the sub-format for which the extension is required */ - virtual wxArrayString GetExtensions(int index = 0); + virtual FileExtensions GetExtensions(int index = 0); virtual wxString GetMask(int index); virtual unsigned GetMaxChannels(int index); virtual bool GetCanMetaData(int index); diff --git a/src/export/ExportPCM.cpp b/src/export/ExportPCM.cpp index 4418a8969..633dd1d9c 100644 --- a/src/export/ExportPCM.cpp +++ b/src/export/ExportPCM.cpp @@ -340,7 +340,7 @@ public: const Tags *metadata = NULL, int subformat = 0) override; // optional - wxString GetExtension(int index) override; + FileExtension GetExtension(int index) override; bool CheckFileName(wxFileName &filename, int format) override; private: @@ -890,7 +890,7 @@ wxWindow *ExportPCM::OptionsCreate(wxWindow *parent, int format) return ExportPlugin::OptionsCreate(parent, format); } -wxString ExportPCM::GetExtension(int index) +FileExtension ExportPCM::GetExtension(int index) { if (index == WXSIZEOF(kFormats)) { // get extension libsndfile thinks is correct for currently selected format diff --git a/src/import/Import.h b/src/import/Import.h index d380610de..16d02446c 100644 --- a/src/import/Import.h +++ b/src/import/Import.h @@ -13,6 +13,7 @@ #include "ImportRaw.h" // defines TrackHolders #include "ImportForwards.h" +#include "audacity/Types.h" #include #include #include @@ -32,11 +33,12 @@ typedef bool (*progress_callback_t)( void *userData, float percent ); class Format { public: wxString formatName; - wxArrayString formatExtensions; + FileExtensions formatExtensions; - Format(const wxString &_formatName, const wxArrayString &_formatExtensions): + Format(const wxString &_formatName, + FileExtensions _formatExtensions): formatName(_formatName), - formatExtensions(_formatExtensions) + formatExtensions( std::move( _formatExtensions ) ) { } }; diff --git a/src/import/ImportFFmpeg.cpp b/src/import/ImportFFmpeg.cpp index cde5cdd6f..fe977e6de 100644 --- a/src/import/ImportFFmpeg.cpp +++ b/src/import/ImportFFmpeg.cpp @@ -41,8 +41,7 @@ Licensed under the GNU General Public License v2 or later //TODO: remove non-audio extensions #if defined(USE_FFMPEG) -static const wxChar *exts[] = -{ +static const auto exts = { wxT("4xm"), wxT("MTV"), wxT("roq"), @@ -173,10 +172,9 @@ class FFmpegImportPlugin final : public ImportPlugin { public: FFmpegImportPlugin(): - ImportPlugin(wxArrayString(WXSIZEOF(exts),exts)) - { - - } + ImportPlugin( FileExtensions( exts.begin(), exts.end() ) ) + { + } ~FFmpegImportPlugin() { } diff --git a/src/import/ImportFLAC.cpp b/src/import/ImportFLAC.cpp index b50a08981..c2869d3a8 100644 --- a/src/import/ImportFLAC.cpp +++ b/src/import/ImportFLAC.cpp @@ -50,8 +50,7 @@ #define DESC _("FLAC files") -static const wxChar *exts[] = -{ +static const auto exts = { wxT("flac"), wxT("flc") }; @@ -63,7 +62,7 @@ void GetFLACImportPlugin(ImportPluginList &importPluginList, { unusableImportPluginList.push_back( std::make_unique - (DESC, wxArrayString(WXSIZEOF(exts), exts)) + (DESC, FileExtensions( exts.begin(), exts.end() ) ) ); } @@ -133,7 +132,7 @@ class FLACImportPlugin final : public ImportPlugin { public: FLACImportPlugin(): - ImportPlugin(wxArrayString(WXSIZEOF(exts), exts)) + ImportPlugin( FileExtensions( exts.begin(), exts.end() ) ) { } diff --git a/src/import/ImportGStreamer.cpp b/src/import/ImportGStreamer.cpp index 5334daa27..27e1af449 100644 --- a/src/import/ImportGStreamer.cpp +++ b/src/import/ImportGStreamer.cpp @@ -246,11 +246,11 @@ public: ///! Destructor virtual ~GStreamerImportPlugin(); - wxString GetPluginFormatDescription(); + wxString GetPluginFormatDescription() override; - wxString GetPluginStringID(); + wxString GetPluginStringID() override; - wxArrayString GetSupportedExtensions(); + FileExtensions GetSupportedExtensions() override; ///! Probes the file and opens it if appropriate std::unique_ptr Open(const wxString &Filename) override; @@ -316,7 +316,7 @@ GetGStreamerImportPlugin(ImportPluginList &importPluginList, // ---------------------------------------------------------------------------- // Constructor GStreamerImportPlugin::GStreamerImportPlugin() -: ImportPlugin(wxArrayString()) +: ImportPlugin( {} ) { } @@ -344,7 +344,7 @@ GStreamerImportPlugin::GetPluginStringID() // Obtains a list of supported extensions from typefind factories // TODO: improve the list. It is obviously incomplete. -wxArrayString +FileExtensions GStreamerImportPlugin::GetSupportedExtensions() { // We refresh the extensions each time this is called in case the diff --git a/src/import/ImportLOF.cpp b/src/import/ImportLOF.cpp index 35a896916..e17e619a8 100644 --- a/src/import/ImportLOF.cpp +++ b/src/import/ImportLOF.cpp @@ -96,8 +96,7 @@ #define DESC _("List of Files in basic text format") -static const wxChar *exts[] = -{ +static const auto exts = { wxT("lof") }; @@ -105,7 +104,7 @@ class LOFImportPlugin final : public ImportPlugin { public: LOFImportPlugin() - : ImportPlugin(wxArrayString(WXSIZEOF(exts), exts)) + : ImportPlugin( FileExtensions( exts.begin(), exts.end() ) ) { } diff --git a/src/import/ImportMP3.cpp b/src/import/ImportMP3.cpp index 60b245950..0a7a3c0a8 100644 --- a/src/import/ImportMP3.cpp +++ b/src/import/ImportMP3.cpp @@ -49,8 +49,7 @@ #define DESC _("MP3 files") -static const wxChar *exts[] = -{ +static const auto exts = { wxT("mp3"), wxT("mp2"), wxT("mpa") @@ -63,7 +62,7 @@ void GetMP3ImportPlugin(ImportPluginList &importPluginList, { unusableImportPluginList.push_back( std::make_unique - (DESC, wxArrayString(WXSIZEOF(exts), exts)) + (DESC, FileExtensions( exts.begin(), exts.end() ) ) ); } @@ -114,7 +113,7 @@ class MP3ImportPlugin final : public ImportPlugin { public: MP3ImportPlugin(): - ImportPlugin(wxArrayString(WXSIZEOF(exts), exts)) + ImportPlugin( FileExtensions( exts.begin(), exts.end() ) ) { } diff --git a/src/import/ImportOGG.cpp b/src/import/ImportOGG.cpp index 3d75bad99..07837e0f7 100644 --- a/src/import/ImportOGG.cpp +++ b/src/import/ImportOGG.cpp @@ -47,8 +47,7 @@ #define DESC _("Ogg Vorbis files") -static const wxChar *exts[] = -{ +static const auto exts = { wxT("ogg") }; @@ -61,7 +60,7 @@ void GetOGGImportPlugin(ImportPluginList &importPluginList, { unusableImportPluginList.push_back( std::make_unique - (DESC, wxArrayString(WXSIZEOF(exts), exts)) + (DESC, FileExtensions( exts.begin(), exts.end() ) ) ); } @@ -86,7 +85,7 @@ class OggImportPlugin final : public ImportPlugin { public: OggImportPlugin() - : ImportPlugin(wxArrayString(WXSIZEOF(exts), exts)) + : ImportPlugin( FileExtensions( exts.begin(), exts.end() ) ) { } diff --git a/src/import/ImportPCM.cpp b/src/import/ImportPCM.cpp index b62acd5f5..f94155a48 100644 --- a/src/import/ImportPCM.cpp +++ b/src/import/ImportPCM.cpp @@ -73,9 +73,8 @@ class PCMImportPlugin final : public ImportPlugin { public: PCMImportPlugin() - : ImportPlugin(wxArrayString()) + : ImportPlugin(sf_get_all_extensions()) { - mExtensions = sf_get_all_extensions(); } ~PCMImportPlugin() { } diff --git a/src/import/ImportPlugin.h b/src/import/ImportPlugin.h index b9141275b..41308673a 100644 --- a/src/import/ImportPlugin.h +++ b/src/import/ImportPlugin.h @@ -56,6 +56,7 @@ but little else. #define __AUDACITY_IMPORTER__ #include "../Audacity.h" +#include "audacity/Types.h" #include "../Internat.h" #include #include "../MemoryX.h" @@ -87,12 +88,12 @@ public: // Get a list of extensions this plugin expects to be able to // import. If a filename matches any of these extensions, // this importer will get first dibs on importing it. - virtual wxArrayString GetSupportedExtensions() + virtual FileExtensions GetSupportedExtensions() { return mExtensions; } - bool SupportsExtension(const wxString &extension) + bool SupportsExtension(const FileExtension &extension) { // Case-insensitive check if extension is supported return mExtensions.Index(extension, false) != wxNOT_FOUND; @@ -107,12 +108,12 @@ public: protected: - ImportPlugin(wxArrayString supportedExtensions): - mExtensions(supportedExtensions) + ImportPlugin(FileExtensions supportedExtensions): + mExtensions( std::move( supportedExtensions ) ) { } - wxArrayString mExtensions; + const FileExtensions mExtensions; }; @@ -181,9 +182,10 @@ protected: class UnusableImportPlugin { public: - UnusableImportPlugin(const wxString &formatName, wxArrayString extensions): + UnusableImportPlugin( + const wxString &formatName, FileExtensions extensions): mFormatName(formatName), - mExtensions(extensions) + mExtensions( std::move( extensions ) ) { } @@ -199,7 +201,7 @@ public: private: wxString mFormatName; - wxArrayString mExtensions; + const FileExtensions mExtensions; }; #endif diff --git a/src/import/ImportQT.cpp b/src/import/ImportQT.cpp index fa3c1fd21..4ac1fbed0 100644 --- a/src/import/ImportQT.cpp +++ b/src/import/ImportQT.cpp @@ -20,8 +20,7 @@ #define DESC _("QuickTime files") -static const wxChar *exts[] = -{ +static const auto exts = { wxT("aif"), wxT("aifc"), wxT("aiff"), @@ -41,8 +40,8 @@ void GetQTImportPlugin(ImportPluginList &importPluginList, UnusableImportPluginList &unusableImportPluginList) { unusableImportPluginList.push_back( - std::make_unique - (DESC, wxArrayString(WXSIZEOF(exts), exts)) + std::make_unique(DESC, + FileExtensions( exts.begin(), exts.end() ) ) ); } @@ -82,7 +81,7 @@ class QTImportPlugin final : public ImportPlugin { public: QTImportPlugin() - : ImportPlugin(wxArrayString(WXSIZEOF(exts), exts)), + : ImportPlugin( FileExtensions( exts.begin(), exts.end() ) ), mInitialized(false) { OSErr err = noErr;