Files
op-pedal/docs/BuildPrerequisites.md
T
Extremesecrecy 874d859916 Email Changes - Backwards Compatibility
Introduce legacy alsaDevice_ field in JackServerSettings to preserve compatibility with older configs. Include this field in serialization to allow old config files to load. Add migration logic in Storage::GetJackServerSettings to copy the legacy device value to new separate input/output fields and clear the legacy value after migration.

Update frontend validation so that device selections are only validated when the user presses OK. Improve buffer selection logic to prioritize 32×4, then other x4, x3, or x2 options, falling back to 64×3 if none match.

Use standard MUI styling for device selectors. Labels stay above the field and no longer animate. Dropdown labels now use background padding to prevent underline overlap.

Add a compactWidth flag to adjust layout on narrow screens. Stack device selectors vertically in compact mode while keeping the refresh button on the right. Refreshing ALSA info sets unknown device IDs to a blank value.

Add real-time status updates with a polling timer. Separate Apply and OK handlers so settings can be tested without closing the dialog. Add an Apply button alongside Cancel and OK.

Update the UI summary logic to show “Input → Output” when devices differ and “Not selected” when config is incomplete. Filter out internal devices like HDMI and bcm2835 from the device list.

Retain the legacy alsaDevice_ field in the JSON for backward compatibility, with helper accessors and documentation for legacy constructor behavior. Update latency text calculation to show when sample rate and buffer size are defined, even if the config is invalid.

Removed libsdl2-dev from dependency checking and dependencies.
2025-07-24 19:27:39 -07:00

75 lines
2.7 KiB
Markdown

### Build Prerequisites
Run the following commands to install build tools required by the PiPedal build.
# install CMake
sudo apt update
sudo apt upgrade
sudo apt install -y cmake ninja-build build-essential g++ git
The PiPedal build process also requires version 12 or later of `node.js`. Type `node --version` to see if you have a version
of `node.js` installed already. Otherwise run the following commands as root to install a current version of version of `node.js`:
sudo apt install nodejs npm curl
If your distribution doesn't provide a suitable version of nodejs,
please refer to the `node.js` website for instructions on [how to install the latest version of `node.js`](https://nodejs.org/en/download) directly.
Run the following commands to install dependent libraries required by the PiPedal build.
sudo apt update
sudo apt upgrade
sudo apt install -y liblilv-dev libboost-dev \
libsystemd-dev catch libasound2-dev uuid-dev \
authbind libavahi-client-dev libnm-dev libicu-dev \
libsdbus-c++-dev libzip-dev google-perftools \
libgoogle-perftools-dev \
libpipewire-0.3-dev libwebsocketpp-dev
After installing these packages, run the dependency checker to verify that
everything required is present:
```bash
cd ~/src/pipedal
./scripts/check_deps.sh
```
### Installing Sources
If you are using Visual Studio Code, install the following Extensions:
- C/C++ Extension Pack (Microsoft).
- CMake Tools (Microsoft)
Clone the `rerdavies/pipedal` package from github. Use the source control tools from Visual Studio Code, or
cd ~/src # or wherever you keep your source repositories.
git clone https://github.com/rerdavies/pipedal.git
In the project root, run the following commands to initialize and update PiPedal submodules. These steps
must be performed even if you used Visual Studio Code to initially install the project.
cd ~/src/pipedal
git submodule update --init --recursive
Run the following command to install and configure React dependencies.
cd ~/src/pipedal
./react-config # Configure React NPM dependencies.
And one final step. Edit the file `/etc/sysctl.conf`, and add or increase the value for the maximum number of watchable user
files:
fs.inotify.max_user_watches=524288
Then run `sudo sysctl -p` to get the change to take effect. Visual Studio Code and the React Debug server both need this
setting to run properly. Older versions of Raspberry Pi OS set this value too low; and I am not honestly sure whether current
versions of Raspberry Pi OS have fixed the problem.
--------------------------
[<< Building PiPedal from Source](BuildingPiPedalFromSource.md) | [Up](Documentation.md) | [The Build System >>](TheBuildSystem.md)