+2
-2
@@ -1,10 +1,10 @@
|
|||||||
cmake_minimum_required(VERSION 3.16.0)
|
cmake_minimum_required(VERSION 3.16.0)
|
||||||
project(pipedal
|
project(pipedal
|
||||||
VERSION 1.2.44
|
VERSION 1.2.45
|
||||||
DESCRIPTION "PiPedal Guitar Effect Pedal For Raspberry Pi"
|
DESCRIPTION "PiPedal Guitar Effect Pedal For Raspberry Pi"
|
||||||
HOMEPAGE_URL "https://rerdavies.github.io/pipedal"
|
HOMEPAGE_URL "https://rerdavies.github.io/pipedal"
|
||||||
)
|
)
|
||||||
set (DISPLAY_VERSION "PiPedal v1.2.42-Experimental")
|
set (DISPLAY_VERSION "PiPedal v1.2.45-Release")
|
||||||
set (PACKAGE_ARCHITECTURE "arm64")
|
set (PACKAGE_ARCHITECTURE "arm64")
|
||||||
set (CMAKE_INSTALL_PREFIX "/usr/")
|
set (CMAKE_INSTALL_PREFIX "/usr/")
|
||||||
|
|
||||||
|
|||||||
@@ -6,13 +6,13 @@
|
|||||||
<a href="https://rerdavies.github.io/pipedal/LicensePiPedal.html"><img src="https://img.shields.io/badge/MIT-MIT?label=license&color=%23808080"/></a>
|
<a href="https://rerdavies.github.io/pipedal/LicensePiPedal.html"><img src="https://img.shields.io/badge/MIT-MIT?label=license&color=%23808080"/></a>
|
||||||
<a href="https://github.com/rerdavies/pipedal/actions"><img src="https://img.shields.io/github/actions/workflow/status/rerdavies/pipedal/cmake.yml?branch=main"/></a>
|
<a href="https://github.com/rerdavies/pipedal/actions"><img src="https://img.shields.io/github/actions/workflow/status/rerdavies/pipedal/cmake.yml?branch=main"/></a>
|
||||||
|
|
||||||
Download: <a href='https://rerdavies.github.io/pipedal/download.html'>v1.2.42</a>
|
Download: <a href='https://rerdavies.github.io/pipedal/download.html'>v1.2.45</a>
|
||||||
Website: [https://rerdavies.github.io/pipedal](https://rerdavies.github.io/pipedal).
|
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).
|
Documentation: [https://rerdavies.github.io/pipedal/Documentation.html](https://rerdavies.github.io/pipedal/Documentation.html).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### NEW version 1.2.44 Release, providing support for Raspberry Pi OS Bookworm. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
|
#### NEW version 1.2.45 Release, providing support for Raspberry Pi OS Bookworm. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -13,17 +13,17 @@ page_icon: img/Install4.jpg
|
|||||||
|
|
||||||
Download the most recent Debian (.deb) package for your platform:
|
Download the most recent Debian (.deb) package for your platform:
|
||||||
|
|
||||||
- [Raspberry Pi OS bookworm (64-bit) v1.2.42](https://github.com/rerdavies/pipedal/releases/download/)
|
- [Raspberry Pi OS bookworm (64-bit) v1.2.45](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)
|
- [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.2.44 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.2.45 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
|
Install the package by running
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt update
|
sudo apt update
|
||||||
cd ~/Downloads
|
cd ~/Downloads
|
||||||
sudo apt-get install pipedal_1.2.42_arm64.deb
|
sudo apt-get install pipedal_1.2.45_arm64.deb
|
||||||
```
|
```
|
||||||
Adjust accordingly if you have downloaded v1.1.31.
|
Adjust accordingly if you have downloaded v1.1.31.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
# Release Notes
|
# Release Notes
|
||||||
|
|
||||||
|
## PiPedal 1.2.45 Release
|
||||||
|
|
||||||
|
This version focuses on fixes and improvements to TooB Neural Amp Modeler.
|
||||||
|
TooB NAM now uses about 20% less CPU, which can help enormously on Raspberry Pi 4.
|
||||||
|
|
||||||
|
You may need to change your audio buffers to prevent dropouts when using TooB Neural Amp Modeler. Setting your audio buffers to 32x4 seems to produce good results. You may also want experiment with 16x4 audio buffers. This seems to work, but it has had limited testing so far, so I can't say with any certainty whether it is stable for long-term use. 2-buffer audio settings should be avoided. As always, using your Pi for anything else at the same time you are using PiPedal will cause XRuns.
|
||||||
|
|
||||||
|
I would once again like to extend special thanks and acknowledgements to Steven Atkins for his outstanding work on the NeuralAmpModelerCore project on which TooB Neural Amp Modeler depends (as do almost all other Neural Amp Modeler plugins).
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
|
||||||
|
- The About page now displays the correct version.
|
||||||
|
- TooB NAM frequency response now displays correctly.
|
||||||
|
- TooB NAM no longer displays error messages when loading.
|
||||||
|
- Update Dialog has better layout on portrait phone displays.
|
||||||
|
- Prevent brief flashing of the Reload... button during the last phase of an update.
|
||||||
|
|
||||||
|
|
||||||
## PiPedal 1.2.44 Release
|
## PiPedal 1.2.44 Release
|
||||||
|
|
||||||
This version includes the following new features:
|
This version includes the following new features:
|
||||||
|
|||||||
+3
-3
@@ -4,17 +4,17 @@
|
|||||||
|
|
||||||
Download the most recent Debian (.deb) package for your platform:
|
Download the most recent Debian (.deb) package for your platform:
|
||||||
|
|
||||||
- <a href="https://github.com/rerdavies/pipedal/releases/download/v1.2.42/pipedal_1.2.42_arm64.deb">Raspberry Pi OS Bookworm (64-bit) v1.2.42</a>
|
- <a href="https://github.com/rerdavies/pipedal/releases/download/v1.2.45/pipedal_1.2.45_arm64.deb">Raspberry Pi OS Bookworm (64-bit) v1.2.45</a>
|
||||||
- <a href="https://github.com/rerdavies/pipedal/releases/download/v1.1.31/pipedal_1.1.31_arm64.deb">Ubuntu 21.04 or Raspberry Pi OS bullseyeyeye (64-bit) v1.1.31</a>
|
- <a href="https://github.com/rerdavies/pipedal/releases/download/v1.1.31/pipedal_1.1.31_arm64.deb">Ubuntu 21.04 or Raspberry Pi OS bullseyeyeye (64-bit) v1.1.31</a>
|
||||||
|
|
||||||
v1.2.42 is does not currently support Ubuntu 21.04, or older versions of Raspberry Pi OS.
|
v1.2.45 is does not currently support Ubuntu 21.04, or older versions of Raspberry Pi OS.
|
||||||
|
|
||||||
Install the package by running
|
Install the package by running
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt update
|
sudo apt update
|
||||||
cd ~/Downloads
|
cd ~/Downloads
|
||||||
sudo apt-get install ./pipedal_1.2.42_arm64.deb
|
sudo apt-get install ./pipedal_1.2.45_arm64.deb
|
||||||
```
|
```
|
||||||
|
|
||||||
Follow the instructions in [_Configuring PiPedal After Installation_](https://rerdavies.github.io/pipedal/Configuring.html) to complete the installation.
|
Follow the instructions in [_Configuring PiPedal After Installation_](https://rerdavies.github.io/pipedal/Configuring.html) to complete the installation.
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<img src="GithubBanner.png" width="100%"/>
|
<img src="GithubBanner.png" width="100%"/>
|
||||||
<a href="Installing.html"><i>v1.2.42</i></a>
|
<a href="Installing.html"><i>v1.2.45</i></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ To download PiPedal, click [here](download.md).
|
|||||||
To view PiPedal documentation, click [here](Documentation.md).
|
To view PiPedal documentation, click [here](Documentation.md).
|
||||||
|
|
||||||
|
|
||||||
#### NEW version 1.2.44 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
|
#### NEW version 1.2.45 Release. See the [release notes](https://rerdavies.github.io/pipedal/ReleaseNotes) for details.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ cabir:impulseFile3
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
|
|
||||||
TooB Cab IR is a convolution-based guitar cabinet impulse response simulator.
|
TooB Cab IR is a convolution-based guitar cabinet impulse response simulator.
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ toob:frequencyResponseVector
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
|
|
||||||
mod:brand "TooB";
|
mod:brand "TooB";
|
||||||
mod:label "TooB CabSim";
|
mod:label "TooB CabSim";
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ toobimpulse:impulseFile
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
|
|
||||||
Convolution reverb is a notoriously compute-intensive effect. If you are having performance issues, use the Max T control to constrain the length of the impulse file to
|
Convolution reverb is a notoriously compute-intensive effect. If you are having performance issues, use the Max T control to constrain the length of the impulse file to
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ toobimpulse:impulseFile
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ inputStage:filterGroup
|
|||||||
doap:license <https://two-play.com/TooB/licenses/isc> ;
|
doap:license <https://two-play.com/TooB/licenses/isc> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
|
|
||||||
mod:brand "TooB";
|
mod:brand "TooB";
|
||||||
mod:label "TooB Input";
|
mod:label "TooB Input";
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment "TooB spectrum analyzer" ;
|
rdfs:comment "TooB spectrum analyzer" ;
|
||||||
|
|
||||||
mod:brand "TooB";
|
mod:brand "TooB";
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ tonestack:eqGroup
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
|
|
||||||
uiext:ui <http://two-play.com/plugins/toob-tone-stack-ui>;
|
uiext:ui <http://two-play.com/plugins/toob-tone-stack-ui>;
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ToobAmp.so.1.1.43
|
ToobAmp.so.1.1.45
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -40,7 +40,7 @@
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
Emulation of a Boss CE-2 Chorus.
|
Emulation of a Boss CE-2 Chorus.
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
A straightforward no-frills digital delay.
|
A straightforward no-frills digital delay.
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
Emulation of a Boss BF-2 Flanger, based on circuit analysis and simulation of the original.
|
Emulation of a Boss BF-2 Flanger, based on circuit analysis and simulation of the original.
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
Digital emulation of a Boss BF-2 Flanger.
|
Digital emulation of a Boss BF-2 Flanger.
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
Toob Freeverb is an Lv2 implementation of the famous Freeverb reverb effect. FreeVerb delivers a well-balanced reverb with very little tonal coloration.
|
Toob Freeverb is an Lv2 implementation of the famous Freeverb reverb effect. FreeVerb delivers a well-balanced reverb with very little tonal coloration.
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ toobml:sagGroup
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
The TooB ML Amplifier plugin provides emulation of a variety of amplifiers and overdrive pedals that are implemented
|
The TooB ML Amplifier plugin provides emulation of a variety of amplifiers and overdrive pedals that are implemented
|
||||||
using neural-network-based machine learning models of real amplifiers.
|
using neural-network-based machine learning models of real amplifiers.
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ toobNam:eqGroup
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
A port of Steven Atkinson's Neural Amp Modeler to LV2.
|
A port of Steven Atkinson's Neural Amp Modeler to LV2.
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
|
||||||
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
doap:maintainer <http://two-play.com/rerdavies#me> ;
|
||||||
lv2:minorVersion 0 ;
|
lv2:minorVersion 0 ;
|
||||||
lv2:microVersion 43 ;
|
lv2:microVersion 45 ;
|
||||||
rdfs:comment """
|
rdfs:comment """
|
||||||
TooB Tuner is a chromatic guitar tuner.
|
TooB Tuner is a chromatic guitar tuner.
|
||||||
""" ;
|
""" ;
|
||||||
|
|||||||
@@ -218,7 +218,7 @@ const AboutDialog = withStyles(styles, { withTheme: true })(
|
|||||||
</span>
|
</span>
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography noWrap display="block" variant="body2" style={{ marginBottom: 12 }} >
|
<Typography noWrap display="block" variant="body2" style={{ marginBottom: 12 }} >
|
||||||
Copyright © 2022 Robin Davies.
|
Copyright © 2022-2024 Robin Davies.
|
||||||
</Typography>
|
</Typography>
|
||||||
{this.model.isAndroidHosted() && (
|
{this.model.isAndroidHosted() && (
|
||||||
<Typography noWrap display="block" variant="body2" style={{ marginBottom: 0 }} >
|
<Typography noWrap display="block" variant="body2" style={{ marginBottom: 0 }} >
|
||||||
|
|||||||
@@ -54,6 +54,8 @@ export enum State {
|
|||||||
InstallingUpdate,
|
InstallingUpdate,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class UpdatedError extends Error {
|
||||||
|
};
|
||||||
export function wantsLoadingScreen(state: State) {
|
export function wantsLoadingScreen(state: State) {
|
||||||
return state >= State.Reconnecting;
|
return state >= State.Reconnecting;
|
||||||
}
|
}
|
||||||
@@ -728,10 +730,7 @@ export class PiPedalModel //implements PiPedalModel
|
|||||||
if (current.currentVersion.length !== 0 && current.currentVersion !== updateStatus.currentVersion) {
|
if (current.currentVersion.length !== 0 && current.currentVersion !== updateStatus.currentVersion) {
|
||||||
// !! Server has been updated!!!
|
// !! Server has been updated!!!
|
||||||
this.reloadPage();
|
this.reloadPage();
|
||||||
throw new Error("Reloading...");
|
throw new UpdatedError("Server has been updated");
|
||||||
}
|
|
||||||
if (updateStatus.getActiveRelease().updateAvailable) {
|
|
||||||
this.promptForUpdate.set(true);
|
|
||||||
}
|
}
|
||||||
this.updatePromptForUpdate()
|
this.updatePromptForUpdate()
|
||||||
}
|
}
|
||||||
@@ -879,7 +878,12 @@ export class PiPedalModel //implements PiPedalModel
|
|||||||
this.setState(State.Ready);
|
this.setState(State.Ready);
|
||||||
})
|
})
|
||||||
.catch((what) => {
|
.catch((what) => {
|
||||||
|
if (what instanceof UpdatedError)
|
||||||
|
{
|
||||||
|
// do nothing. a page reload is imminent and unavoidable as soon as we return to the dispatcher.
|
||||||
|
} else {
|
||||||
this.onError(what.toString());
|
this.onError(what.toString());
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
makeSocketServerUrl(hostName: string, port: number): string {
|
makeSocketServerUrl(hostName: string, port: number): string {
|
||||||
@@ -1070,8 +1074,20 @@ export class PiPedalModel //implements PiPedalModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
onError(msg: string): void {
|
onError(message: string| Error): void {
|
||||||
this.errorMessage.set(msg);
|
let m = message;
|
||||||
|
if (message instanceof Error)
|
||||||
|
{
|
||||||
|
let e = message as Error;
|
||||||
|
if (e.message) {
|
||||||
|
m = e.message as string;
|
||||||
|
} else {
|
||||||
|
m = e.toString();
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
m = message.toString();
|
||||||
|
}
|
||||||
|
this.errorMessage.set(m);
|
||||||
this.state.set(State.Error);
|
this.state.set(State.Error);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1382,10 +1398,10 @@ export class PiPedalModel //implements PiPedalModel
|
|||||||
let changed = item.setControlValue(key, value);
|
let changed = item.setControlValue(key, value);
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
this.pedalboard.set(newPedalboard);
|
|
||||||
if (notifyServer) {
|
if (notifyServer) {
|
||||||
this._setServerControl("setControl", instanceId, key, value);
|
this._setServerControl("setControl", instanceId, key, value);
|
||||||
}
|
}
|
||||||
|
this.pedalboard.set(newPedalboard);
|
||||||
for (let i = 0; i < this._controlValueChangeItems.length; ++i) {
|
for (let i = 0; i < this._controlValueChangeItems.length; ++i) {
|
||||||
let item = this._controlValueChangeItems[i];
|
let item = this._controlValueChangeItems[i];
|
||||||
if (instanceId === item.instanceId) {
|
if (instanceId === item.instanceId) {
|
||||||
@@ -1895,7 +1911,18 @@ export class PiPedalModel //implements PiPedalModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
showAlert(message: string| Error): void {
|
showAlert(message: string| Error): void {
|
||||||
let m = message.toString();
|
let m = message;
|
||||||
|
if (message instanceof Error)
|
||||||
|
{
|
||||||
|
let e = message as Error;
|
||||||
|
if (e.message) {
|
||||||
|
m = e.message as string;
|
||||||
|
} else {
|
||||||
|
m = e.toString();
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
m = message.toString();
|
||||||
|
}
|
||||||
this.alertMessage.set(m);
|
this.alertMessage.set(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+41
-17
@@ -34,6 +34,7 @@ import { UpdateStatus, UpdateRelease, UpdatePolicyT, intToUpdatePolicyT } from '
|
|||||||
import { PiPedalModelFactory, PiPedalModel } from './PiPedalModel';
|
import { PiPedalModelFactory, PiPedalModel } from './PiPedalModel';
|
||||||
import Select from '@mui/material/Select';
|
import Select from '@mui/material/Select';
|
||||||
import MenuItem from '@mui/material/MenuItem';
|
import MenuItem from '@mui/material/MenuItem';
|
||||||
|
import ResizeResponsiveComponent from './ResizeResponsiveComponent';
|
||||||
|
|
||||||
|
|
||||||
const UPDATE_CHECK_DELAY = 86400000; // one day in ms.
|
const UPDATE_CHECK_DELAY = 86400000; // one day in ms.
|
||||||
@@ -47,12 +48,12 @@ export interface UpdateDialogProps {
|
|||||||
|
|
||||||
export interface UpdateDialogState {
|
export interface UpdateDialogState {
|
||||||
updateStatus: UpdateStatus;
|
updateStatus: UpdateStatus;
|
||||||
compactLandscape: boolean;
|
compactWidth: boolean;
|
||||||
alertDialogOpen: boolean;
|
alertDialogOpen: boolean;
|
||||||
alertDialogMessage: string;
|
alertDialogMessage: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default class UpdateDialog extends React.Component<UpdateDialogProps, UpdateDialogState> {
|
export default class UpdateDialog extends ResizeResponsiveComponent<UpdateDialogProps, UpdateDialogState> {
|
||||||
private model: PiPedalModel;
|
private model: PiPedalModel;
|
||||||
|
|
||||||
constructor(props: UpdateDialogProps) {
|
constructor(props: UpdateDialogProps) {
|
||||||
@@ -61,12 +62,13 @@ export default class UpdateDialog extends React.Component<UpdateDialogProps, Upd
|
|||||||
let updateStatus = this.model.updateStatus.get();
|
let updateStatus = this.model.updateStatus.get();
|
||||||
this.state = {
|
this.state = {
|
||||||
updateStatus: updateStatus,
|
updateStatus: updateStatus,
|
||||||
compactLandscape: false,
|
compactWidth: this.isCompactWidth(),
|
||||||
alertDialogOpen: false,
|
alertDialogOpen: false,
|
||||||
alertDialogMessage: ""
|
alertDialogMessage: ""
|
||||||
};
|
};
|
||||||
this.onUpdateStatusChanged = this.onUpdateStatusChanged.bind(this);
|
this.onUpdateStatusChanged = this.onUpdateStatusChanged.bind(this);
|
||||||
}
|
}
|
||||||
|
isCompactWidth() { return this.windowSize.width < 420; }
|
||||||
|
|
||||||
onUpdateStatusChanged(newValue: UpdateStatus) {
|
onUpdateStatusChanged(newValue: UpdateStatus) {
|
||||||
if (!newValue.equals(this.state.updateStatus)) {
|
if (!newValue.equals(this.state.updateStatus)) {
|
||||||
@@ -77,15 +79,22 @@ export default class UpdateDialog extends React.Component<UpdateDialogProps, Upd
|
|||||||
private mounted: boolean = false;
|
private mounted: boolean = false;
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
|
super.componentDidMount();
|
||||||
this.mounted = true;
|
this.mounted = true;
|
||||||
this.model.updateStatus.addOnChangedHandler(this.onUpdateStatusChanged);
|
this.model.updateStatus.addOnChangedHandler(this.onUpdateStatusChanged);
|
||||||
}
|
}
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
|
super.componentWillUnmount();
|
||||||
this.model.updateStatus.removeOnChangedHandler(this.onUpdateStatusChanged);
|
this.model.updateStatus.removeOnChangedHandler(this.onUpdateStatusChanged);
|
||||||
this.mounted = false;
|
this.mounted = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
onWindowSizeChanged(width: number, height: number): void {
|
||||||
|
super.onWindowSizeChanged(width, height);
|
||||||
|
if (this.isCompactWidth() !== this.state.compactWidth) {
|
||||||
|
this.setState({ compactWidth: this.isCompactWidth() });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private handleOK() {
|
private handleOK() {
|
||||||
this.model.showUpdateDialog(false);
|
this.model.showUpdateDialog(false);
|
||||||
@@ -152,18 +161,15 @@ export default class UpdateDialog extends React.Component<UpdateDialogProps, Upd
|
|||||||
let updateRelease = updateStatus.getActiveRelease();
|
let updateRelease = updateStatus.getActiveRelease();
|
||||||
let upToDate = this.upToDate();
|
let upToDate = this.upToDate();
|
||||||
let canUpgrade = this.canUpgrade();
|
let canUpgrade = this.canUpgrade();
|
||||||
let compact = this.state.compactLandscape;
|
|
||||||
let showUpgradeVersion = !upToDate && updateStatus.isValid && updateRelease.upgradeVersionDisplayName !== "";
|
let showUpgradeVersion = !upToDate && updateStatus.isValid && updateRelease.upgradeVersionDisplayName !== "";
|
||||||
|
let compactWidth = this.state.compactWidth;
|
||||||
return (
|
return (
|
||||||
<DialogEx tag="update" open={this.props.open} onClose={() => { this.handleClose(); }}
|
<DialogEx tag="update" open={this.props.open} onClose={() => { this.handleClose(); }}
|
||||||
style={{ userSelect: "none" }}
|
style={{ userSelect: "none" }}
|
||||||
>
|
>
|
||||||
{
|
|
||||||
(!compact) &&
|
|
||||||
(
|
|
||||||
<DialogTitle>
|
<DialogTitle>
|
||||||
<div style={{ display: "flex", flexFlow: "row noWrap", alignItems: "center" }} >
|
<div style={{ display: "flex", flexFlow: "row noWrap", alignItems: "center" }} >
|
||||||
<Typography style={{ flexGrow: 1, flexShrink: 1, marginRight: 20 }} noWrap>PiPedal Updates</Typography>
|
<Typography style={{ flexGrow: 1, flexShrink: 1, marginRight: 20 }} noWrap>Updates</Typography>
|
||||||
<Select style={{ opacity: 0.6 }} variant="standard" value={updateStatus.updatePolicy} onChange={(ev) => { this.onPolicySelected(ev.target.value); }}>
|
<Select style={{ opacity: 0.6 }} variant="standard" value={updateStatus.updatePolicy} onChange={(ev) => { this.onPolicySelected(ev.target.value); }}>
|
||||||
<MenuItem value={UpdatePolicyT.ReleaseOnly}>Release only</MenuItem>
|
<MenuItem value={UpdatePolicyT.ReleaseOnly}>Release only</MenuItem>
|
||||||
<MenuItem value={UpdatePolicyT.ReleaseOrBeta}>Release or Beta</MenuItem>
|
<MenuItem value={UpdatePolicyT.ReleaseOrBeta}>Release or Beta</MenuItem>
|
||||||
@@ -173,14 +179,7 @@ export default class UpdateDialog extends React.Component<UpdateDialogProps, Upd
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</DialogTitle>
|
</DialogTitle>
|
||||||
)
|
|
||||||
}
|
|
||||||
{
|
|
||||||
(!compact) &&
|
|
||||||
(
|
|
||||||
<Divider />
|
<Divider />
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
{(upToDate) && (
|
{(upToDate) && (
|
||||||
@@ -197,7 +196,28 @@ export default class UpdateDialog extends React.Component<UpdateDialogProps, Upd
|
|||||||
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
(compactWidth) ? (
|
||||||
|
<div>
|
||||||
|
<Typography noWrap variant="body2" color="textSecondary" >
|
||||||
|
Current version:
|
||||||
|
</Typography>
|
||||||
|
<Typography noWrap variant="body2" color="textSecondary" style={{ marginLeft: 16 }} >
|
||||||
|
{updateStatus.currentVersionDisplayName}
|
||||||
|
</Typography>
|
||||||
|
{(showUpgradeVersion) && (
|
||||||
|
<div style={{marginTop: 4}}>
|
||||||
|
<Typography noWrap variant="body2" color="textSecondary" >
|
||||||
|
Update version:
|
||||||
|
</Typography>
|
||||||
|
<Typography noWrap variant="body2" color="textSecondary" >
|
||||||
|
{updateRelease.upgradeVersionDisplayName}
|
||||||
|
</Typography>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
<div style={{ display: "flex", flexFlow: "row noWrap" }}>
|
<div style={{ display: "flex", flexFlow: "row noWrap" }}>
|
||||||
<div>
|
<div>
|
||||||
<Typography noWrap variant="body2" color="textSecondary" >
|
<Typography noWrap variant="body2" color="textSecondary" >
|
||||||
@@ -222,6 +242,10 @@ export default class UpdateDialog extends React.Component<UpdateDialogProps, Upd
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
(updateStatus.errorMessage.length !== 0) &&
|
(updateStatus.errorMessage.length !== 0) &&
|
||||||
(
|
(
|
||||||
@@ -233,7 +257,7 @@ export default class UpdateDialog extends React.Component<UpdateDialogProps, Upd
|
|||||||
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
<Button style={{ marginLeft: 16, marginTop: 12 }} onClick={() => { this.onViewReleaseNotes(); }}>View release notes</Button>
|
<Button style={{ marginLeft: 8, marginTop: 12 }} onClick={() => { this.onViewReleaseNotes(); }}>View release notes</Button>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
<Divider />
|
<Divider />
|
||||||
<DialogActions>
|
<DialogActions>
|
||||||
|
|||||||
@@ -206,10 +206,6 @@ UiFileProperty::UiFileProperty(PluginHost *pHost, const LilvNode *node, const st
|
|||||||
{
|
{
|
||||||
this->resourceDirectory_ = resourceDirectory.AsString();
|
this->resourceDirectory_ = resourceDirectory.AsString();
|
||||||
}
|
}
|
||||||
if (this->resourceDirectory_.empty())
|
|
||||||
{
|
|
||||||
this->resourceDirectory_ = "default";
|
|
||||||
}
|
|
||||||
this->fileTypes_ = UiFileType::GetArray(pHost, node, pHost->lilvUris->pipedalUI__fileTypes);
|
this->fileTypes_ = UiFileType::GetArray(pHost, node, pHost->lilvUris->pipedalUI__fileTypes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1457,6 +1457,7 @@ void PluginHost::CheckForResourceInitialization(const std::string &pluginUri,con
|
|||||||
resourceInfoSet.insert(ResourceInfo(fileProperty->directory(),fileProperty->resourceDirectory()));
|
resourceInfoSet.insert(ResourceInfo(fileProperty->directory(),fileProperty->resourceDirectory()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
for (const ResourceInfo&resourceInfo: resourceInfoSet)
|
for (const ResourceInfo&resourceInfo: resourceInfoSet)
|
||||||
{
|
{
|
||||||
std::filesystem::path sourcePath = bundlePath / resourceInfo.resourceDirectory;
|
std::filesystem::path sourcePath = bundlePath / resourceInfo.resourceDirectory;
|
||||||
@@ -1467,6 +1468,10 @@ void PluginHost::CheckForResourceInitialization(const std::string &pluginUri,con
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
} catch (const std::exception &e)
|
||||||
|
{
|
||||||
|
Lv2Log::error(SS("CheckForResourceInitialization: " << e.what()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -431,7 +431,7 @@ void Updater::CheckForUpdate(bool useCache)
|
|||||||
updateResult = this->currentResult;
|
updateResult = this->currentResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
//const std::string responseOption = "-w \"%{response_code}\"";
|
// const std::string responseOption = "-w \"%{response_code}\"";
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
responseOption = "-w \"%%{response_code}\""; // windows shell requires doubling of the %%.
|
responseOption = "-w \"%%{response_code}\""; // windows shell requires doubling of the %%.
|
||||||
#endif
|
#endif
|
||||||
@@ -787,7 +787,7 @@ static std::string getFingerprint(const std::string &gpgText)
|
|||||||
}
|
}
|
||||||
return gpgText.substr(start, nPos - start);
|
return gpgText.substr(start, nPos - start);
|
||||||
}
|
}
|
||||||
static bool IsSignatureGood(const std::string&gpgText)
|
static bool IsSignatureGood(const std::string &gpgText)
|
||||||
{
|
{
|
||||||
std::string originPosition = "gpg: Good signature from \"";
|
std::string originPosition = "gpg: Good signature from \"";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user