From 03d8f277d0c67e6b0859997771ecc060f8e62f6c Mon Sep 17 00:00:00 2001 From: Steve Russell Date: Thu, 21 Nov 2024 09:23:41 +0000 Subject: [PATCH] WTXXX: Allow loading AIFF wavetables. --- src/Wavetable.hpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Wavetable.hpp b/src/Wavetable.hpp index 982f737..4c09aa4 100644 --- a/src/Wavetable.hpp +++ b/src/Wavetable.hpp @@ -5,7 +5,8 @@ #include -static const char WAVETABLE_FILTERS[] = "WAV (.wav):wav,WAV;Raw:f32,i8,i16,i24,i32,*"; +static const char WAVETABLE_LOAD_FILTERS[] = "WAV:wav,WAV,aif,AIF,aiff,AIFF,f32,s8,i8,s16,i16,s24,i24,s32,i32"; +static const char WAVETABLE_SAVE_FILTERS[] = "WAV:wav,WAV"; static std::string wavetableDir; @@ -222,18 +223,21 @@ struct Wavetable { samples.resize(len); dsp::convert((const dsp::Int24*) data.data(), samples.data(), len); } - else if (ext == ".s32" || ext == ".i32" || true) { + else if (ext == ".s32" || ext == ".i32") { size_t len = data.size() / sizeof(int32_t); samples.resize(len); dsp::convert((const int32_t*) data.data(), samples.data(), len); } + else { + return; + } } interpolate(); } void loadDialog() { - osdialog_filters* filters = osdialog_filters_parse(WAVETABLE_FILTERS); + osdialog_filters* filters = osdialog_filters_parse(WAVETABLE_LOAD_FILTERS); DEFER({osdialog_filters_free(filters);}); char* pathC = osdialog_file(OSDIALOG_OPEN, wavetableDir.empty() ? NULL : wavetableDir.c_str(), NULL, filters); @@ -273,7 +277,7 @@ struct Wavetable { } void saveDialog() const { - osdialog_filters* filters = osdialog_filters_parse(WAVETABLE_FILTERS); + osdialog_filters* filters = osdialog_filters_parse(WAVETABLE_SAVE_FILTERS); DEFER({osdialog_filters_free(filters);}); char* pathC = osdialog_file(OSDIALOG_SAVE, wavetableDir.empty() ? NULL : wavetableDir.c_str(), filename.c_str(), filters);