Compare commits

...

21 commits

Author SHA1 Message Date
Alper Nebi Yasak
3678231a44 Merge branch 'alsa-ucm-disable-devices-on-suspend' into 'master'
alsa-ucm: Disable UCM devices when suspending

See merge request pulseaudio/pulseaudio!772
2025-10-12 19:40:54 +03:00
Fco. Javier F. Serrador
eee0e8f22f Translated using Weblate (Spanish)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/es/
2025-10-01 05:20:04 +02:00
Fco. Javier F. Serrador
b50c28af2c Translated using Weblate (Spanish)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/es/
2025-10-01 05:20:04 +02:00
Martin Srebotnjak
210f4742e7 Translated using Weblate (Slovenian)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/sl/
2025-10-01 05:20:04 +02:00
Temuri Doghonadze
53532e63bf Translated using Weblate (Georgian)
Currently translated at 79.3% (454 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ka/
2025-10-01 05:20:04 +02:00
Jim Spentzos
6834e0041c Translated using Weblate (Greek)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/el/
2025-10-01 05:20:04 +02:00
김인수
329c05b04f Translated using Weblate (Korean)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ko/
2025-10-01 05:20:04 +02:00
Jim Spentzos
76320675d8 Translated using Weblate (Greek)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/el/
2025-10-01 05:20:04 +02:00
Salvatore Cocuzza
d5b58d29ea Translated using Weblate (Italian)
Currently translated at 99.6% (570 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/it/
2025-10-01 05:20:04 +02:00
Salvatore Cocuzza
511926ab4b Translated using Weblate (Italian)
Currently translated at 99.3% (568 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/it/
2025-10-01 05:20:04 +02:00
Fco. Javier F. Serrador
f6e1124942 Translated using Weblate (Spanish)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/es/
2025-10-01 05:20:04 +02:00
Fco. Javier F. Serrador
c7db9d60a6 Translated using Weblate (Spanish)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/es/
2025-10-01 05:20:04 +02:00
Fco. Javier F. Serrador
7493990c84 Translated using Weblate (Spanish)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/es/
2025-10-01 05:20:04 +02:00
김인수
79455f69f7 Translated using Weblate (Korean)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ko/
2025-10-01 05:20:04 +02:00
Remus-Gabriel Chelu
a1fef186d0 Translated using Weblate (Romanian)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ro/
2025-10-01 05:20:04 +02:00
Sergey A
4fa2e83ac3 Translated using Weblate (Russian)
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ru/
2025-10-01 05:20:04 +02:00
Temuri Doghonadze
f081327511 Translated using Weblate (Georgian)
Currently translated at 78.8% (451 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ka/
2025-10-01 05:20:04 +02:00
Rafael Fontenelle
d3f1e217e7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (572 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/pt_BR/
2025-10-01 05:20:04 +02:00
Zayed Al-Saidi
5a3b45cda1 Translated using Weblate (Arabic)
Currently translated at 34.4% (197 of 572 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ar/
2025-10-01 05:20:04 +02:00
Rômulo Borges
b4b3889f3c pactl: add JSON output format
Previously, using the -f json or --format=json flags did not return JSON for the following commands:
- get-sink-volume
- get-source-volume
- get-sink-mute
- get-source-mute

This change adds proper JSON output for these commands.
2025-09-28 12:25:49 -03:00
Alper Nebi Yasak
bafe545da7 alsa-ucm: Disable UCM devices when suspending
Disabling UCM devices might save some power, according to an earlier
discussion [1]. Disable them when suspending sinks/sources, and enable
them when unsuspending.

However, doing only that much introduces problems. The hardware controls
we track for volume and mute state can change as part of disabling the
UCM device. Enabling it back does not restore it to its pre-suspend
state, so the UCM-triggered changes to disable the device will show up
on user interfaces and cause confusion.

The volume/mute should not be kept in sync with hardware for inactive
UCM devices [2]. Skip the callbacks for reading/changing volume/mute
state if the UCM device is disabled. This way, the volume/mute controls
for sinks/sources are essentially detached from the hardware controls
until the UCM device is re-enabled.

Finally, sync volume and mute state for the sinks/sources just after we
re-enable the UCM devices, to restore things to the pre-suspend state.
Combined with the above, this means we can still change volume/mute
state in user interfaces while the sink/source is suspended, and its
updated value will be applied to the UCM device when it's actually going
to be used.

[1] https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/294#note_522388
[2] https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/772#note_1872757

Co-developed-by: Tanu Kaskinen <tanuk@iki.fi>
[Alper: Rebase, split enable/disable functions, skip volume/mute
        callbacks if disabled, sync mixer at unsuspend, edit message]
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2024-09-25 15:26:09 +03:00
15 changed files with 330 additions and 166 deletions

View file

@ -9,9 +9,8 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2025-04-27 12:48+0000\n" "PO-Revision-Date: 2025-05-08 08:25+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-" "Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
"memory@weblate.org>\n"
"Language-Team: Arabic <https://translate.fedoraproject.org/projects/" "Language-Team: Arabic <https://translate.fedoraproject.org/projects/"
"pulseaudio/pulseaudio/ar/>\n" "pulseaudio/pulseaudio/ar/>\n"
"Language: ar\n" "Language: ar\n"
@ -20,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 5.11\n" "X-Generator: Weblate 5.11.3\n"
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
#, c-format #, c-format
@ -462,7 +461,7 @@ msgstr "نظام صوت بلس أوديو"
#: src/daemon/pulseaudio.desktop.in:5 #: src/daemon/pulseaudio.desktop.in:5
msgid "Start the PulseAudio Sound System" msgid "Start the PulseAudio Sound System"
msgstr "" msgstr "ابدأ نظام صوت بلس أوديو"
#: src/modules/alsa/alsa-mixer.c:2708 #: src/modules/alsa/alsa-mixer.c:2708
msgid "Input" msgid "Input"
@ -525,27 +524,27 @@ msgstr "لا يوجد التحكم في الرفع الصوت آلي"
#: src/modules/alsa/alsa-mixer.c:2722 #: src/modules/alsa/alsa-mixer.c:2722
msgid "Boost" msgid "Boost"
msgstr "" msgstr "تعزيز"
#: src/modules/alsa/alsa-mixer.c:2723 #: src/modules/alsa/alsa-mixer.c:2723
msgid "No Boost" msgid "No Boost"
msgstr "" msgstr "دون تعزيز"
#: src/modules/alsa/alsa-mixer.c:2724 #: src/modules/alsa/alsa-mixer.c:2724
msgid "Amplifier" msgid "Amplifier"
msgstr "" msgstr "مُضَخِّم"
#: src/modules/alsa/alsa-mixer.c:2725 #: src/modules/alsa/alsa-mixer.c:2725
msgid "No Amplifier" msgid "No Amplifier"
msgstr "" msgstr "دون مُضَخِّم"
#: src/modules/alsa/alsa-mixer.c:2726 #: src/modules/alsa/alsa-mixer.c:2726
msgid "Bass Boost" msgid "Bass Boost"
msgstr "" msgstr "تعزيز القرار"
#: src/modules/alsa/alsa-mixer.c:2727 #: src/modules/alsa/alsa-mixer.c:2727
msgid "No Bass Boost" msgid "No Bass Boost"
msgstr "" msgstr "دون تعزيز القرار"
#: src/modules/alsa/alsa-mixer.c:2728 src/modules/bluetooth/module-bluez5-device.c:1964 #: src/modules/alsa/alsa-mixer.c:2728 src/modules/bluetooth/module-bluez5-device.c:1964
#: src/utils/pactl.c:333 #: src/utils/pactl.c:333
@ -1046,7 +1045,7 @@ msgstr ""
#: src/modules/reserve-wrap.c:149 #: src/modules/reserve-wrap.c:149
msgid "PulseAudio Sound Server" msgid "PulseAudio Sound Server"
msgstr "" msgstr "خادم صوت بلس أوديو"
#: src/pulse/channelmap.c:105 #: src/pulse/channelmap.c:105
msgid "Front Center" msgid "Front Center"
@ -1074,7 +1073,7 @@ msgstr "خلف يمين"
#: src/pulse/channelmap.c:113 #: src/pulse/channelmap.c:113
msgid "Subwoofer" msgid "Subwoofer"
msgstr "مضخم صوت" msgstr "مضخم الترددات المنخفضة"
#: src/pulse/channelmap.c:115 #: src/pulse/channelmap.c:115
msgid "Front Left-of-center" msgid "Front Left-of-center"
@ -1332,7 +1331,7 @@ msgstr "نعم"
#: src/pulsecore/core-util.h:97 #: src/pulsecore/core-util.h:97
msgid "no" msgid "no"
msgstr "" msgstr "لا"
#: src/pulsecore/lock-autospawn.c:141 src/pulsecore/lock-autospawn.c:227 #: src/pulsecore/lock-autospawn.c:141 src/pulsecore/lock-autospawn.c:227
msgid "Cannot access autospawn lock." msgid "Cannot access autospawn lock."
@ -1370,7 +1369,7 @@ msgstr "ممنوع الوصول"
#: src/pulse/error.c:40 #: src/pulse/error.c:40
msgid "Unknown command" msgid "Unknown command"
msgstr "" msgstr "أمر مجهول"
#: src/pulse/error.c:41 #: src/pulse/error.c:41
msgid "Invalid argument" msgid "Invalid argument"
@ -1402,7 +1401,7 @@ msgstr ""
#: src/pulse/error.c:48 #: src/pulse/error.c:48
msgid "Internal error" msgid "Internal error"
msgstr "خطأ داخلي." msgstr "خطأ داخلي"
#: src/pulse/error.c:49 #: src/pulse/error.c:49
msgid "Connection terminated" msgid "Connection terminated"
@ -1438,7 +1437,7 @@ msgstr ""
#: src/pulse/error.c:57 #: src/pulse/error.c:57
msgid "Not supported" msgid "Not supported"
msgstr "غير معتمد" msgstr "غير مدعوم"
#: src/pulse/error.c:58 #: src/pulse/error.c:58
msgid "Unknown error code" msgid "Unknown error code"
@ -1466,7 +1465,7 @@ msgstr "خطأ في الإدخال/الإخراج"
#: src/pulse/error.c:64 #: src/pulse/error.c:64
msgid "Device or resource busy" msgid "Device or resource busy"
msgstr "" msgstr "الجهاز أو المورد مشغول"
#: src/pulse/sample.c:179 #: src/pulse/sample.c:179
#, c-format #, c-format

View file

@ -9,8 +9,8 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2024-09-04 16:38+0000\n" "PO-Revision-Date: 2025-06-22 10:49+0000\n"
"Last-Translator: Giannis Antypas <gianni.antypas@gmail.com>\n" "Last-Translator: Jim Spentzos <jimspentzos2000@gmail.com>\n"
"Language-Team: Greek <https://translate.fedoraproject.org/projects/" "Language-Team: Greek <https://translate.fedoraproject.org/projects/"
"pulseaudio/pulseaudio/el/>\n" "pulseaudio/pulseaudio/el/>\n"
"Language: el\n" "Language: el\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.7.1\n" "X-Generator: Weblate 5.12.2\n"
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
#, c-format #, c-format
@ -359,7 +359,7 @@ msgstr "Περιγραφή: %s\n"
#: src/daemon/dumpmodules.c:67 #: src/daemon/dumpmodules.c:67
#, c-format #, c-format
msgid "Author: %s\n" msgid "Author: %s\n"
msgstr "Συγγραφέας: %s\n" msgstr "Δημιουργός: %s\n"
#: src/daemon/dumpmodules.c:69 #: src/daemon/dumpmodules.c:69
#, c-format #, c-format
@ -2298,9 +2298,7 @@ msgstr "ΠΛΑΙΣΙΑ"
#: src/utils/pacmd.c:80 src/utils/pactl.c:2659 #: src/utils/pacmd.c:80 src/utils/pactl.c:2659
msgid "RECIPIENT MESSAGE [MESSAGE_PARAMETERS]" msgid "RECIPIENT MESSAGE [MESSAGE_PARAMETERS]"
msgstr "" msgstr "ΜΗΝΥΜΑ ΠΑΡΑΛΗΠΤΗ [MESSAGE_PARAMETERS]"
"ΜΗΝΥΜΑ ΠΑΡΑΛΗΠΤΗ\n"
"[ΠΑΡΑΜΕΤΡΟΙ_ΜΗΝΥΜΑΤΟΣ]"
#: src/utils/pacmd.c:82 #: src/utils/pacmd.c:82
#, c-format #, c-format

View file

@ -14,8 +14,8 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2022-12-18 11:19+0000\n" "PO-Revision-Date: 2025-07-29 09:34+0000\n"
"Last-Translator: Toni Estevez <toni.estevez@gmail.com>\n" "Last-Translator: \"Fco. Javier F. Serrador\" <fserrador@gmail.com>\n"
"Language-Team: Spanish <https://translate.fedoraproject.org/projects/" "Language-Team: Spanish <https://translate.fedoraproject.org/projects/"
"pulseaudio/pulseaudio/es/>\n" "pulseaudio/pulseaudio/es/>\n"
"Language: es\n" "Language: es\n"
@ -23,7 +23,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.15\n" "X-Generator: Weblate 5.12.2\n"
"X-Poedit-Language: Spanish\n" "X-Poedit-Language: Spanish\n"
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
@ -97,7 +97,7 @@ msgid ""
"\n" "\n"
" -n Don't load default script file\n" " -n Don't load default script file\n"
msgstr "" msgstr ""
"%s [opciones]\n" "--dl-search-path%s [opciones]\n"
"\n" "\n"
"ÓRDENES:\n" "ÓRDENES:\n"
" -h, --help Mostrar esta ayuda\n" " -h, --help Mostrar esta ayuda\n"
@ -123,8 +123,8 @@ msgstr ""
"inicio\n" "inicio\n"
" --fail[=BOOL] Salir cuando falla el inicio\n" " --fail[=BOOL] Salir cuando falla el inicio\n"
" --high-priority[=BOOL] Intentar asignar una prioridad alta\n" " --high-priority[=BOOL] Intentar asignar una prioridad alta\n"
" (solo disponible como superusuario, " " (solo disponible como admin, con "
"con SUID\n" "SUID\n"
" o con un valor RLIMIT_NICE elevado)\n" " o con un valor RLIMIT_NICE elevado)\n"
" --realtime[=BOOL] Intentar activar la programación en " " --realtime[=BOOL] Intentar activar la programación en "
"tiempo real\n" "tiempo real\n"
@ -136,19 +136,19 @@ msgstr ""
" del usuario tras el inicio\n" " del usuario tras el inicio\n"
" --disallow-exit[=BOOL] Denegar la salida a petición del " " --disallow-exit[=BOOL] Denegar la salida a petición del "
"usuario\n" "usuario\n"
" --exit-idle-time=SEGUNDOS Finalizar el servicio cuando esté " " --exit-idle-time=SEGS Finalizar el servicio cuando esté "
"inactivo y\n" "inactivo y\n"
" haya pasado este tiempo\n" " haya pasado este tiempo\n"
" --scache-idle-time=SEGUNDOS Descargar las muestras cargadas " " --scache-idle-time=SEGS Descargar las muestras cargadas "
"automáticamente\n" "automáticamente\n"
" cuando esté inactivo y haya pasado " " cuando esté inactivo y haya pasado "
"este tiempo\n" "este tiempo\n"
" --log-level[=NIVEL] Aumentar o configurar el nivel de " " --log-level[=NIVEL] Aumentar o configurar el nivel de "
"registro\n" "registro\n"
" -v --verbose Aumentar el nivel de registro\n" " -v --verbose Aumentar el nivel de registro\n"
" --log-target={auto,syslog,stderr,file:RUTA,newfile:RUTA}\n" " --log-target={auto,syslog,stderr,file:RUTA,newfile:RUTA}\n"
" Especificar el destino del registro\n" " Especificar el destino del registro\n"
" --log-meta[=BOOL] Incluir ubicaciones del código en el " " --log-meta[=BOOL] Incluir lugares del código en el "
"registro\n" "registro\n"
" --log-time[=BOOL] Incluir marcas de tiempo en el " " --log-time[=BOOL] Incluir marcas de tiempo en el "
"registro\n" "registro\n"
@ -156,16 +156,19 @@ msgstr ""
"registro\n" "registro\n"
" -p, --dl-search-path=RUTA Configurar la ruta de búsqueda de " " -p, --dl-search-path=RUTA Configurar la ruta de búsqueda de "
"objetos\n" "objetos\n"
" dinámicos compartidos (complementos)" " "
"\n" "dinámicos compartidos (complementos)\n"
" --resample-method=MÉTODO Usar el método de remuestreo " " --resample-method=MÉTODO Usar el método de remuestreo "
"especificado\n" "especificado\n"
" (Consulte los valores posibles con\n" " "
" --dump-resample-methods)\n" "(Consulte los valores posibles con\n"
" "
"--dump-resample-methods)\n"
" --use-pid-file[=BOOL] Crear un archivo PID\n" " --use-pid-file[=BOOL] Crear un archivo PID\n"
" --no-cpu-limit[=BOOL] No instalar el limitador de carga de " " --no-cpu-limit[=BOOL] No instalar el limitador de carga de "
"la CPU\n" "la CPU\n"
" en las plataformas compatibles.\n" " en las "
"plataformas compatibles.\n"
" --disable-shm[=BOOL] Desactivar el uso de memoria " " --disable-shm[=BOOL] Desactivar el uso de memoria "
"compartida\n" "compartida\n"
" --enable-memfd[=BOOL] Activar el uso de memoria compartida " " --enable-memfd[=BOOL] Activar el uso de memoria compartida "
@ -174,10 +177,12 @@ msgstr ""
"GUION DE INICIO:\n" "GUION DE INICIO:\n"
" -L, --load=\"ARGUMENTO DEL MÓDULO\" Cargar el módulo del complemento " " -L, --load=\"ARGUMENTO DEL MÓDULO\" Cargar el módulo del complemento "
"especificado\n" "especificado\n"
" con el argumento especificado\n" " "
" -F, --file=ARCHIVO Ejecutar el guion especificado\n" "con el argumento especificado\n"
" -C Abrir una línea de órdenes en el TTY " " -F, --file=ARCHIVO Ejecutar el guion "
"en\n" "especificado\n"
" -C Abrir una línea de "
"órdenes en el TTY en\n"
" ejecución tras el inicio\n" " ejecución tras el inicio\n"
" -n No cargar el archivo de órdenes " " -n No cargar el archivo de órdenes "
"predeterminado\n" "predeterminado\n"
@ -195,9 +200,9 @@ msgid ""
"--log-level expects log level argument (either numeric in range 0..4 or one " "--log-level expects log level argument (either numeric in range 0..4 or one "
"of error, warn, notice, info, debug)." "of error, warn, notice, info, debug)."
msgstr "" msgstr ""
"--log-level espera un argumento para el nivel de registro (un valor numérico " "--log-level espera un argumento para el nivel de bitácora (un valor numérico "
"en el rango de 0-4 o bien uno de estos valores: error, warn, notice, info, " "en el intervalo de 0..4 o bien uno de estos valores: error, warn, notice, "
"debug)." "info, debug)."
#: src/daemon/cmdline.c:277 #: src/daemon/cmdline.c:277
msgid "--high-priority expects boolean argument" msgid "--high-priority expects boolean argument"
@ -217,7 +222,7 @@ msgstr "--disallow-exit espera un argumento booleano"
#: src/daemon/cmdline.c:309 #: src/daemon/cmdline.c:309
msgid "--use-pid-file expects boolean argument" msgid "--use-pid-file expects boolean argument"
msgstr "--use pid-file espera un argumento booleano" msgstr "--use-pid-file espera un argumento booleano"
#: src/daemon/cmdline.c:328 #: src/daemon/cmdline.c:328
msgid "" msgid ""
@ -750,11 +755,11 @@ msgstr "Salida de juego"
#: src/modules/alsa/alsa-mixer.c:2819 src/modules/alsa/alsa-mixer.c:2820 #: src/modules/alsa/alsa-mixer.c:2819 src/modules/alsa/alsa-mixer.c:2820
msgid "Chat Output" msgid "Chat Output"
msgstr "Salida de chat" msgstr "Salida de charla"
#: src/modules/alsa/alsa-mixer.c:2821 #: src/modules/alsa/alsa-mixer.c:2821
msgid "Chat Input" msgid "Chat Input"
msgstr "Entrada de chat" msgstr "Entrada de charla"
#: src/modules/alsa/alsa-mixer.c:2822 #: src/modules/alsa/alsa-mixer.c:2822
msgid "Virtual Surround 7.1" msgid "Virtual Surround 7.1"
@ -1546,10 +1551,10 @@ msgid ""
"e.g. happen if you try to connect to a non-root PulseAudio as a root user, " "e.g. happen if you try to connect to a non-root PulseAudio as a root user, "
"over the native protocol. Don't do that.)" "over the native protocol. Don't do that.)"
msgstr "" msgstr ""
"XDG_RUNTIME_DIR (%s) no es de nuestra propiedad (usuario %d), sino del " "XDG_RUNTIME_DIR (%s) no es de nuestra propiedad (uid %d), sino del usuario "
"usuario %d. (Esto puede pasar, por ejemplo, al intentar conectarse como " "%d. (Esto puede pasar, por ejemplo, al intentar conectarse como superusuario "
"superusuario a un servidor PulseAudio que se ejecuta sin privilegios de " "a un servidor PulseAudio que se ejecuta sin privilegios de administrador "
"administrador mediante el protocolo nativo. No lo haga.)" "mediante el protocolo nativo. No lo haga.)"
#: src/pulsecore/core-util.h:97 #: src/pulsecore/core-util.h:97
msgid "yes" msgid "yes"
@ -1742,7 +1747,7 @@ msgstr "pa_stream_drain(): %s"
#: src/utils/pacat.c:194 src/utils/pacat.c:543 #: src/utils/pacat.c:194 src/utils/pacat.c:543
#, c-format #, c-format
msgid "pa_stream_begin_write() failed: %s" msgid "pa_stream_begin_write() failed: %s"
msgstr "Ha fallado pa_stream_write(): %s" msgstr "Ha fallado pa_stream_begin_write(): %s"
#: src/utils/pacat.c:244 src/utils/pacat.c:274 #: src/utils/pacat.c:244 src/utils/pacat.c:274
#, c-format #, c-format
@ -2285,7 +2290,7 @@ msgstr "NOMBRE|NÚMERO PUERTO"
#: src/utils/pacmd.c:74 src/utils/pactl.c:2658 #: src/utils/pacmd.c:74 src/utils/pactl.c:2658
msgid "CARD-NAME|CARD-#N PORT OFFSET" msgid "CARD-NAME|CARD-#N PORT OFFSET"
msgstr "NOMBRE-TARJETA|NÚMERO-TARJETA PUERTO COMPENSACIÓN" msgstr "NOMBRE-TARJETA|Nº-TARJETA PUERTO COMPENSACIÓN"
#: src/utils/pacmd.c:75 #: src/utils/pacmd.c:75
msgid "TARGET" msgid "TARGET"

View file

@ -12,7 +12,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2025-04-18 18:51+0000\n" "PO-Revision-Date: 2025-06-08 14:42+0000\n"
"Last-Translator: Salvatore Cocuzza <info@salvatorecocuzza.it>\n" "Last-Translator: Salvatore Cocuzza <info@salvatorecocuzza.it>\n"
"Language-Team: Italian <https://translate.fedoraproject.org/projects/" "Language-Team: Italian <https://translate.fedoraproject.org/projects/"
"pulseaudio/pulseaudio/it/>\n" "pulseaudio/pulseaudio/it/>\n"
@ -21,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11\n" "X-Generator: Weblate 5.11.4\n"
# mamma mia che impressione # mamma mia che impressione
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
@ -1245,7 +1245,6 @@ msgid "Virtual surround sink"
msgstr "Sink surround virtuale" msgstr "Sink surround virtuale"
#: src/modules/module-virtual-surround-sink.c:54 #: src/modules/module-virtual-surround-sink.c:54
#, fuzzy
msgid "" msgid ""
"sink_name=<name for the sink> sink_properties=<properties for the sink> " "sink_name=<name for the sink> sink_properties=<properties for the sink> "
"master=<name of sink to filter> sink_master=<name of sink to filter> " "master=<name of sink to filter> sink_master=<name of sink to filter> "
@ -2418,7 +2417,7 @@ msgstr "Recupero delle informazioni del server non riuscito: %s"
#: src/utils/pactl.c:224 src/utils/pactl.c:236 #: src/utils/pactl.c:224 src/utils/pactl.c:236
#, c-format #, c-format
msgid "%s\n" msgid "%s\n"
msgstr "" msgstr "%s\n"
#: src/utils/pactl.c:281 #: src/utils/pactl.c:281
#, c-format #, c-format
@ -2489,7 +2488,6 @@ msgid "Mic"
msgstr "Mic" msgstr "Mic"
#: src/utils/pactl.c:338 #: src/utils/pactl.c:338
#, fuzzy
msgid "Handset" msgid "Handset"
msgstr "Cuffie con microfono" msgstr "Cuffie con microfono"
@ -2584,7 +2582,6 @@ msgid "\t\t%s: %s (type: %s, priority: %u%s%s, %s)\n"
msgstr "\t\t%s: %s (tipo: %s, priorità: %u%s%s, %s)\n" msgstr "\t\t%s: %s (tipo: %s, priorità: %u%s%s, %s)\n"
#: src/utils/pactl.c:710 src/utils/pactl.c:894 src/utils/pactl.c:1256 #: src/utils/pactl.c:710 src/utils/pactl.c:894 src/utils/pactl.c:1256
#, fuzzy
msgid ", availability group: " msgid ", availability group: "
msgstr ", gruppo disponibilità: " msgstr ", gruppo disponibilità: "

View file

@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2025-04-13 20:52+0000\n" "PO-Revision-Date: 2025-07-21 10:49+0000\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n" "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <https://translate.fedoraproject.org/projects/" "Language-Team: Georgian <https://translate.fedoraproject.org/projects/"
"pulseaudio/pulseaudio/ka/>\n" "pulseaudio/pulseaudio/ka/>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n" "X-Generator: Weblate 5.12.2\n"
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
#, c-format #, c-format
@ -328,7 +328,7 @@ msgstr ""
#: src/daemon/main.c:287 src/daemon/main.c:292 #: src/daemon/main.c:287 src/daemon/main.c:292
#, c-format #, c-format
msgid "Failed to create '%s': %s" msgid "Failed to create '%s': %s"
msgstr "შეცდომა %s-ის გახსნისას: %s" msgstr "'%s'-ის შექმნა ჩავარდა: %s"
#: src/daemon/main.c:299 #: src/daemon/main.c:299
#, c-format #, c-format
@ -554,11 +554,11 @@ msgstr "გამაძლიერებლის გარეშე"
#: src/modules/alsa/alsa-mixer.c:2726 #: src/modules/alsa/alsa-mixer.c:2726
msgid "Bass Boost" msgid "Bass Boost"
msgstr "Bass-ის გაძლიერება" msgstr "ბასის გაძლიერება"
#: src/modules/alsa/alsa-mixer.c:2727 #: src/modules/alsa/alsa-mixer.c:2727
msgid "No Bass Boost" msgid "No Bass Boost"
msgstr "Bass-ის გაძლიერების გარეშე" msgstr "ბასის გაძლიერების გარეშე"
#: src/modules/alsa/alsa-mixer.c:2728 #: src/modules/alsa/alsa-mixer.c:2728
#: src/modules/bluetooth/module-bluez5-device.c:1964 src/utils/pactl.c:333 #: src/modules/bluetooth/module-bluez5-device.c:1964 src/utils/pactl.c:333
@ -1338,7 +1338,7 @@ msgstr "xcb_connect() ჩავარდა"
#: src/pulse/client-conf-x11.c:66 src/utils/pax11publish.c:102 #: src/pulse/client-conf-x11.c:66 src/utils/pax11publish.c:102
msgid "xcb_connection_has_error() returned true" msgid "xcb_connection_has_error() returned true"
msgstr "xcb_connection_has_error()-მა 1 დააბრუნა" msgstr "xcb_connection_has_error()-მა დააბრუნა ჭეშმარიტი მნისვნელობა"
#: src/pulse/client-conf-x11.c:102 #: src/pulse/client-conf-x11.c:102
msgid "Failed to parse cookie data" msgid "Failed to parse cookie data"
@ -2112,8 +2112,8 @@ msgstr "სტატისტიკის მიღების შეცდო
#, c-format #, c-format
msgid "Currently in use: %u block containing %s bytes total.\n" msgid "Currently in use: %u block containing %s bytes total.\n"
msgid_plural "Currently in use: %u blocks containing %s bytes total.\n" msgid_plural "Currently in use: %u blocks containing %s bytes total.\n"
msgstr[0] "" msgstr[0] "ამჟამად გამოიყენება: %u ბლოკი, რომელიც შეიცავს სულ %s ბაიტს.\n"
msgstr[1] "" msgstr[1] "ამჟამად გამოიყენება: %u ბლოკი, რომელიც შეიცავს სულ %s ბაიტს.\n"
#: src/utils/pactl.c:205 #: src/utils/pactl.c:205
#, c-format #, c-format
@ -2121,7 +2121,11 @@ msgid "Allocated during whole lifetime: %u block containing %s bytes total.\n"
msgid_plural "" msgid_plural ""
"Allocated during whole lifetime: %u blocks containing %s bytes total.\n" "Allocated during whole lifetime: %u blocks containing %s bytes total.\n"
msgstr[0] "" msgstr[0] ""
"გამოყოფილია მთელი სიცოცხლის განმავლობაში: %u ბლოკი, რომელიც სულ %s ბაიტს "
"შეიცავს.\n"
msgstr[1] "" msgstr[1] ""
"გამოყოფილია მთელი სიცოცხლის განმავლობაში: %u ბლოკი, რომელიც სულ %s ბაიტს "
"შეიცავს.\n"
#: src/utils/pactl.c:211 #: src/utils/pactl.c:211
#, c-format #, c-format
@ -2560,7 +2564,11 @@ msgid_plural ""
"Failed to set volume: You tried to set volumes for %d channels, whereas " "Failed to set volume: You tried to set volumes for %d channels, whereas "
"channel(s) supported = %d\n" "channel(s) supported = %d\n"
msgstr[0] "" msgstr[0] ""
"ხმის დაყენაბა ჩავარდა: სცადეთ, დაგეყენებინათ ხმა %d არხზე მაშინ, როცა "
"მხარდაჭერილი არხები = %d\n"
msgstr[1] "" msgstr[1] ""
"ხმის დაყენაბა ჩავარდა: სცადეთ, დაგეყენებინათ ხმა %d არხზე მაშინ, როცა "
"მხარდაჭერილი არხები = %d\n"
#: src/utils/pactl.c:2107 #: src/utils/pactl.c:2107
#, c-format #, c-format

View file

@ -7,7 +7,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2024-08-04 19:41+0000\n" "PO-Revision-Date: 2025-06-14 13:17+0000\n"
"Last-Translator: 김인수 <simmon@nplob.com>\n" "Last-Translator: 김인수 <simmon@nplob.com>\n"
"Language-Team: Korean <https://translate.fedoraproject.org/projects/" "Language-Team: Korean <https://translate.fedoraproject.org/projects/"
"pulseaudio/pulseaudio/ko/>\n" "pulseaudio/pulseaudio/ko/>\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.6.2\n" "X-Generator: Weblate 5.11.4\n"
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
#, c-format #, c-format
@ -230,7 +230,7 @@ msgstr "--disable-shm 에는 부울 인자 값이 필요합니다"
#: src/daemon/cmdline.c:397 #: src/daemon/cmdline.c:397
msgid "--enable-memfd expects boolean argument" msgid "--enable-memfd expects boolean argument"
msgstr "--enable-memfd는 부울 인수가 필요합니다" msgstr "--enable-memfd 는 부울 인수가 예상됩니다"
#: src/daemon/daemon-conf.c:270 #: src/daemon/daemon-conf.c:270
#, c-format #, c-format
@ -423,9 +423,8 @@ msgstr "명령어 행 분석 실패."
msgid "" msgid ""
"System mode refused for non-root user. Only starting the D-Bus server lookup " "System mode refused for non-root user. Only starting the D-Bus server lookup "
"service." "service."
msgstr "" msgstr "non-root 사용자에게 시스템 방식이 거부되었습니다. D-Bus 서버 검색 서비스만 "
"비 루트 사용자의 시스템 모드 전환을 거부했습니다. D-Bus 서버 검색 서비스만 시" "시작합니다."
"작합니다."
#: src/daemon/main.c:788 #: src/daemon/main.c:788
#, c-format #, c-format
@ -436,9 +435,8 @@ msgstr "데몬 종료 실패: %s"
msgid "" msgid ""
"This program is not intended to be run as root (unless --system is " "This program is not intended to be run as root (unless --system is "
"specified)." "specified)."
msgstr "" msgstr "이와 같은 프로그램은 root로 동작하도록 의도되지 않았습니다 (--system 이 "
"이 프로그램은 루트 계정으로 실행하도록 만들지 않았습니다. (실행하려면 --" "지정되지 않은 경우)."
"system을 명기하십시오)."
#: src/daemon/main.c:820 #: src/daemon/main.c:820
msgid "Root privileges required." msgid "Root privileges required."
@ -451,24 +449,22 @@ msgstr "--start는 시스템 인스턴스에 대해 지원되지 않습니다."
#: src/daemon/main.c:867 #: src/daemon/main.c:867
#, c-format #, c-format
msgid "User-configured server at %s, refusing to start/autospawn." msgid "User-configured server at %s, refusing to start/autospawn."
msgstr "%s에서 사용자 설정한 서버, start/autospawn을 거부하고 있습니다." msgstr "%s에 User-configured 서버, start/autospawn을 거부하고 있습니다."
#: src/daemon/main.c:873 #: src/daemon/main.c:873
#, c-format #, c-format
msgid "" msgid ""
"User-configured server at %s, which appears to be local. Probing deeper." "User-configured server at %s, which appears to be local. Probing deeper."
msgstr "%s에 사용자가 설정한 서버, 이는 로컬에 있습니다. 상세히 조사합니다." msgstr "%s에 User-configured 서버, 이는 로컬에 있습니다. 상세히 조사합니다."
#: src/daemon/main.c:878 #: src/daemon/main.c:878
msgid "Running in system mode, but --disallow-exit not set." msgid "Running in system mode, but --disallow-exit not set."
msgstr "" msgstr "시스템 방식에서 실행 중이지만, --disallow-exit 를 설정하지 않았습니다."
"시스템 모드에서 실행 중입니다. 하지만 --disallow-exit을 설정하지 않았습니다."
#: src/daemon/main.c:881 #: src/daemon/main.c:881
msgid "Running in system mode, but --disallow-module-loading not set." msgid "Running in system mode, but --disallow-module-loading not set."
msgstr "" msgstr "시스템 방식에서 실행 중이지만, --disallow-module-loading 를 설정하지 "
"시스템 모드에서 실행 중입니다. 하지만 --disallow-module-loading을 설정하지 않" "않았습니다."
"았습니다."
#: src/daemon/main.c:884 #: src/daemon/main.c:884
msgid "Running in system mode, forcibly disabling SHM mode." msgid "Running in system mode, forcibly disabling SHM mode."
@ -1014,11 +1010,11 @@ msgstr "전화기"
#: src/modules/bluetooth/module-bluez5-device.c:2042 #: src/modules/bluetooth/module-bluez5-device.c:2042
msgid "High Fidelity Playback (A2DP Sink)" msgid "High Fidelity Playback (A2DP Sink)"
msgstr "Hi-Fi 재생 (A2DP Sink)" msgstr "고음질 재생 (A2DP Sink)"
#: src/modules/bluetooth/module-bluez5-device.c:2054 #: src/modules/bluetooth/module-bluez5-device.c:2054
msgid "High Fidelity Capture (A2DP Source)" msgid "High Fidelity Capture (A2DP Source)"
msgstr "Hi-Fi 캡쳐 (A2DP Source)" msgstr "고음질 캡쳐 (A2DP Source)"
#: src/modules/bluetooth/module-bluez5-device.c:2066 #: src/modules/bluetooth/module-bluez5-device.c:2066
msgid "Headset Head Unit (HSP)" msgid "Headset Head Unit (HSP)"
@ -1479,9 +1475,9 @@ msgid ""
"e.g. happen if you try to connect to a non-root PulseAudio as a root user, " "e.g. happen if you try to connect to a non-root PulseAudio as a root user, "
"over the native protocol. Don't do that.)" "over the native protocol. Don't do that.)"
msgstr "" msgstr ""
"XDG_RUNTIME_DIR (%s) 우리(uid %d)가 아니라 uid %d가 소유합니다! (자체 프로" "XDG_RUNTIME_DIR (%s) 우리(uid %d)가 아니라 uid %d가 소유합니다! (자체 "
"토콜로 비 루트 펄스오디오 사용자가 루트 사용자 권한으로 연결할 때 이 문제가 " "통신규약을 통해 root 사용자로 root가 아닌 PluseAudio에 연결을 시도 할 때에 "
"일어납니다. 그렇게 하지 마십시오.)" "예시로 발생 할 수 있습니다. 그렇게 하지 않습니다.)"
#: src/pulsecore/core-util.h:97 #: src/pulsecore/core-util.h:97
msgid "yes" msgid "yes"

View file

@ -11,7 +11,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2024-10-11 16:01+0000\n" "PO-Revision-Date: 2025-05-10 22:55+0000\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n" "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/" "Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/"
"projects/pulseaudio/pulseaudio/pt_BR/>\n" "projects/pulseaudio/pulseaudio/pt_BR/>\n"
@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.7.2\n" "X-Generator: Weblate 5.11.3\n"
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
#, c-format #, c-format
@ -1908,7 +1908,7 @@ msgid "pa_stream_update_timing_info() failed: %s"
msgstr "pa_stream_update_timing_info() falhou: %s" msgstr "pa_stream_update_timing_info() falhou: %s"
#: src/utils/pacat.c:676 #: src/utils/pacat.c:676
#, fuzzy, c-format #, c-format
msgid "" msgid ""
"%s [options]\n" "%s [options]\n"
"%s\n" "%s\n"
@ -1987,62 +1987,58 @@ msgstr ""
" -v, --verbose Habilita operações no modo " " -v, --verbose Habilita operações no modo "
"detalhado\n" "detalhado\n"
"\n" "\n"
" -s, --server=SERVIDOR O nome do servidor a conectar-se\n" " -s, --server=SERVIDOR O nome do servidor para se conectar\n"
" -d, --device=DISPOSITIVO O nome do destino/fonte a conectar-" " -d, --device=DISPOSITIVO O nome do destino/fonte para se "
"se\n" "conectar\n"
" -n, --client-name=NOME Como chamar este cliente no " " -n, --client-name=NOME Como chamar este cliente no "
"servidor\n" "servidor\n"
" --stream-name=NOME Como chamar este fluxo no servidor\n" " --stream-name=NOME Como chamar este fluxo no servidor\n"
" --volume=VOLUME Especifica a faixa (linear) inicial\n" " --volume=VOLUME Especifica o volume (linear) inicial "
" de volume no intervalo 0...65536\n" "no intervalo 0...65536\n"
" --rate=TAXA_DE_AMOSTRAGEM Taxa de amostragem, Hz (padrão " " --rate=TAXA_DE_AMOSTRAGEM Taxa de amostragem em Hz (padrão: "
"44100)\n" "44100)\n"
" --format=FORMATO_DE_AMOSTRAGEM Tipo de amostragem, veja\n" " --format=FORMATO_DE_AMOSTRAGEM Formato da amostragem, veja\n"
" https://www.freedesktop.org/wiki/" " https://www.freedesktop.org/wiki/"
"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n" "Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
" para valores possíveis (padrão: " " para valores possíveis (padrão: "
"s16ne)\n" "s16ne)\n"
" --channels=CANAIS O número de canais, 1 para mono,\n" " --channels=CANAIS O número de canais, 1 para mono, 2 "
" 2 para estéreo (padrão: 2)\n" "para estéreo\n"
" --channel-map=MAPA_DE_CANAIS Mapeamento de canais a ser usado no\n" " (padrão: 2)\n"
" lugar do padrão\n" " --channel-map=MAPA_DE_CANAIS Mapeamento de canais para usar em "
" --fix-format Obtém o formato da amostragem do\n" "vez do padrão\n"
" destino/fonte onde o fluxo está\n" " --fix-format Obtém o formato da amostragem do "
" sendo conectado.\n" "destino/fonte onde\n"
" --fix-rate Obtém a taxa de amostragem do\n" " o fluxo está sendo conectado.\n"
" destino/fonte onde o fluxo está\n" " --fix-rate Obtém a taxa de amostragem do "
" sendo conectado.\n" "destino/fonte onde\n"
" --fix-channels Obtém o número de canais e o mapa " " o fluxo está sendo conectado.\n"
"de\n" " --fix-channels Obtém o número de canais e o mapa de "
" canais do destino onde o fluxo está\n" "canais do destino\n"
" sendo conectado.\n" " onde o fluxo está sendo conectado.\n"
" --no-remix Não faz upmix nem downmix dos " " --no-remix Não faz upmix nem downmix dos canais."
"canais.\n" "\n"
" --no-remap Mapeia os canais por índice em vez\n" " --no-remap Mapeia os canais por índice em vez "
" de nome\n" "de nome.\n"
" --latency=BYTES Requisita a latência especificada " " --latency=BYTES Requisita a latência especificada em "
"em\n"
" bytes.\n"
" --process-time=BYTES Requisita o tempo de processo\n"
" especificado por requisições em "
"bytes.\n" "bytes.\n"
" --latency-msec=MSEGUNDOS Requisita a latência especificada " " --process-time=BYTES Requisita o tempo de processo por "
"em\n" "requisições em bytes.\n"
" milissegundos.\n" " --latency-msec=MSEGUNDOS Requisita a latência especificada em "
" --process-time-msec=MSEGUNDOS Requisita a o tempo do processo por\n" "milissegundos.\n"
" requisição em milissegundos.\n" " --process-time-msec=MSEGUNDOS Requisita o tempo de processo por "
"requisições em milissegundos.\n"
" --property=PROPRIEDADE=VALOR Define a propriedade especificada " " --property=PROPRIEDADE=VALOR Define a propriedade especificada "
"para\n" "para o valor especificado.\n"
" o valor especificado.\n"
" --raw Grava/reproduz dados PCM não " " --raw Grava/reproduz dados PCM não "
"tratados.\n" "tratados.\n"
" --passthrough Dados para conversão.\n" " --passthrough Dados para conversão.\n"
" --file-format[=FORMATO_ARQUIVO] Grava/reproduz dados PCM " " --file-format[=FORMATO_ARQUIVO] Grava/reproduz dados PCM formatados."
"formatados.\n" "\n"
" --list-file-formats Lista formatos de arquivo " " --list-file-formats Lista formatos de arquivo "
"disponíveis.\n" "disponíveis.\n"
" --monitor-stream=ÍNDICE Grava da entrada do destino com " " --monitor-stream=ÍNDICE Grava da entrada do destino com "
"índice.\n" "índice ÍNDICE.\n"
#: src/utils/pacat.c:793 #: src/utils/pacat.c:793
msgid "Play back encoded audio files on a PulseAudio sound server." msgid "Play back encoded audio files on a PulseAudio sound server."
@ -2875,11 +2871,12 @@ msgstr "mensagem list-handlers falhou: %s"
#: src/utils/pactl.c:1711 src/utils/pactl.c:1760 #: src/utils/pactl.c:1711 src/utils/pactl.c:1760
msgid "list-handlers message response could not be parsed correctly" msgid "list-handlers message response could not be parsed correctly"
msgstr "a resposta da mensagem list-handlers não pôde ser tratada corretamente" msgstr ""
"a resposta da mensagem de list-handlers não pôde ser tratada corretamente"
#: src/utils/pactl.c:1718 #: src/utils/pactl.c:1718
msgid "list-handlers message response is not a JSON array" msgid "list-handlers message response is not a JSON array"
msgstr "a resposta da mensagem list-handlers não é um array JSON" msgstr "a resposta da mensagem de list-handlers não é um array JSON"
#: src/utils/pactl.c:1729 #: src/utils/pactl.c:1729
#, c-format #, c-format
@ -3051,7 +3048,7 @@ msgstr ""
"padrão.\n" "padrão.\n"
#: src/utils/pactl.c:2664 #: src/utils/pactl.c:2664
#, fuzzy, c-format #, c-format
msgid "" msgid ""
"\n" "\n"
" -h, --help Show this help\n" " -h, --help Show this help\n"
@ -3068,7 +3065,9 @@ msgstr ""
" -h, --help Mostra esta ajuda\n" " -h, --help Mostra esta ajuda\n"
" --version Mostra a versão\n" " --version Mostra a versão\n"
"\n" "\n"
" -s, --server=SERVIDOR Nome do servidor a ser conectado\n" " -f, --format=FORMATO O formato da saída. \"normal\" ou "
"\"json\"\n"
" -s, --server=SERVIDOR Nome do servidor para se conectar\n"
" -n, --client-name=NOME Como chamar este cliente no " " -n, --client-name=NOME Como chamar este cliente no "
"servidor\n" "servidor\n"
@ -3084,9 +3083,9 @@ msgstr ""
"Vinculado com libpulse %s\n" "Vinculado com libpulse %s\n"
#: src/utils/pactl.c:2751 #: src/utils/pactl.c:2751
#, fuzzy, c-format #, c-format
msgid "Invalid format value '%s'" msgid "Invalid format value '%s'"
msgstr "Nome do fluxo “%s” inválido" msgstr "Valor de formato “%s” inválido"
#: src/utils/pactl.c:2778 #: src/utils/pactl.c:2778
#, c-format #, c-format

View file

@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2025-02-23 20:53+0000\n" "PO-Revision-Date: 2025-05-11 11:49+0000\n"
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n" "Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
"Language-Team: Romanian <https://translate.fedoraproject.org/projects/" "Language-Team: Romanian <https://translate.fedoraproject.org/projects/"
"pulseaudio/pulseaudio/ro/>\n" "pulseaudio/pulseaudio/ro/>\n"
@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n" "20)) ? 1 : 2;\n"
"X-Generator: Weblate 5.10\n" "X-Generator: Weblate 5.11.3\n"
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
#, c-format #, c-format
@ -502,7 +502,7 @@ msgstr ""
#: src/daemon/main.c:922 #: src/daemon/main.c:922
msgid "Failed to acquire stdio." msgid "Failed to acquire stdio."
msgstr "Nu s-a reușit să se achizționeze stdio." msgstr "Nu s-a reușit să se achiziționeze stdio."
#: src/daemon/main.c:928 src/daemon/main.c:999 #: src/daemon/main.c:928 src/daemon/main.c:999
#, c-format #, c-format
@ -2135,7 +2135,7 @@ msgstr "Nu s-a putut determina specificația eșantionului din fișier."
#: src/utils/pacat.c:1100 #: src/utils/pacat.c:1100
msgid "Warning: Failed to determine channel map from file." msgid "Warning: Failed to determine channel map from file."
msgstr "Avertisment: Nu s-a reușit determinarea schemei canalelor din fișier." msgstr "Avertisment: Nu s-a reușit să se determine schema canalelor din fișier."
#: src/utils/pacat.c:1111 #: src/utils/pacat.c:1111
msgid "Channel map doesn't match sample specification" msgid "Channel map doesn't match sample specification"

View file

@ -10,8 +10,8 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2023-09-12 13:35+0000\n" "PO-Revision-Date: 2025-05-11 00:38+0000\n"
"Last-Translator: \"Sergey A.\" <sw@atrus.ru>\n" "Last-Translator: \"Sergey A.\" <Ser82-png@yandex.ru>\n"
"Language-Team: Russian <https://translate.fedoraproject.org/projects/" "Language-Team: Russian <https://translate.fedoraproject.org/projects/"
"pulseaudio/pulseaudio/ru/>\n" "pulseaudio/pulseaudio/ru/>\n"
"Language: ru\n" "Language: ru\n"
@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.0.1\n" "X-Generator: Weblate 5.11.3\n"
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
#, c-format #, c-format
@ -397,7 +397,7 @@ msgstr ""
#: src/daemon/ltdl-bind-now.c:144 #: src/daemon/ltdl-bind-now.c:144
msgid "Failed to add bind-now-loader." msgid "Failed to add bind-now-loader."
msgstr "Не удалось добавить новый загрузчик bind-now." msgstr "Не удалось добавить bind-now-loader."
#: src/daemon/main.c:265 #: src/daemon/main.c:265
#, c-format #, c-format

View file

@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/"
"issues/new\n" "issues/new\n"
"POT-Creation-Date: 2022-06-18 09:49+0300\n" "POT-Creation-Date: 2022-06-18 09:49+0300\n"
"PO-Revision-Date: 2024-08-17 18:38+0000\n" "PO-Revision-Date: 2025-07-25 04:53+0000\n"
"Last-Translator: Martin Srebotnjak <miles@filmsi.net>\n" "Last-Translator: Martin Srebotnjak <miles@filmsi.net>\n"
"Language-Team: Slovenian <https://translate.fedoraproject.org/projects/" "Language-Team: Slovenian <https://translate.fedoraproject.org/projects/"
"pulseaudio/pulseaudio/sl/>\n" "pulseaudio/pulseaudio/sl/>\n"
@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
"n%100==4 ? 2 : 3;\n" "n%100==4 ? 2 : 3;\n"
"X-Generator: Weblate 5.6.2\n" "X-Generator: Weblate 5.12.2\n"
#: src/daemon/cmdline.c:113 #: src/daemon/cmdline.c:113
#, c-format #, c-format
@ -447,7 +447,7 @@ msgstr "Ni uspelo ubiti zalednega procesa: %s"
#: src/daemon/main.c:817 #: src/daemon/main.c:817
msgid "This program is not intended to be run as root (unless --system is specified)." msgid "This program is not intended to be run as root (unless --system is specified)."
msgstr "Ta program ni namenjen zagonu kot root (razen če je določeno --sistem)." msgstr "Ta program ni namenjen zagonu kot root (razen če je določeno --system)."
#: src/daemon/main.c:820 #: src/daemon/main.c:820
msgid "Root privileges required." msgid "Root privileges required."
@ -1526,7 +1526,7 @@ msgid ""
"happen if you try to connect to a non-root PulseAudio as a root user, over the native " "happen if you try to connect to a non-root PulseAudio as a root user, over the native "
"protocol. Don't do that.)" "protocol. Don't do that.)"
msgstr "" msgstr ""
"XDG_RUNTIME_DIR (%s) ni v naši lasti (uiid %d), ampak v lasti uid %d (to se " "XDG_RUNTIME_DIR (%s) ni v naši lasti (uid %d), ampak v lasti uid %d (to se "
"lahko npr. zgodi, če se poskušate povezati z nekorenskim PulseAudio kot " "lahko npr. zgodi, če se poskušate povezati z nekorenskim PulseAudio kot "
"korenski uporabnik prek izvornega protokola; ne počnite tega)!" "korenski uporabnik prek izvornega protokola; ne počnite tega)!"
@ -1966,7 +1966,7 @@ msgstr ""
"uporabiti namesto privzete\n" "uporabiti namesto privzete\n"
" --fix-format Vzemite obliko vzorca iz ponora/" " --fix-format Vzemite obliko vzorca iz ponora/"
"vira, s katerim je tok povezan.\n" "vira, s katerim je tok povezan.\n"
" fix-rate Hitrost vzorčenja vzemite iz ponora/" " --fix-rate Hitrost vzorčenja vzemite iz ponora/"
"vira, s katerim je tok povezan.\n" "vira, s katerim je tok povezan.\n"
" --fix-channels Vzame število kanalov in preslikavo " " --fix-channels Vzame število kanalov in preslikavo "
"kanalov\n" "kanalov\n"

View file

@ -195,6 +195,7 @@ enum {
static void userdata_free(struct userdata *u); static void userdata_free(struct userdata *u);
static int unsuspend(struct userdata *u, bool recovering); static int unsuspend(struct userdata *u, bool recovering);
static void sync_mixer(struct userdata *u, pa_device_port *port);
/* FIXME: Is there a better way to do this than device names? */ /* FIXME: Is there a better way to do this than device names? */
static bool is_iec958(struct userdata *u) { static bool is_iec958(struct userdata *u) {
@ -1087,6 +1088,12 @@ static void suspend(struct userdata *u) {
pa_sink_set_max_rewind_within_thread(u->sink, 0); pa_sink_set_max_rewind_within_thread(u->sink, 0);
pa_sink_set_max_request_within_thread(u->sink, 0); pa_sink_set_max_request_within_thread(u->sink, 0);
/* Disabling the UCM devices may save some power. */
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(u->sink->active_port);
pa_alsa_ucm_port_device_disable(data);
}
pa_log_info("Device suspended..."); pa_log_info("Device suspended...");
} }
@ -1202,6 +1209,13 @@ static int unsuspend(struct userdata *u, bool recovering) {
pa_log_info("Trying resume..."); pa_log_info("Trying resume...");
/* We disable all UCM devices when suspending, so let's enable them again. */
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(u->sink->active_port);
pa_alsa_ucm_port_device_enable(data);
sync_mixer(u, u->sink->active_port);
}
if ((is_iec958(u) || is_hdmi(u)) && pa_sink_is_passthrough(u->sink)) { if ((is_iec958(u) || is_hdmi(u)) && pa_sink_is_passthrough(u->sink)) {
/* Need to open device in NONAUDIO mode */ /* Need to open device in NONAUDIO mode */
int len = strlen(u->device_name) + 8; int len = strlen(u->device_name) + 8;
@ -1508,6 +1522,12 @@ static void sink_get_volume_cb(pa_sink *s) {
pa_assert(u->mixer_path); pa_assert(u->mixer_path);
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0)
return;
}
if (pa_alsa_path_get_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r) < 0) if (pa_alsa_path_get_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r) < 0)
return; return;
@ -1538,6 +1558,12 @@ static void sink_set_volume_cb(pa_sink *s) {
pa_assert(u->mixer_path); pa_assert(u->mixer_path);
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0)
return;
}
/* Shift up by the base volume */ /* Shift up by the base volume */
pa_sw_cvolume_divide_scalar(&r, &s->real_volume, s->base_volume); pa_sw_cvolume_divide_scalar(&r, &s->real_volume, s->base_volume);
@ -1601,6 +1627,12 @@ static void sink_write_volume_cb(pa_sink *s) {
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
pa_assert(s->flags & PA_SINK_DEFERRED_VOLUME); pa_assert(s->flags & PA_SINK_DEFERRED_VOLUME);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0)
return;
}
/* Shift up by the base volume */ /* Shift up by the base volume */
pa_sw_cvolume_divide_scalar(&hw_vol, &hw_vol, s->base_volume); pa_sw_cvolume_divide_scalar(&hw_vol, &hw_vol, s->base_volume);
@ -1639,6 +1671,14 @@ static int sink_get_mute_cb(pa_sink *s, bool *mute) {
pa_assert(u->mixer_path); pa_assert(u->mixer_path);
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0) {
*mute = s->muted;
return 0;
}
}
if (pa_alsa_path_get_mute(u->mixer_path, u->mixer_handle, mute) < 0) if (pa_alsa_path_get_mute(u->mixer_path, u->mixer_handle, mute) < 0)
return -1; return -1;
@ -1652,6 +1692,12 @@ static void sink_set_mute_cb(pa_sink *s) {
pa_assert(u->mixer_path); pa_assert(u->mixer_path);
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0)
return;
}
pa_alsa_path_set_mute(u->mixer_path, u->mixer_handle, s->muted); pa_alsa_path_set_mute(u->mixer_path, u->mixer_handle, s->muted);
} }

View file

@ -176,6 +176,7 @@ enum {
static void userdata_free(struct userdata *u); static void userdata_free(struct userdata *u);
static int unsuspend(struct userdata *u, bool recovering); static int unsuspend(struct userdata *u, bool recovering);
static void sync_mixer(struct userdata *u, pa_device_port *port);
static pa_hook_result_t reserve_cb(pa_reserve_wrapper *r, void *forced, struct userdata *u) { static pa_hook_result_t reserve_cb(pa_reserve_wrapper *r, void *forced, struct userdata *u) {
pa_assert(r); pa_assert(r);
@ -995,6 +996,12 @@ static void suspend(struct userdata *u) {
/* Close PCM device */ /* Close PCM device */
close_pcm(u); close_pcm(u);
/* Disabling the UCM devices may save some power. */
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(u->source->active_port);
pa_alsa_ucm_port_device_disable(data);
}
pa_log_info("Device suspended..."); pa_log_info("Device suspended...");
} }
@ -1085,6 +1092,13 @@ static int unsuspend(struct userdata *u, bool recovering) {
pa_log_info("Trying resume..."); pa_log_info("Trying resume...");
/* We disable all UCM devices when suspending, so let's enable them again. */
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(u->source->active_port);
pa_alsa_ucm_port_device_enable(data);
sync_mixer(u, u->source->active_port);
}
/* /*
* On some machines, during the system suspend and resume, the thread_func could receive * On some machines, during the system suspend and resume, the thread_func could receive
* POLLERR events before the dev nodes in /dev/snd/ are accessible, and thread_func calls * POLLERR events before the dev nodes in /dev/snd/ are accessible, and thread_func calls
@ -1382,6 +1396,12 @@ static void source_get_volume_cb(pa_source *s) {
pa_assert(u->mixer_path); pa_assert(u->mixer_path);
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0)
return;
}
if (pa_alsa_path_get_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r) < 0) if (pa_alsa_path_get_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r) < 0)
return; return;
@ -1412,6 +1432,12 @@ static void source_set_volume_cb(pa_source *s) {
pa_assert(u->mixer_path); pa_assert(u->mixer_path);
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0)
return;
}
/* Shift up by the base volume */ /* Shift up by the base volume */
pa_sw_cvolume_divide_scalar(&r, &s->real_volume, s->base_volume); pa_sw_cvolume_divide_scalar(&r, &s->real_volume, s->base_volume);
@ -1475,6 +1501,12 @@ static void source_write_volume_cb(pa_source *s) {
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
pa_assert(s->flags & PA_SOURCE_DEFERRED_VOLUME); pa_assert(s->flags & PA_SOURCE_DEFERRED_VOLUME);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0)
return;
}
/* Shift up by the base volume */ /* Shift up by the base volume */
pa_sw_cvolume_divide_scalar(&hw_vol, &hw_vol, s->base_volume); pa_sw_cvolume_divide_scalar(&hw_vol, &hw_vol, s->base_volume);
@ -1513,6 +1545,14 @@ static int source_get_mute_cb(pa_source *s, bool *mute) {
pa_assert(u->mixer_path); pa_assert(u->mixer_path);
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0) {
*mute = s->muted;
return 0;
}
}
if (pa_alsa_path_get_mute(u->mixer_path, u->mixer_handle, mute) < 0) if (pa_alsa_path_get_mute(u->mixer_path, u->mixer_handle, mute) < 0)
return -1; return -1;
@ -1526,6 +1566,12 @@ static void source_set_mute_cb(pa_source *s) {
pa_assert(u->mixer_path); pa_assert(u->mixer_path);
pa_assert(u->mixer_handle); pa_assert(u->mixer_handle);
if (u->ucm_context) {
pa_alsa_ucm_port_data *data = PA_DEVICE_PORT_DATA(s->active_port);
if (pa_alsa_ucm_port_device_status(data) <= 0)
return;
}
pa_alsa_path_set_mute(u->mixer_path, u->mixer_handle, s->muted); pa_alsa_path_set_mute(u->mixer_path, u->mixer_handle, s->muted);
} }

View file

@ -2535,6 +2535,18 @@ static void ucm_port_data_free(pa_device_port *port) {
pa_xfree(ucm_port->eld_mixer_device_name); pa_xfree(ucm_port->eld_mixer_device_name);
} }
int pa_alsa_ucm_port_device_enable(pa_alsa_ucm_port_data *data) {
return ucm_device_enable(data->ucm, data->device);
}
int pa_alsa_ucm_port_device_disable(pa_alsa_ucm_port_data *data) {
return ucm_device_disable(data->ucm, data->device);
}
long pa_alsa_ucm_port_device_status(pa_alsa_ucm_port_data *data) {
return ucm_device_status(data->ucm, data->device);
}
#else /* HAVE_ALSA_UCM */ #else /* HAVE_ALSA_UCM */
/* Dummy functions for systems without UCM support */ /* Dummy functions for systems without UCM support */
@ -2591,4 +2603,16 @@ void pa_alsa_ucm_roled_stream_begin(pa_alsa_ucm_config *ucm, const char *role, p
void pa_alsa_ucm_roled_stream_end(pa_alsa_ucm_config *ucm, const char *role, pa_direction_t dir) { void pa_alsa_ucm_roled_stream_end(pa_alsa_ucm_config *ucm, const char *role, pa_direction_t dir) {
} }
int pa_alsa_ucm_port_device_enable(pa_alsa_ucm_port_data *data) {
return -1;
}
int pa_alsa_ucm_port_device_disable(pa_alsa_ucm_port_data *data) {
return -1;
}
long pa_alsa_ucm_port_device_status(pa_alsa_ucm_port_data *data) {
return -1;
}
#endif #endif

View file

@ -286,6 +286,10 @@ struct pa_alsa_ucm_port_data {
int eld_device; /* PCM device number */ int eld_device; /* PCM device number */
}; };
int pa_alsa_ucm_port_device_enable(pa_alsa_ucm_port_data *data);
int pa_alsa_ucm_port_device_disable(pa_alsa_ucm_port_data *data);
long pa_alsa_ucm_port_device_status(pa_alsa_ucm_port_data *data);
struct pa_alsa_ucm_volume { struct pa_alsa_ucm_volume {
char *mixer_elem; /* mixer element identifier */ char *mixer_elem; /* mixer element identifier */
char *master_elem; /* master mixer element identifier */ char *master_elem; /* master mixer element identifier */

View file

@ -1841,8 +1841,18 @@ static void get_sink_mute_callback(pa_context *c, const pa_sink_info *i, int is_
pa_assert(i); pa_assert(i);
printf(("Mute: %s\n"), if (format == JSON) {
pa_yes_no_localised(i->mute)); pa_json_encoder *encoder = pa_json_encoder_new();
pa_json_encoder_begin_element_object(encoder);
pa_json_encoder_add_member_bool(encoder, "mute", i->mute);
pa_json_encoder_end_object(encoder);
char* json_str = pa_json_encoder_to_string_free(encoder);
printf("%s\n", json_str);
pa_xfree(json_str);
} else {
printf(("Mute: %s\n"),
pa_yes_no_localised(i->mute));
}
complete_action(); complete_action();
} }
@ -1860,10 +1870,21 @@ static void get_sink_volume_callback(pa_context *c, const pa_sink_info *i, int i
pa_assert(i); pa_assert(i);
char cv[PA_CVOLUME_SNPRINT_VERBOSE_MAX]; char cv[PA_CVOLUME_SNPRINT_VERBOSE_MAX];
printf(("Volume: %s\n" if (format == JSON) {
" balance %0.2f\n"), pa_json_encoder *encoder = pa_json_encoder_new();
pa_cvolume_snprint_verbose(cv, sizeof(cv), &i->volume, &i->channel_map, true), pa_json_encoder_begin_element_object(encoder);
pa_cvolume_get_balance(&i->volume, &i->channel_map)); pa_json_encoder_add_member_raw_json(encoder, "volume", pa_cvolume_to_json_object(&i->volume, &i->channel_map, i->flags & PA_SINK_DECIBEL_VOLUME));
pa_json_encoder_add_member_double(encoder, "balance", pa_cvolume_get_balance(&i->volume, &i->channel_map), 2);
pa_json_encoder_end_object(encoder);
char* json_str = pa_json_encoder_to_string_free(encoder);
printf("%s\n", json_str);
pa_xfree(json_str);
} else {
printf(("Volume: %s\n"
" balance %0.2f\n"),
pa_cvolume_snprint_verbose(cv, sizeof(cv), &i->volume, &i->channel_map, true),
pa_cvolume_get_balance(&i->volume, &i->channel_map));
}
complete_action(); complete_action();
} }
@ -1907,8 +1928,18 @@ static void get_source_mute_callback(pa_context *c, const pa_source_info *i, int
pa_assert(i); pa_assert(i);
printf(("Mute: %s\n"), if (format == JSON) {
pa_yes_no_localised(i->mute)); pa_json_encoder *encoder = pa_json_encoder_new();
pa_json_encoder_begin_element_object(encoder);
pa_json_encoder_add_member_bool(encoder, "mute", i->mute);
pa_json_encoder_end_object(encoder);
char* json_str = pa_json_encoder_to_string_free(encoder);
printf("%s\n", json_str);
pa_xfree(json_str);
} else {
printf(("Mute: %s\n"),
pa_yes_no_localised(i->mute));
}
complete_action(); complete_action();
} }
@ -1926,10 +1957,21 @@ static void get_source_volume_callback(pa_context *c, const pa_source_info *i, i
pa_assert(i); pa_assert(i);
char cv[PA_CVOLUME_SNPRINT_VERBOSE_MAX]; char cv[PA_CVOLUME_SNPRINT_VERBOSE_MAX];
printf(("Volume: %s\n" if (format == JSON) {
" balance %0.2f\n"), pa_json_encoder *encoder = pa_json_encoder_new();
pa_cvolume_snprint_verbose(cv, sizeof(cv), &i->volume, &i->channel_map, true), pa_json_encoder_begin_element_object(encoder);
pa_cvolume_get_balance(&i->volume, &i->channel_map)); pa_json_encoder_add_member_raw_json(encoder, "volume", pa_cvolume_to_json_object(&i->volume, &i->channel_map, i->flags & PA_SINK_DECIBEL_VOLUME));
pa_json_encoder_add_member_double(encoder, "balance", pa_cvolume_get_balance(&i->volume, &i->channel_map), 2);
pa_json_encoder_end_object(encoder);
char* json_str = pa_json_encoder_to_string_free(encoder);
printf("%s\n", json_str);
pa_xfree(json_str);
} else {
printf(("Volume: %s\n"
" balance %0.2f\n"),
pa_cvolume_snprint_verbose(cv, sizeof(cv), &i->volume, &i->channel_map, true),
pa_cvolume_get_balance(&i->volume, &i->channel_map));
}
complete_action(); complete_action();
} }