Browse Source

Remember wavetable load/save dialog dir.

tags/v2.0.2
Andrew Belt 1 year ago
parent
commit
0b6b9124d0
1 changed files with 5 additions and 2 deletions
  1. +5
    -2
      src/Wavetable.hpp

+ 5
- 2
src/Wavetable.hpp View File

@@ -5,6 +5,7 @@


static const char WAVETABLE_FILTERS[] = "WAV (.wav):wav,WAV;Raw:f32,i8,i16,i24,i32,*";
static std::string wavetableDir;


/** Loads and stores wavetable samples and metadata */
@@ -218,13 +219,14 @@ struct Wavetable {
osdialog_filters* filters = osdialog_filters_parse(WAVETABLE_FILTERS);
DEFER({osdialog_filters_free(filters);});

char* pathC = osdialog_file(OSDIALOG_OPEN, NULL, NULL, filters);
char* pathC = osdialog_file(OSDIALOG_OPEN, wavetableDir.empty() ? NULL : wavetableDir.c_str(), NULL, filters);
if (!pathC) {
// Fail silently
return;
}
std::string path = pathC;
std::free(pathC);
wavetableDir = system::getDirectory(path);

load(path);
filename = system::getFilename(path);
@@ -255,7 +257,7 @@ struct Wavetable {
osdialog_filters* filters = osdialog_filters_parse(WAVETABLE_FILTERS);
DEFER({osdialog_filters_free(filters);});

char* pathC = osdialog_file(OSDIALOG_SAVE, NULL, filename.c_str(), filters);
char* pathC = osdialog_file(OSDIALOG_SAVE, wavetableDir.empty() ? NULL : wavetableDir.c_str(), filename.c_str(), filters);
if (!pathC) {
// Cancel silently
return;
@@ -267,6 +269,7 @@ struct Wavetable {
if (system::getExtension(path) != ".wav") {
path += ".wav";
}
wavetableDir = system::getDirectory(path);

save(path);
}


Loading…
Cancel
Save