06a2797479b81e052c19324834ae0154a0d4ef5e
Problem: - cpal::Stream is not Send - Cannot use Stream across await points in async functions - Caused compilation error in AudioSinkLogic::process Solution: - Spawn dedicated thread for cpal Stream (similar to rodio approach) - Communicate with thread via std::mpsc channel - Thread waits for shutdown command before dropping stream - Main async loop can now safely await without Send issues Changes: - Add std::mpsc and std::thread imports - Create stream_cmd channel (std::mpsc::channel) - Spawn thread::spawn for stream creation and management - Replace drop(stream) with stream_cmd_tx.send + thread.join - Handle errors in thread with tracing::error (no ? operator) Testing: - Compiled successfully with libsoxr and libasound2 (local install) - Dependencies installed in ~/.local without sudo - PKG_CONFIG_PATH configured correctly - LD_LIBRARY_PATH configured correctly Note: pmoparadise example has unrelated netstat2 compilation issue
Développement de l'application PMOMusic en RUST
Création de la structure
mkdir pizzicato
cd pizzicato
jj git init
touch Readme.md
Maintenant on peu créer l'application PMOMusic
cargo new PMOMusic
On ajoute un fichier Cargo.toml décrivant le workspace pizzicato qui ne contient que notre nouvelle application
[workspace]
members = ["PMOMusic"]
On crée le package pmoupnp
cargo new pmoupnp --lib
Cela modifie automatiquement le fichier Cargo.toml créé juste avant.
Dans ce package un sous module statevariable
cd pmoupnp/src
mkdir statevariable
Petite expériences jujutsu
- Je veux voir l'historique
jj log
@ lkmlpmnk eric@coissac.eu 2025-09-12 09:48:38 a27b6a9a
│ On commence les states variables
○ mzvokmpk eric@coissac.eu 2025-09-12 09:32:27 926827f3
│ Retire le répertoir target du suivi
○ skknrvut eric@coissac.eu 2025-09-12 09:05:27 cbad5c34
│ Initialisation des l'arborescence de répertoires
◆ zzzzzzzz root() 00000000
- Je veux me mettre dans un commit:
jj edit mzvokmpk
je veux créer un nouveau commit à la suite d'un autre et m'y placer
jj new mzvokmpk
mzvokmpk peut être @ pour dans le commit courant ou @- pour dans le parent
- je veux arreter de suivre
- un fichier
jj file untrack <filename>
- un répertoire
find dirname -type f -exec jj file untrack {} \;
Dans tous les cas ne pas oublier d'inscrire le fichier ou le repertoire dans le .gitignore
- je veux déplacer un commit comme un sous commit d'un aute
jj rebase -d destination -r source
eventuellement faire un
jj resolve --all
jj rebase --continue
pour résoudre les conflits
Installer rust sur mac
brew install rustup-init
rustup-init
rustup default stable
Description
Languages
Rust
73%
HTML
11.6%
Vue
9.5%
TypeScript
2.6%
Python
1.3%
Other
1.9%