diff --git a/src/lib/components/DACSetupWizard.svelte b/src/lib/components/DACSetupWizard.svelte index c5961864f..38ab2a05e 100644 --- a/src/lib/components/DACSetupWizard.svelte +++ b/src/lib/components/DACSetupWizard.svelte @@ -243,6 +243,7 @@ // Generate pulse config command based on selected apps function generatePulseConfig(): string[] { + const fileName = dacNodeName ? `99-qbz-bitperfect-${dacShortName()}.conf` : '99-qbz-bitperfect.conf'; const rules = selectedApps.map(app => { const matchKey = app === 'QBZ' ? 'application.name' : 'application.process.binary'; const matchValue = app === 'QBZ' ? 'QBZ' : app.toLowerCase(); @@ -254,7 +255,7 @@ return [ 'mkdir -p ~/.config/pipewire/pipewire-pulse.conf.d', - `cat > ~/.config/pipewire/pipewire-pulse.conf.d/99-qbz-bitperfect.conf << 'EOF'`, + `cat > ~/.config/pipewire/pipewire-pulse.conf.d/${fileName} << 'EOF'`, '# QBZ DAC Setup - Per-App Bit-Perfect', 'pulse.rules = [', rules, @@ -263,6 +264,16 @@ ]; } + // Get created config file paths for summary + function getCreatedConfigPaths(): string[] { + const name = dacNodeName ? dacShortName() : null; + return [ + `~/.config/pipewire/pipewire.conf.d/${name ? `99-qbz-dac-${name}.conf` : '99-qbz-dac.conf'}`, + `~/.config/pipewire/pipewire-pulse.conf.d/${name ? `99-qbz-bitperfect-${name}.conf` : '99-qbz-bitperfect.conf'}`, + `~/.config/wireplumber/wireplumber.conf.d/${name ? `99-qbz-dac-${name}.conf` : '99-qbz-dac.conf'}` + ]; + } + // Generate WirePlumber config with user's DAC node name function generateWireplumberConfig(): string[] { const rates = Array.from(selectedSampleRates).sort((a, b) => a - b); @@ -633,12 +644,19 @@
+ {#if dacCapabilities?.description || dacNodeName} +
+ {$t('dacWizard.done.configuredFor')} + {dacCapabilities?.description || dacShortName()} +
+ {/if} +

{$t('dacWizard.done.summary')}

    -
  • ~/.config/pipewire/pipewire.conf.d/99-qbz-dac.conf
  • -
  • ~/.config/pipewire/pipewire-pulse.conf.d/99-qbz-bitperfect.conf
  • -
  • ~/.config/wireplumber/wireplumber.conf.d/99-qbz-dac.conf
  • + {#each getCreatedConfigPaths() as path} +
  • {path}
  • + {/each}
@@ -1157,6 +1175,24 @@ color: var(--accent-primary); } + .done-dac-info { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; + } + + .done-dac-label { + font-size: 13px; + color: var(--text-muted); + } + + .done-dac-name { + font-size: 18px; + font-weight: 600; + color: var(--text-primary); + } + .done-summary { text-align: center; } diff --git a/src/lib/i18n/locales/de.json b/src/lib/i18n/locales/de.json index 70c23e312..7e4bd0ea2 100644 --- a/src/lib/i18n/locales/de.json +++ b/src/lib/i18n/locales/de.json @@ -1065,6 +1065,7 @@ "title": "Einrichtung abgeschlossen", "subtitle": "Ihr DAC ist für Bit-Perfect-Wiedergabe konfiguriert.", "summary": "Erstellte Konfigurationen:", + "configuredFor": "Konfiguriert für:", "close": "Schließen" }, "error": { diff --git a/src/lib/i18n/locales/en.json b/src/lib/i18n/locales/en.json index d04e997fd..adf262928 100644 --- a/src/lib/i18n/locales/en.json +++ b/src/lib/i18n/locales/en.json @@ -1123,6 +1123,7 @@ "done": { "title": "Setup Complete", "subtitle": "Your DAC is configured for bit-perfect playback.", + "configuredFor": "Configured for:", "summary": "Created configs:", "close": "Close" }, diff --git a/src/lib/i18n/locales/es.json b/src/lib/i18n/locales/es.json index a96845ffa..e581cb288 100644 --- a/src/lib/i18n/locales/es.json +++ b/src/lib/i18n/locales/es.json @@ -1123,6 +1123,7 @@ "done": { "title": "Configuración Completa", "subtitle": "Tu DAC está configurado para reproducción bit-perfect.", + "configuredFor": "Configurado para:", "summary": "Configs creados:", "close": "Cerrar" }, diff --git a/src/lib/i18n/locales/fr.json b/src/lib/i18n/locales/fr.json index dece2b424..7a881dfda 100644 --- a/src/lib/i18n/locales/fr.json +++ b/src/lib/i18n/locales/fr.json @@ -1064,6 +1064,7 @@ "done": { "title": "Configuration terminée", "subtitle": "Votre DAC est configuré pour la lecture bit-perfect.", + "configuredFor": "Configuré pour :", "summary": "Configurations créées :", "close": "Fermer" },