refactor(live-input): drop the PCM-only pipewire mode, keep the bridge sink - #354
Merged
Conversation
mgth
force-pushed
the
refactor/remove-pcm-live-input-mode
branch
from
September 2, 2026 19:09
a5fb6cb to
71162d8
Compare
…e sink The `pipewire` live-input mode published a second sink that only accepted linear PCM. The `pipewire_bridge` sink negotiates linear PCM next to IEC 61937, so the PCM-only sink had no reason left to exist. `InputMode::Live` and its config twin are gone; `pipewire` and `live` stay as deserialization aliases of `pipewire_bridge` so a saved config or an older client keeps loading instead of falling back to defaults. The PCM capture loop, its resolver and the capture-config enum go with it, as does `sample_format`, which only that resolver ever read: the request field, the config key, the OSC control and the `--input-format` flag. The idle feeder's self-feeding flag only described that sink. Studio loses the `PipeWire` mode option, the Format select and its command; the rows only the PCM mode showed stay hidden until the PipeWire-mode rework decides which return. Locales drop the orphaned keys and reword the mode help. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
mgth
force-pushed
the
refactor/remove-pcm-live-input-mode
branch
from
September 2, 2026 19:22
71162d8 to
28041fb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #353 (both touch
reconcile_live_input); merge that one first.Why
The PCM-only
pipewirelive-input mode published a second sink (omniphony_input_7_1, f32 7.1 at 48 kHz) that only accepted linear PCM. Thepipewire_bridgesink has advertised a linear-PCM alternative next to IEC 61937 for a while, so the PCM-only sink no longer has a reason to exist. This keepspipewire_bridgeas the sole PipeWire input; renaming it to plainpipewireis a later step.Renderer
InputMode::LiveandInputModeConfig::Liveare gone. The namespipewireandlivestay as deserialization aliases ofpipewire_bridge(serde, the OSCinput/modecontrol, and Studio'snormalize_input_mode), so a saved config or an older client selecting the removed mode lands on the bridge sink instead of failing to parse — a config parse failure would silently fall back toConfig::default(). Serialization still writespipewire_bridge.live_input.rs: the PCM capture loop, its config resolver,PipewirePcmInputConfigand theActiveCaptureConfigenum are removed; the manager works onPipewireBridgeInputConfigdirectly. The bridge sink's own PCM fallback (process_pcm,DecodedSource::Live) is untouched.sample_formatwas consumed only by the PCM resolver, so it is removed end to end:InputSampleFormat, the request field and setter,live_input.sample_formatin the config, the/omniphony/control/input/live/formatOSC control and itsformatkey in/state/input, and the--input-formatCLI flag (parsed and never read).IdleFeedInputs::input_self_feedingonly ever described the PCM sink; removed with its test.handler.rsdrops the(Live, DecodedSource::Live)acceptance arm;session_run.rsno longer computes the self-feeding flag.Studio
PipeWireoption of the input mode selector, theFormatselect, its listener and Tauri command, and theliveInput.formatstate are removed.normalize_input_modemapslive/pipewiretopipewire_bridge.omniphony, 2 ch, 192 kHz).input.mode.pipewire,input.format,help.input.format,input.status.live,input.summary.live,input.summary.liveLayout; rewordedhelp.input.modeandinput.infoBody.check-i18nreports full parity.Verification
cargo fmt --all --check,cargo check --workspace --all-targetsandcargo test --workspaceon the renderer;cargo checkonsrc-tauri;node --checkon the edited Studio files;npm run i18n:check;npm run lint:dead.input_mode: pipewire— it now resolves to the bridge sink named bylive_input.node, with the channel count the file requests (8 is accepted by the bridge resolver).Not in this PR
pipewire_bridge→pipewire.truehd-auto-detect.luakeys onrender.input_modefrom outside this repo; not checked here.🤖 Generated with Claude Code