From 21f5c9e43a890e1eb8a42306b445fd30d036fa7f Mon Sep 17 00:00:00 2001 From: Robin Davies Date: Fri, 11 Oct 2024 10:29:43 -0400 Subject: [PATCH] v1.3.56 - Midi bindings crash --- CMakeLists.txt | 4 ++-- README.md | 4 ++-- docs/Installing.md | 6 +++--- docs/ReleaseNotes.md | 3 ++- docs/download.md | 4 ++-- docs/index.md | 4 ++-- src/MidiBinding.hpp | 14 ++++++++++++++ src/Pedalboard.cpp | 4 ++++ src/PiPedalModel.cpp | 2 +- 9 files changed, 32 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d6f9bb..94de23a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,10 @@ cmake_minimum_required(VERSION 3.16.0) project(pipedal - VERSION 1.3.55 + VERSION 1.3.56 DESCRIPTION "PiPedal Guitar Effect Pedal For Raspberry Pi" HOMEPAGE_URL "https://rerdavies.github.io/pipedal" ) -set (DISPLAY_VERSION "PiPedal v1.3.55-Release") +set (DISPLAY_VERSION "PiPedal v1.3.56-Release") set (PACKAGE_ARCHITECTURE "arm64") set (CMAKE_INSTALL_PREFIX "/usr/") diff --git a/README.md b/README.md index 7375c72..125dc9d 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,13 @@ -Download: v1.3.55 +Download: v1.3.56 Website: [https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal). Documentation: [https://rerdavies.github.io/pipedal/Documentation.html](https://rerdavies.github.io/pipedal/Documentation.html).   -#### NEW version 1.3.55 Release, providing [snapshots](https://rerdavies.github.io/pipedal/Snaphots.html), and a new Performance View. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details. +#### NEW version 1.3.56 Release, providing [snapshots](https://rerdavies.github.io/pipedal/Snaphots.html), and a new Performance View. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.   diff --git a/docs/Installing.md b/docs/Installing.md index f875466..8d88236 100644 --- a/docs/Installing.md +++ b/docs/Installing.md @@ -13,17 +13,17 @@ page_icon: img/Install4.jpg Download the most recent Debian (.deb) package for your platform: -- [Raspberry Pi OS bookworm (64-bit) v1.3.55](https://github.com/rerdavies/pipedal/releases/download/) +- [Raspberry Pi OS bookworm (64-bit) v1.3.56](https://github.com/rerdavies/pipedal/releases/download/) - [Ubuntu/Raspberry Pi OS bullseyeye (64-bit) v1.2.31](https://github.com/rerdavies/pipedal/releases/download/v1.1.31/pipedal_1.1.31_arm64.deb) -Version 1.3.55 has not yet been tested on Ubuntu or Raspberry Pi OS bullseye. On these platforms, we recommend that you use version 1.1.31. +Version 1.3.56 has not yet been tested on Ubuntu or Raspberry Pi OS bullseye. On these platforms, we recommend that you use version 1.1.31. Install the package by running ``` sudo apt update cd ~/Downloads - sudo apt-get install pipedal_1.3.55_arm64.deb + sudo apt-get install pipedal_1.3.56_arm64.deb ``` Adjust accordingly if you have downloaded v1.1.31. diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index df6523f..9b2329f 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,10 +1,11 @@ # Release Notes -## PiPedal 1.3.55 Release +## PiPedal 1.3.56 Release More snapshot problems. Bug fixes: +- MIDI bindings cause crash. - Crashes related to snapshots and split controls. - Loading/reloading/error screens go on top of Snapshot dialogs. diff --git a/docs/download.md b/docs/download.md index e8782e7..91efbd1 100644 --- a/docs/download.md +++ b/docs/download.md @@ -4,7 +4,7 @@ Download the most recent Debian (.deb) package for your platform: -- Raspberry Pi OS Bookworm (64-bit) v1.3.55 +- Raspberry Pi OS Bookworm (64-bit) v1.3.56 Install the package by running @@ -12,7 +12,7 @@ Install the package by running ``` sudo apt update cd ~/Downloads - sudo apt-get install ./pipedal_1.3.55_arm64.deb + sudo apt-get install ./pipedal_1.3.56_arm64.deb ``` Follow the instructions in [_Configuring PiPedal After Installation_](https://rerdavies.github.io/pipedal/Configuring.html) to complete the installation. diff --git a/docs/index.md b/docs/index.md index 6d15d6a..e849e82 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,7 +1,7 @@ -v1.3.55 +v1.3.56   @@ -9,7 +9,7 @@ To download PiPedal, click [here](download.md). To view PiPedal documentation, click [here](Documentation.md). -#### NEW version 1.3.55 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details. +#### NEW version 1.3.56 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.   diff --git a/src/MidiBinding.hpp b/src/MidiBinding.hpp index 55f38f3..6aa0256 100644 --- a/src/MidiBinding.hpp +++ b/src/MidiBinding.hpp @@ -73,6 +73,20 @@ public: result.symbol_ = symbol; return result; } + bool operator==(const MidiBinding&other) const + { + return this->symbol_ == other.symbol_ + && this->channel_ == other.channel_ + && this->bindingType_ == other.bindingType_ + && this->note_ == other.note_ + && this->control_ == other.control_ + && this->minValue_ == other.minValue_ + && this->maxValue_ == other.maxValue_ + && this->rotaryScale_ == other.rotaryScale_ + && this->linearControlType_ == other.linearControlType_ + && this->switchControlType_ == other.switchControlType_; + + } GETTER_SETTER(channel); GETTER_SETTER_REF(symbol); GETTER_SETTER(bindingType); diff --git a/src/Pedalboard.cpp b/src/Pedalboard.cpp index 77a334a..89a16ba 100644 --- a/src/Pedalboard.cpp +++ b/src/Pedalboard.cpp @@ -327,6 +327,10 @@ bool PedalboardItem::IsStructurallyIdentical(const PedalboardItem&other) const { return false; } + if (this->midiBindings() != other.midiBindings()) + { + return false; + } if (this->isSplit()) // so is the other by virtue of idential uris. { // provisionally, it seems ok to change the split type. diff --git a/src/PiPedalModel.cpp b/src/PiPedalModel.cpp index 8860bfe..65d0adb 100644 --- a/src/PiPedalModel.cpp +++ b/src/PiPedalModel.cpp @@ -1485,7 +1485,7 @@ void PiPedalModel::OnNotifyMidiValueChanged(int64_t instanceId, int portIndex, f std::vector t{subscribers.begin(), subscribers.end()}; for (auto &subscriber : t) { - t[i]->OnMidiValueChanged(instanceId, symbol, value); + subscriber->OnMidiValueChanged(instanceId, symbol, value); } this->SetPresetChanged(-1, true);