mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-07-27 06:06:59 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a91252d7fb | ||
|
|
239170df45 | ||
|
|
5fef42a2e2 | ||
|
|
4f8f663f12 | ||
|
|
6ccc55a1d0 | ||
|
|
d266a3f073 | ||
|
|
d2993592be | ||
|
|
1a53ab62dc | ||
|
|
51fcd94a61 | ||
|
|
7f6a122816 | ||
|
|
7ca01ed8cb | ||
|
|
07321afb60 | ||
|
|
8534e516ad | ||
|
|
16ce233f79 | ||
|
|
c2f4658871 |
@@ -37,7 +37,7 @@ jobs:
|
||||
pkg-config
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -90,7 +90,7 @@ jobs:
|
||||
zip -j "$ARCHIVE_NAME" "${FILES[@]}"
|
||||
|
||||
- name: Upload ZIP artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: archive-${{ matrix.arch }}
|
||||
path: pwsp-*.zip
|
||||
@@ -124,7 +124,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Upload .deb artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: deb-packages-${{ matrix.arch }}
|
||||
path: target/debian/*.deb
|
||||
@@ -139,7 +139,7 @@ jobs:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Setup GPG
|
||||
id: gpg
|
||||
@@ -156,7 +156,7 @@ jobs:
|
||||
merge-multiple: true
|
||||
|
||||
- name: Checkout existing gh-pages
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
ref: gh-pages
|
||||
path: gh-pages-branch
|
||||
@@ -202,7 +202,7 @@ jobs:
|
||||
done
|
||||
|
||||
- name: Deploy APT Repo to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
uses: peaceiris/actions-gh-pages@v4
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./apt-repo
|
||||
@@ -225,7 +225,7 @@ jobs:
|
||||
options: --privileged
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Build Flatpak
|
||||
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
contents: write # Needed to push back to the branch
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
ref: ${{ github.head_ref }}
|
||||
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
run: bash ./scripts/generate-sources.sh
|
||||
|
||||
- name: Commit and push changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
uses: stefanzweifel/git-auto-commit-action@v7
|
||||
with:
|
||||
commit_message: "chore(flatpak): automatically update cargo-sources.json"
|
||||
file_pattern: "packages/flatpak/cargo-sources.json"
|
||||
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
ref: ${{ inputs.tag_name || github.ref }}
|
||||
|
||||
@@ -103,7 +103,7 @@ jobs:
|
||||
pattern: ru.arabianq.pwsp-*
|
||||
|
||||
- name: Checkout existing gh-pages
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
ref: gh-pages
|
||||
path: gh-pages-branch
|
||||
@@ -155,8 +155,23 @@ jobs:
|
||||
# Update summary and sign the repository
|
||||
flatpak build-update-repo --generate-static-deltas --gpg-sign=${{ steps.gpg.outputs.fingerprint }} pages-repo
|
||||
|
||||
# Export GPG public key for manual import
|
||||
gpg --export ${{ steps.gpg.outputs.fingerprint }} > pages-repo/pwsp.gpg
|
||||
|
||||
# Generate a .flatpakrepo file for easy installation
|
||||
GPG_BASE64=$(gpg --export ${{ steps.gpg.outputs.fingerprint }} | base64 -w 0)
|
||||
cat <<EOF | sed 's/^ *//' > pages-repo/pwsp.flatpakrepo
|
||||
[Flatpak Repo]
|
||||
Title=PipeWire Soundpad
|
||||
Url=https://arabianq.github.io/pipewire-soundpad/
|
||||
Homepage=https://github.com/arabianq/pipewire-soundpad
|
||||
Comment=PipeWire Soundpad Flatpak Repository
|
||||
Description=Official repository for PWSP
|
||||
GPGKey=${GPG_BASE64}
|
||||
EOF
|
||||
|
||||
- name: Deploy Flatpak Repo to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
uses: peaceiris/actions-gh-pages@v4
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./pages-repo
|
||||
|
||||
@@ -74,7 +74,7 @@ jobs:
|
||||
pkg-config
|
||||
|
||||
- name: Checkout code at tag
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
ref: ${{ needs.prepare.outputs.tag }}
|
||||
fetch-depth: 0
|
||||
@@ -119,7 +119,7 @@ jobs:
|
||||
zip -j "$ARCHIVE_NAME" "${FILES[@]}"
|
||||
|
||||
- name: Upload ZIP artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: zip-archive-${{ matrix.arch }}
|
||||
path: pwsp-*.zip
|
||||
@@ -144,7 +144,7 @@ jobs:
|
||||
cargo-deb -p pwsp-gui --no-build
|
||||
|
||||
- name: Upload DEB artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: deb-package-${{ matrix.arch }}
|
||||
path: target/debian/*.deb
|
||||
@@ -196,7 +196,7 @@ jobs:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Setup GPG
|
||||
id: gpg
|
||||
@@ -213,7 +213,7 @@ jobs:
|
||||
merge-multiple: true
|
||||
|
||||
- name: Checkout existing gh-pages
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
ref: gh-pages
|
||||
path: gh-pages-branch
|
||||
@@ -264,7 +264,7 @@ jobs:
|
||||
done
|
||||
|
||||
- name: Deploy APT Repo to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
uses: peaceiris/actions-gh-pages@v4
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./apt-repo
|
||||
|
||||
Generated
+21
-21
@@ -780,9 +780,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-deque"
|
||||
version = "0.8.6"
|
||||
version = "0.8.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
|
||||
checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb"
|
||||
dependencies = [
|
||||
"crossbeam-epoch",
|
||||
"crossbeam-utils",
|
||||
@@ -790,18 +790,18 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-epoch"
|
||||
version = "0.9.18"
|
||||
version = "0.9.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
||||
checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f"
|
||||
dependencies = [
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-utils"
|
||||
version = "0.8.21"
|
||||
version = "0.8.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
|
||||
checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17"
|
||||
|
||||
[[package]]
|
||||
name = "crunchy"
|
||||
@@ -2045,11 +2045,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "jobserver"
|
||||
version = "0.1.34"
|
||||
version = "0.1.35"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
|
||||
checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3"
|
||||
dependencies = [
|
||||
"getrandom 0.3.4",
|
||||
"getrandom 0.4.3",
|
||||
"libc",
|
||||
]
|
||||
|
||||
@@ -3162,7 +3162,7 @@ checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5"
|
||||
|
||||
[[package]]
|
||||
name = "pwsp-cli"
|
||||
version = "1.12.3"
|
||||
version = "1.12.4"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
@@ -3173,7 +3173,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pwsp-daemon"
|
||||
version = "1.12.3"
|
||||
version = "1.12.4"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
@@ -3185,7 +3185,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pwsp-gui"
|
||||
version = "1.12.3"
|
||||
version = "1.12.4"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"eframe",
|
||||
@@ -3209,7 +3209,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pwsp-lib"
|
||||
version = "1.12.3"
|
||||
version = "1.12.4"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -3228,9 +3228,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pxfm"
|
||||
version = "0.1.29"
|
||||
version = "0.1.30"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f"
|
||||
checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea"
|
||||
|
||||
[[package]]
|
||||
name = "quick-error"
|
||||
@@ -3580,9 +3580,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rustversion"
|
||||
version = "1.0.22"
|
||||
version = "1.0.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
|
||||
checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
|
||||
|
||||
[[package]]
|
||||
name = "ryu"
|
||||
@@ -5568,18 +5568,18 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy"
|
||||
version = "0.8.52"
|
||||
version = "0.8.53"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f"
|
||||
checksum = "75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1"
|
||||
dependencies = [
|
||||
"zerocopy-derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy-derive"
|
||||
version = "0.8.52"
|
||||
version = "0.8.53"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930"
|
||||
checksum = "4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ members = [
|
||||
resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
version = "1.12.3"
|
||||
version = "1.12.4"
|
||||
edition = "2024"
|
||||
authors = ["arabian"]
|
||||
homepage = "https://pwsp.arabianq.ru"
|
||||
|
||||
@@ -33,13 +33,13 @@ Add our official OSTree repository and install the application:
|
||||
|
||||
```bash
|
||||
# Add the repository
|
||||
flatpak remote-add --if-not-exists arabianq-repo https://arabianq.github.io/pipewire-soundpad/
|
||||
flatpak remote-add --if-not-exists pwsp https://arabianq.github.io/pipewire-soundpad/pwsp.flatpakrepo
|
||||
|
||||
# Install the Stable version
|
||||
flatpak install arabianq-repo ru.arabianq.pwsp//stable
|
||||
flatpak install pwsp ru.arabianq.pwsp//stable
|
||||
|
||||
# OR Install the Nightly version (rolling updates)
|
||||
flatpak install arabianq-repo ru.arabianq.pwsp//nightly
|
||||
flatpak install pwsp ru.arabianq.pwsp//nightly
|
||||
```
|
||||
|
||||
### 🟠 Debian / Ubuntu (APT Repository)
|
||||
@@ -59,7 +59,7 @@ echo "deb [signed-by=/etc/apt/keyrings/pwsp.gpg] https://arabianq.github.io/pipe
|
||||
|
||||
# 3. Update and install
|
||||
sudo apt update
|
||||
sudo apt install pwsp-gui
|
||||
sudo apt install pwsp
|
||||
```
|
||||
|
||||
### 🐧 Fedora / RHEL (COPR)
|
||||
|
||||
+4
-4
@@ -33,13 +33,13 @@
|
||||
|
||||
```bash
|
||||
# Добавьте репозиторий
|
||||
flatpak remote-add --if-not-exists arabianq-repo https://arabianq.github.io/pipewire-soundpad/
|
||||
flatpak remote-add --if-not-exists pwsp https://arabianq.github.io/pipewire-soundpad/pwsp.flatpakrepo
|
||||
|
||||
# Установите стабильную (Stable) версию
|
||||
flatpak install arabianq-repo ru.arabianq.pwsp//stable
|
||||
flatpak install pwsp ru.arabianq.pwsp//stable
|
||||
|
||||
# ИЛИ установите Nightly версию (самые свежие обновления)
|
||||
flatpak install arabianq-repo ru.arabianq.pwsp//nightly
|
||||
flatpak install pwsp ru.arabianq.pwsp//nightly
|
||||
```
|
||||
|
||||
### 🟠 Debian / Ubuntu (APT Репозиторий)
|
||||
@@ -59,7 +59,7 @@ echo "deb [signed-by=/etc/apt/keyrings/pwsp.gpg] https://arabianq.github.io/pipe
|
||||
|
||||
# 3. Обновите индексы и установите
|
||||
sudo apt update
|
||||
sudo apt install pwsp-gui
|
||||
sudo apt install pwsp
|
||||
```
|
||||
|
||||
### 🐧 Fedora / RHEL (COPR)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
pkgbase = pwsp-bin
|
||||
pkgdesc = Lets you play audio files through your microphone (Pre-built binaries)
|
||||
pkgver = 1.12.3
|
||||
pkgver = 1.12.4
|
||||
pkgrel = 1
|
||||
url = https://github.com/arabianq/pipewire-soundpad
|
||||
arch = x86_64
|
||||
@@ -10,11 +10,11 @@ pkgbase = pwsp-bin
|
||||
depends = alsa-lib
|
||||
provides = pwsp
|
||||
conflicts = pwsp
|
||||
source = pipewire-soundpad-1.12.3.tar.gz :: https://github.com/arabianq/pipewire-soundpad/archive/refs/tags/v1.12.3.tar.gz
|
||||
source = pipewire-soundpad-1.12.4.tar.gz :: https://github.com/arabianq/pipewire-soundpad/archive/refs/tags/v1.12.4.tar.gz
|
||||
sha256sums = SKIP
|
||||
source_x86_64 = pwsp-1.12.3-x86_64.zip :: https://github.com/arabianq/pipewire-soundpad/releases/download/v1.12.3/pwsp-v1.12.3-linux-x64.zip
|
||||
source_x86_64 = pwsp-1.12.4-x86_64.zip :: https://github.com/arabianq/pipewire-soundpad/releases/download/v1.12.4/pwsp-v1.12.4-linux-x64.zip
|
||||
sha256sums_x86_64 = SKIP
|
||||
source_aarch64 = pwsp-1.12.3-aarch64.zip :: https://github.com/arabianq/pipewire-soundpad/releases/download/v1.12.3/pwsp-v1.12.3-linux-arm64.zip
|
||||
source_aarch64 = pwsp-1.12.4-aarch64.zip :: https://github.com/arabianq/pipewire-soundpad/releases/download/v1.12.4/pwsp-v1.12.4-linux-arm64.zip
|
||||
sha256sums_aarch64 = SKIP
|
||||
|
||||
pkgname = pwsp-bin
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Maintainer: Alexander Tarasov <a.tevg@ya.ru>
|
||||
pkgname=pwsp-bin
|
||||
_pkgname=pipewire-soundpad
|
||||
pkgver=1.12.3
|
||||
pkgver=1.12.4
|
||||
pkgrel=1
|
||||
pkgdesc="Lets you play audio files through your microphone (Pre-built binaries)"
|
||||
arch=('x86_64' 'aarch64')
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
pkgbase = pwsp
|
||||
pkgdesc = Lets you play audio files through your microphone
|
||||
pkgver = 1.12.3
|
||||
pkgver = 1.12.4
|
||||
pkgrel = 1
|
||||
url = https://github.com/arabianq/pipewire-soundpad
|
||||
arch = x86_64
|
||||
@@ -12,7 +12,7 @@ pkgbase = pwsp
|
||||
makedepends = cmake
|
||||
makedepends = pipewire
|
||||
makedepends = alsa-lib
|
||||
source = https://github.com/arabianq/pipewire-soundpad/archive/refs/tags/v1.12.3.tar.gz
|
||||
source = https://github.com/arabianq/pipewire-soundpad/archive/refs/tags/v1.12.4.tar.gz
|
||||
sha256sums = SKIP
|
||||
|
||||
pkgname = pwsp
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Maintainer: Alexander Tarasov <a.tevg@ya.ru>
|
||||
pkgsubn=pwsp
|
||||
pkgname=pwsp
|
||||
pkgver=1.12.3
|
||||
pkgver=1.12.4
|
||||
pkgrel=1
|
||||
pkgdesc="Lets you play audio files through your microphone"
|
||||
arch=('x86_64' 'aarch64')
|
||||
|
||||
@@ -996,40 +996,40 @@
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.6.crate",
|
||||
"sha256": "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51",
|
||||
"dest": "cargo/vendor/crossbeam-deque-0.8.6"
|
||||
"url": "https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.7.crate",
|
||||
"sha256": "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb",
|
||||
"dest": "cargo/vendor/crossbeam-deque-0.8.7"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/crossbeam-deque-0.8.6",
|
||||
"contents": "{\"package\": \"5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/crossbeam-deque-0.8.7",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/crossbeam-epoch/crossbeam-epoch-0.9.18.crate",
|
||||
"sha256": "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e",
|
||||
"dest": "cargo/vendor/crossbeam-epoch-0.9.18"
|
||||
"url": "https://static.crates.io/crates/crossbeam-epoch/crossbeam-epoch-0.9.20.crate",
|
||||
"sha256": "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f",
|
||||
"dest": "cargo/vendor/crossbeam-epoch-0.9.20"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/crossbeam-epoch-0.9.18",
|
||||
"contents": "{\"package\": \"2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/crossbeam-epoch-0.9.20",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.21.crate",
|
||||
"sha256": "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28",
|
||||
"dest": "cargo/vendor/crossbeam-utils-0.8.21"
|
||||
"url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.22.crate",
|
||||
"sha256": "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17",
|
||||
"dest": "cargo/vendor/crossbeam-utils-0.8.22"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/crossbeam-utils-0.8.21",
|
||||
"contents": "{\"package\": \"61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/crossbeam-utils-0.8.22",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
@@ -2569,14 +2569,14 @@
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/jobserver/jobserver-0.1.34.crate",
|
||||
"sha256": "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33",
|
||||
"dest": "cargo/vendor/jobserver-0.1.34"
|
||||
"url": "https://static.crates.io/crates/jobserver/jobserver-0.1.35.crate",
|
||||
"sha256": "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3",
|
||||
"dest": "cargo/vendor/jobserver-0.1.35"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/jobserver-0.1.34",
|
||||
"contents": "{\"package\": \"1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/jobserver-0.1.35",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
@@ -3999,14 +3999,14 @@
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/pxfm/pxfm-0.1.29.crate",
|
||||
"sha256": "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f",
|
||||
"dest": "cargo/vendor/pxfm-0.1.29"
|
||||
"url": "https://static.crates.io/crates/pxfm/pxfm-0.1.30.crate",
|
||||
"sha256": "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea",
|
||||
"dest": "cargo/vendor/pxfm-0.1.30"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/pxfm-0.1.29",
|
||||
"contents": "{\"package\": \"d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/pxfm-0.1.30",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
@@ -4446,14 +4446,14 @@
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/rustversion/rustversion-1.0.22.crate",
|
||||
"sha256": "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d",
|
||||
"dest": "cargo/vendor/rustversion-1.0.22"
|
||||
"url": "https://static.crates.io/crates/rustversion/rustversion-1.0.23.crate",
|
||||
"sha256": "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f",
|
||||
"dest": "cargo/vendor/rustversion-1.0.23"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/rustversion-1.0.22",
|
||||
"contents": "{\"package\": \"cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/rustversion-1.0.23",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
@@ -6942,27 +6942,27 @@
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/zerocopy/zerocopy-0.8.52.crate",
|
||||
"sha256": "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f",
|
||||
"dest": "cargo/vendor/zerocopy-0.8.52"
|
||||
"url": "https://static.crates.io/crates/zerocopy/zerocopy-0.8.53.crate",
|
||||
"sha256": "75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1",
|
||||
"dest": "cargo/vendor/zerocopy-0.8.53"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/zerocopy-0.8.52",
|
||||
"contents": "{\"package\": \"75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/zerocopy-0.8.53",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
"type": "archive",
|
||||
"archive-type": "tar-gzip",
|
||||
"url": "https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.8.52.crate",
|
||||
"sha256": "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930",
|
||||
"dest": "cargo/vendor/zerocopy-derive-0.8.52"
|
||||
"url": "https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.8.53.crate",
|
||||
"sha256": "4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71",
|
||||
"dest": "cargo/vendor/zerocopy-derive-0.8.53"
|
||||
},
|
||||
{
|
||||
"type": "inline",
|
||||
"contents": "{\"package\": \"1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/zerocopy-derive-0.8.52",
|
||||
"contents": "{\"package\": \"4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71\", \"files\": {}}",
|
||||
"dest": "cargo/vendor/zerocopy-derive-0.8.53",
|
||||
"dest-filename": ".cargo-checksum.json"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<name>arabian</name>
|
||||
</developer>
|
||||
<releases>
|
||||
<release version="1.12.3" date="2026-07-05" />
|
||||
<release version="1.12.4" date="2026-07-07" />
|
||||
</releases>
|
||||
<content_rating type="oars-1.1" />
|
||||
</component>
|
||||
@@ -30,6 +30,7 @@ modules:
|
||||
- name: pwsp
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- if [ -w /run/ccache ]; then mkdir -p /run/ccache/cargo-target && rm -rf target && ln -s /run/ccache/cargo-target target; fi
|
||||
- export CARGO_HOME=$PWD/cargo && cargo build --release --offline
|
||||
- install -Dm755 target/release/pwsp-daemon /app/bin/pwsp-daemon
|
||||
- install -Dm755 target/release/pwsp-cli /app/bin/pwsp-cli
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
|
||||
Name: pwsp
|
||||
Version: 1.12.3
|
||||
Version: 1.12.4
|
||||
Release: %autorelease
|
||||
Summary: Lets you play audio files through your microphone
|
||||
|
||||
|
||||
@@ -199,11 +199,7 @@ impl SoundpadGui {
|
||||
}
|
||||
|
||||
if !search_query.is_empty() {
|
||||
let file_name = entry_path
|
||||
.file_name()
|
||||
.unwrap_or_default()
|
||||
.to_string_lossy()
|
||||
.to_string();
|
||||
let file_name = entry_path.file_name().unwrap_or_default().to_string_lossy();
|
||||
|
||||
if !file_name.to_lowercase().contains(search_query) {
|
||||
return false;
|
||||
|
||||
+25
-9
@@ -1,9 +1,13 @@
|
||||
mod gui;
|
||||
|
||||
use anyhow::{Context, Result};
|
||||
use anyhow::{Context, Result, anyhow};
|
||||
use pwsp_lib::utils::gui::ensure_pwsp_audio_dir;
|
||||
use rust_i18n::i18n;
|
||||
use std::{env, path::PathBuf};
|
||||
use std::{
|
||||
env,
|
||||
path::{Path, PathBuf},
|
||||
time::{SystemTime, UNIX_EPOCH},
|
||||
};
|
||||
|
||||
i18n!("locales", fallback = "en");
|
||||
|
||||
@@ -31,19 +35,31 @@ async fn download_audio_from_url(uri: &str) -> Result<PathBuf> {
|
||||
|
||||
let target_url = uri
|
||||
.strip_prefix(prefix)
|
||||
.ok_or_else(|| anyhow::anyhow!("URI does not containt an expected prefix: {}", prefix))?;
|
||||
.ok_or_else(|| anyhow!("URI does not containt an expected prefix: {}", prefix))?;
|
||||
|
||||
let file_name_encoded = target_url
|
||||
.split('/')
|
||||
.next_back()
|
||||
.unwrap_or("downloaded_audio.mp3");
|
||||
let file_name_encoded = match target_url.split('/').next_back() {
|
||||
Some(path) => path.to_string(),
|
||||
None => {
|
||||
let id = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.expect("Time went back")
|
||||
.as_nanos();
|
||||
format!("downloaded_audio_{}.mp3", id)
|
||||
}
|
||||
};
|
||||
|
||||
let file_name = percent_encoding::percent_decode_str(file_name_encoded)
|
||||
let file_name = percent_encoding::percent_decode_str(&file_name_encoded.clone())
|
||||
.decode_utf8()
|
||||
.unwrap_or_else(|_| file_name_encoded.into())
|
||||
.into_owned();
|
||||
|
||||
let save_path = ensure_pwsp_audio_dir().join(file_name);
|
||||
let normalized_file_name = file_name.replace('\\', "/");
|
||||
let sanitized_file_name = Path::new(&normalized_file_name)
|
||||
.file_name()
|
||||
.and_then(|n| n.to_str())
|
||||
.unwrap_or("downloaded_audio.mp3");
|
||||
|
||||
let save_path = ensure_pwsp_audio_dir().join(sanitized_file_name);
|
||||
|
||||
let response = reqwest::get(target_url)
|
||||
.await?
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use anyhow::Result;
|
||||
use anyhow::{Context, Result};
|
||||
use std::path::PathBuf;
|
||||
|
||||
pub fn get_config_path() -> Result<PathBuf> {
|
||||
let config_path = dirs::config_dir().expect("Failed to obtain config dir");
|
||||
let config_path = dirs::config_dir().context("Failed to obtain config dir")?;
|
||||
Ok(config_path.join("pwsp"))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user