diff --git a/2 b/2 deleted file mode 100644 index e69de29..0000000 diff --git a/CMakeLists.txt b/CMakeLists.txt index a279c18..dcc200f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,8 +67,8 @@ install ( ) install ( - DIRECTORY ${PROJECT_SOURCE_DIR}/default_presets - DESTINATION /etc/pipedal/config + DIRECTORY ${PROJECT_SOURCE_DIR}/default_presets/presets + DESTINATION /etc/pipedal/config/default_presets/presets ) message(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") diff --git a/default_presets/presets/Factory_Presets_Extra/media/CabIR/Factory IRs/README.md b/default_presets/Factory_Presets_Extra/media/CabIR/Factory IRs/README.md similarity index 100% rename from default_presets/presets/Factory_Presets_Extra/media/CabIR/Factory IRs/README.md rename to default_presets/Factory_Presets_Extra/media/CabIR/Factory IRs/README.md diff --git a/default_presets/presets/Factory_Presets_Extra/media/NeuralAmpModels/Factory Models/README.md b/default_presets/Factory_Presets_Extra/media/NeuralAmpModels/Factory Models/README.md similarity index 100% rename from default_presets/presets/Factory_Presets_Extra/media/NeuralAmpModels/Factory Models/README.md rename to default_presets/Factory_Presets_Extra/media/NeuralAmpModels/Factory Models/README.md diff --git a/default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/40737.jpeg b/default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/40737.jpeg similarity index 100% rename from default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/40737.jpeg rename to default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/40737.jpeg diff --git a/default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/54580.jpeg b/default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/54580.jpeg similarity index 100% rename from default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/54580.jpeg rename to default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/54580.jpeg diff --git a/default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/59301.jpeg b/default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/59301.jpeg similarity index 100% rename from default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/59301.jpeg rename to default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/59301.jpeg diff --git a/default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/60033.jpeg b/default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/60033.jpeg similarity index 100% rename from default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/60033.jpeg rename to default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/60033.jpeg diff --git a/default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/67526.jpeg b/default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/67526.jpeg similarity index 100% rename from default_presets/presets/Factory_Presets_Extra/media/tone3000_thumbnails/67526.jpeg rename to default_presets/Factory_Presets_Extra/media/tone3000_thumbnails/67526.jpeg diff --git a/default_presets/presets/V3 Factory Presets.piBank b/default_presets/V3 Factory Presets.piBank similarity index 99% rename from default_presets/presets/V3 Factory Presets.piBank rename to default_presets/V3 Factory Presets.piBank index eb8baad..b99f722 100644 Binary files a/default_presets/presets/V3 Factory Presets.piBank and b/default_presets/V3 Factory Presets.piBank differ diff --git a/default_presets/add_factory_extras.sh b/default_presets/build_factory_presets.sh similarity index 75% rename from default_presets/add_factory_extras.sh rename to default_presets/build_factory_presets.sh index 3170a0c..218a377 100755 --- a/default_presets/add_factory_extras.sh +++ b/default_presets/build_factory_presets.sh @@ -2,17 +2,13 @@ export SRC_ZIP="V3 Factory Presets.piBank" export DST_ZIP="Factory Presets.piBank" - rm "presets/$DST_ZIP" -cd presets rm -rf temp_folder echo Unpacking "$SRC_ZIP" unzip "$SRC_ZIP" -d ./temp_folder -cd temp_folder +cd temp_folder cp -r ../Factory_Presets_Extra/* ./ -echo Repacking "../$DST_ZIP" -zip -r9 "../$DST_ZIP" . +echo Repacking "../presets/$DST_ZIP" +zip -r9 "../presets/$DST_ZIP" . cd .. rm -rf temp_folder - -cd .. diff --git a/default_presets/presets/Factory Presets.piBank b/default_presets/presets/Factory Presets.piBank index e3b8931..34f07de 100644 Binary files a/default_presets/presets/Factory Presets.piBank and b/default_presets/presets/Factory Presets.piBank differ diff --git a/default_presets/presets/index.banks b/default_presets/presets/index.banks deleted file mode 100644 index 43e2843..0000000 --- a/default_presets/presets/index.banks +++ /dev/null @@ -1 +0,0 @@ -{"selectedBank": 1,"nextInstanceId": 1,"entries": [{"instanceId": 1,"name": "Default Bank"}]} \ No newline at end of file diff --git a/src/Banks.hpp b/src/Banks.hpp index 4522426..d67cf35 100644 --- a/src/Banks.hpp +++ b/src/Banks.hpp @@ -317,6 +317,12 @@ namespace pipedal bank.name(name); bank.instanceId(++nextInstanceId_); + if (afterId == -2) + { + entries_.insert(entries_.begin(), bank); + return bank.instanceId(); + + } for (size_t i = 0; i < this->entries_.size(); ++i) { if (entries_[i].instanceId() == afterId) diff --git a/src/WebServerConfig.cpp b/src/WebServerConfig.cpp index 73ae2ad..c326445 100644 --- a/src/WebServerConfig.cpp +++ b/src/WebServerConfig.cpp @@ -179,38 +179,44 @@ static fs::path GetTone3000ThumbnailFile(const fs::path& thumbnailDirectory, con return {}; } -int64_t ImportBankFile(PiPedalModel &model, const std::filesystem::path& filePath,uint64_t uploadAfter = -1) -{ - BankFile bankFile; +namespace pipedal::implementation { + + int64_t ImportBankFile(PiPedalModel &model, const std::filesystem::path& filePath,uint64_t uploadAfter = -1) + { + BankFile bankFile; - if (filePath.empty()) - { - throw std::runtime_error("Unexpected."); - } - if (IsZipFile(filePath)) - { - auto presetReader = PresetBundleReader::LoadPresetsFile(model, filePath); - presetReader->ExtractMediaFiles(); - - std::stringstream ss(presetReader->GetPresetJson()); - json_reader reader(ss); - reader.read(&bankFile); - } - else - { - std::ifstream f {filePath}; - if (!f.is_open()) { - throw std::runtime_error(SS("Unable to open file " << filePath)); + if (filePath.empty()) + { + throw std::runtime_error("Unexpected."); } - // legacy json format, no zip, no media files. - json_reader reader(f); - reader.read(&bankFile); - } - uint64_t instanceId = model.UploadBank(bankFile, uploadAfter); + if (IsZipFile(filePath)) + { + auto presetReader = PresetBundleReader::LoadPresetsFile(model, filePath); + presetReader->ExtractMediaFiles(); - return instanceId; + std::stringstream ss(presetReader->GetPresetJson()); + json_reader reader(ss); + reader.read(&bankFile); + } + else + { + std::ifstream f {filePath}; + if (!f.is_open()) { + throw std::runtime_error(SS("Unable to open file " << filePath)); + } + // legacy json format, no zip, no media files. + json_reader reader(f); + reader.read(&bankFile); + } + uint64_t instanceId = model.UploadBank(bankFile, uploadAfter); + + return instanceId; + } } + +using namespace pipedal::implementation; + class DownloadIntercept : public RequestHandler { PiPedalModel* model; diff --git a/vite/src/pipedal/PedalboardView.tsx b/vite/src/pipedal/PedalboardView.tsx index 82f14e3..dda8a51 100644 --- a/vite/src/pipedal/PedalboardView.tsx +++ b/vite/src/pipedal/PedalboardView.tsx @@ -161,8 +161,11 @@ const pedalboardStyles = (theme: Theme) => createStyles({ marginBottom: (CELL_HEIGHT - FRAME_SIZE) / 2, width: FRAME_SIZE, height: FRAME_SIZE, - border: isDarkMode() ? "1pt #555 solid" : "1pt #666 solid", - borderRadius: 6 + borderColor: "#777", + borderWidth: 2, + borderStyle: "solid", + padding: 1, + borderRadius: 8 }), selectedIconFrame: css({ @@ -178,8 +181,12 @@ const pedalboardStyles = (theme: Theme) => createStyles({ marginBottom: (CELL_HEIGHT - FRAME_SIZE) / 2, width: FRAME_SIZE, height: FRAME_SIZE, - border: isDarkMode() ? "1pt #FFF solid" : "1pt #333 solid", - borderRadius: 6 + borderColor: theme.palette.primary.main, + borderWidth: "2.0px", + borderStyle: "solid", + overflow: "hidden", + borderRadius: 8, + boxShadow: "0 0 6px 0px " + theme.palette.primary.main + "C0" }), borderlessIconFrame: css({ @@ -194,8 +201,9 @@ const pedalboardStyles = (theme: Theme) => createStyles({ marginBottom: (CELL_HEIGHT - FRAME_SIZE) / 2, width: FRAME_SIZE, height: FRAME_SIZE, - border: "0pt #666 solid", - borderRadius: 6 + border: "0px #666 solid", + borderRadius: 8, + overflow: "hidden", }), pedalIcon: css({ @@ -1042,7 +1050,7 @@ const PedalboardView = onDoubleClick={(e: SyntheticEvent) => { this.onItemDoubleClick(e, instanceId); }} onContextMenu={(e: SyntheticEvent) => { this.onItemLongClick(e, instanceId); }} > - this.getScrollContainer()} @@ -1050,7 +1058,7 @@ const PedalboardView = style={{ opacity: enabled ? 0.99 : 0.3 }} > -
+