[pulseaudio-commits] 8 commits - bootstrap.sh configure.ac doc/html2txt doc/meson.build .gitignore Makefile.am meson.build meson_options.txt po/id.po po/ko.po po/LINGUAS po/Makevars po/meson.build po/pavucontrol.pot po/POTFILES.in src/Makefile.am src/meson.build src/pavucontrol.desktop.in src/pavucontrol.glade src/sinkwidget.cc src/sinkwidget.h

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Mar 31 03:03:54 UTC 2022


 .gitignore                 |    4 
 Makefile.am                |    3 
 bootstrap.sh               |    1 
 configure.ac               |    6 
 doc/html2txt               |    2 
 doc/meson.build            |   34 ++
 meson.build                |   41 ++
 meson_options.txt          |    3 
 po/LINGUAS                 |    1 
 po/Makevars                |   78 +++++
 po/POTFILES.in             |    1 
 po/id.po                   |  643 +++++++++++++++++++++++++++++++++++++++++++++
 po/ko.po                   |  141 ++++-----
 po/meson.build             |    4 
 po/pavucontrol.pot         |   84 +++--
 src/Makefile.am            |    5 
 src/meson.build            |   34 ++
 src/pavucontrol.desktop.in |    8 
 src/pavucontrol.glade      |   26 +
 src/sinkwidget.cc          |   22 +
 src/sinkwidget.h           |    2 
 21 files changed, 1015 insertions(+), 128 deletions(-)

New commits:
commit 964f2987a46aa984d9ba83369b1f27c0bb28e9af
Author: Arun Raghavan <arun at asymptotic.io>
Date:   Sat Jan 15 13:45:00 2022 -0500

    Fix warning in .desktop file
    
    With the underscore, we got:
    
    ../src/pavucontrol.desktop.in:12:0: warning: invalid non-blank line

diff --git a/src/pavucontrol.desktop.in b/src/pavucontrol.desktop.in
index 7499e2e..0298219 100644
--- a/src/pavucontrol.desktop.in
+++ b/src/pavucontrol.desktop.in
@@ -8,4 +8,4 @@ Icon=multimedia-volume-control
 StartupNotify=true
 Type=Application
 Categories=AudioVideo;Audio;Mixer;GTK;Settings;X-XFCE-SettingsDialog;X-XFCE-HardwareSettings;
-_Keywords=pavucontrol;Microphone;Volume;Fade;Balance;Headset;Speakers;Headphones;Audio;Mixer;Output;Input;Devices;Playback;Recording;System Sounds;Sound Card;Settings;Preferences;
+Keywords=pavucontrol;Microphone;Volume;Fade;Balance;Headset;Speakers;Headphones;Audio;Mixer;Output;Input;Devices;Playback;Recording;System Sounds;Sound Card;Settings;Preferences;

commit 805d6522c6c161f7bf30c859d39678011b359f31
Author: Arun Raghavan <arun at asymptotic.io>
Date:   Fri Jan 14 18:35:55 2022 -0500

    build-sys: Add a meson-based build systeom
    
    The only missing feature for parity with autotools is generating a text
    README using lynx. I think this might be okay to skip as it seems
    unnecessary as a dependency.

diff --git a/.gitignore b/.gitignore
index 91ce06a..61a40b2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@ config.h.in
 config.log
 config.status
 configure
+build
 depcomp
 README
 README.html
diff --git a/doc/html2txt b/doc/html2txt
new file mode 100755
index 0000000..63e5a20
--- /dev/null
+++ b/doc/html2txt
@@ -0,0 +1,2 @@
+#!/bin/sh
+lynx --dump $1 | sed 's,file://localhost/.*/doc/README.html,README,'
diff --git a/doc/meson.build b/doc/meson.build
new file mode 100644
index 0000000..12056d6
--- /dev/null
+++ b/doc/meson.build
@@ -0,0 +1,34 @@
+doc_cdata = configuration_data()
+
+doc_cdata.set('PACKAGE_VERSION', meson.project_version())
+doc_cdata.set('PACKAGE_URL', 'http://freedesktop.org/software/pulseaudio/pavucontrol/')
+
+readme_html = configure_file(
+    input : 'README.html.in',
+    output : 'README.html',
+    configuration : doc_cdata,
+    install : true,
+    install_dir : docdir,
+)
+
+if tidy.found()
+  test('XHTML documentation uses correct mark-up', tidy, args: ['-e', readme_html])
+endif
+
+if with_lynx
+  custom_target(
+    'README',
+    input: readme_html,
+    output: 'README',
+    command: [find_program('./html2txt'), '@INPUT@'],
+    capture: true,
+    build_by_default: true,
+    install : true,
+    install_dir : docdir,
+  )
+endif
+
+install_data(
+    sources : 'style.css',
+    install_dir : docdir,
+)
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..15acb6c
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,41 @@
+project('pavucontrol', 'cpp',
+        version : '5.0',
+        meson_version : '>= 0.50.0',
+        default_options : [ 'c_std=gnu11', 'cpp_std=c++11' ]
+        )
+
+with_lynx = get_option('lynx')
+
+gtkmm_dep = dependency('gtkmm-3.0', version : '>= 3.0', required : true)
+sigcpp_dep = dependency('sigc++-2.0', required : true)
+canberragtk_dep = dependency('libcanberra-gtk3', version : '>= 0.16', required : true)
+
+libpulse_dep = dependency('libpulse', version : '>= 5.0', required : true)
+libpulsemlglib_dep = dependency('libpulse-mainloop-glib', version : '>= 0.9.16', required : true)
+
+lynx = find_program('lynx', required: with_lynx)
+tidy = find_program('tidy', required: false)
+
+configinc = include_directories('.')
+
+prefix = get_option('prefix')
+datadir = join_paths(prefix, get_option('datadir'))
+docdir = join_paths(datadir, 'doc', 'pavucontrol')
+localedir = join_paths(prefix, get_option('localedir'))
+
+cdata = configuration_data()
+cdata.set('ENABLE_NLS', 1)
+cdata.set_quoted('PACKAGE', 'pavucontrol')
+cdata.set_quoted('PACKAGE_NAME', 'pavucontrol')
+cdata.set_quoted('PACKAGE_STRING', 'pavucontrol')
+cdata.set_quoted('PACKAGE_VERSION', meson.project_version())
+cdata.set_quoted('GETTEXT_PACKAGE', 'pavucontrol')
+cdata.set_quoted('LOCALEDIR', localedir)
+cdata.set_quoted('GLADE_FILE', join_paths(datadir, 'pavucontrol', 'pavucontrol.glade'))
+
+# Now generate config.h from everything above
+configure_file(output : 'config.h', configuration : cdata)
+
+subdir('doc')
+subdir('po')
+subdir('src')
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..31fe3ba
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,3 @@
+option('lynx',
+       type : 'boolean', value : true,
+       description : 'Enable building of the README text file for installation')
diff --git a/po/Makevars b/po/Makevars
new file mode 100644
index 0000000..bd3d3ff
--- /dev/null
+++ b/po/Makevars
@@ -0,0 +1,78 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --from-code=UTF-8
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = PulseAudio contributors
+
+# This tells whether or not to prepend "GNU " prefix to the package
+# name that gets inserted into the header of the $(DOMAIN).pot file.
+# Possible values are "yes", "no", or empty.  If it is empty, try to
+# detect it automatically by scanning the files in $(top_srcdir) for
+# "GNU packagename" string.
+PACKAGE_GNU =
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
+
+# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
+# context.  Possible values are "yes" and "no".  Set this to yes if the
+# package uses functions taking also a message context, like pgettext(), or
+# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
+USE_MSGCTXT = no
+
+# These options get passed to msgmerge.
+# Useful options are in particular:
+#   --previous            to keep previous msgids of translated messages,
+#   --quiet               to reduce the verbosity.
+MSGMERGE_OPTIONS =
+
+# These options get passed to msginit.
+# If you want to disable line wrapping when writing PO files, add
+# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
+# MSGINIT_OPTIONS.
+MSGINIT_OPTIONS =
+
+# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
+# has changed.  Possible values are "yes" and "no".  Set this to no if
+# the POT file is checked in the repository and the version control
+# program ignores timestamps.
+PO_DEPENDS_ON_POT = no
+
+# This tells whether or not to forcibly update $(DOMAIN).pot and
+# regenerate PO files on "make dist".  Possible values are "yes" and
+# "no".  Set this to no if the POT file and PO files are maintained
+# externally.
+DIST_DEPENDS_ON_UPDATE_PO = no
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 0000000..91b73ea
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1,4 @@
+i18n = import('i18n')
+i18n.gettext(meson.project_name(), preset: 'glib')
+
+po_dir = meson.current_source_dir()
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 0000000..fa2abf4
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,34 @@
+pavucontrol_sources = [
+  'cardwidget.cc',
+  'channelwidget.cc',
+  'devicewidget.cc',
+  'mainwindow.cc',
+  'minimalstreamwidget.cc',
+  'pavuapplication.cc',
+  'pavucontrol.cc',
+  'rolewidget.cc',
+  'sinkinputwidget.cc',
+  'sinkwidget.cc',
+  'sourceoutputwidget.cc',
+  'sourcewidget.cc',
+  'streamwidget.cc',
+]
+
+executable('pavucontrol',
+  pavucontrol_sources,
+  install: true,
+  cpp_args: ['-DHAVE_CONFIG_H'],
+  include_directories : configinc,
+  dependencies : [gtkmm_dep, sigcpp_dep, canberragtk_dep, libpulse_dep, libpulsemlglib_dep],
+)
+
+install_data('pavucontrol.glade')
+
+desktop_file = i18n.merge_file(
+  input : 'pavucontrol.desktop.in',
+  output : 'pavucontrol.desktop',
+  po_dir : po_dir,
+  type : 'desktop',
+  install : true,
+  install_dir : join_paths(datadir, 'applications'),
+)

commit 791c1055d4867432041cc14419306df085406d21
Author: Arun Raghavan <arun at asymptotic.io>
Date:   Fri Jan 14 18:35:53 2022 -0500

    build-sys: Use list e-mail while initialising project

diff --git a/configure.ac b/configure.ac
index 156730a..056ba5e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,7 @@
 # along with pavucontrol. If not, see <http://www.gnu.org/licenses/>.
 
 AC_PREREQ(2.62)
-AC_INIT([pavucontrol],[5.0],[mzcnihpbageby (at) 0pointer (dot) de])
+AC_INIT([pavucontrol],[5.0],[pulseaudio-discuss (at) lists (dot) freedesktop (dot) org])
 AC_CONFIG_SRCDIR([src/pavucontrol.cc])
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_HEADERS([config.h])

commit 327288055b3ec5ce3ba61a5a7a9571c49a7c5259
Author: Arun Raghavan <arun at asymptotic.io>
Date:   Fri Jan 14 18:35:50 2022 -0500

    i18n: Migrate to upstream gettext over intltool
    
    Newer gettext has feature parity, rendering intltool obsolete. Details
    at:
    
      https://wiki.gnome.org/MigratingFromIntltoolToGettext

diff --git a/.gitignore b/.gitignore
index 194775a..91ce06a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,9 +4,6 @@ ChangeLog
 config.guess
 config.rpath
 config.sub
-intltool-extract.in
-intltool-merge.in
-intltool-update.in
 aclocal.m4
 *.cache
 compile
diff --git a/Makefile.am b/Makefile.am
index 175caa7..01d7d4d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -18,9 +18,6 @@
 EXTRA_DIST = \
 	bootstrap.sh \
 	LICENSE \
-	intltool-merge.in \
-	intltool-update.in \
-	intltool-extract.in \
 	po/pavucontrol.pot
 
 SUBDIRS=src doc po
diff --git a/bootstrap.sh b/bootstrap.sh
index 4719e9c..133b70f 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -23,7 +23,6 @@ if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then
     echo "Activated pre-commit hook."
 fi
 
-intltoolize --force --automake
 autoreconf --force --install --symlink
 
 if test "x$NOCONFIGURE" = "x"; then
diff --git a/configure.ac b/configure.ac
index 45f825e..156730a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,11 +67,11 @@ fi
 
 ZP_LYNX_DOC
 
-IT_PROG_INTLTOOL([0.35.0])
 GETTEXT_PACKAGE=pavucontrol
 AC_SUBST([GETTEXT_PACKAGE])
 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
-AM_GLIB_GNU_GETTEXT
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([0.19.8])
 
 AC_CONFIG_FILES([
 po/Makefile.in
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e9d0f55..931f312 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,4 +1,3 @@
-[encoding: UTF-8]
 src/pavucontrol.desktop.in
 src/pavucontrol.glade
 src/pavucontrol.cc
diff --git a/src/Makefile.am b/src/Makefile.am
index b5c0314..adec68e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,8 +21,11 @@ localedir = $(datadir)/locale
 
 bin_PROGRAMS=pavucontrol
 glade_DATA=pavucontrol.glade
+
 desktop_in_files=pavucontrol.desktop.in
 desktop_DATA=$(desktop_in_files:.desktop.in=.desktop)
+$(desktop_DATA): $(desktop_in_files)
+	$(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
 
 pavucontrol_SOURCES= \
   minimalstreamwidget.h minimalstreamwidget.cc \
@@ -48,5 +51,3 @@ pavucontrol_CXXFLAGS+=-DGLADE_FILE=\"$(gladedir)/pavucontrol.glade\"
 EXTRA_DIST = $(glade_DATA) $(desktop_in_files)
 
 CLEANFILES = $(desktop_DATA)
-
- at INTLTOOL_DESKTOP_RULE@
diff --git a/src/pavucontrol.desktop.in b/src/pavucontrol.desktop.in
index 06f55e7..7499e2e 100644
--- a/src/pavucontrol.desktop.in
+++ b/src/pavucontrol.desktop.in
@@ -1,8 +1,8 @@
 [Desktop Entry]
 Version=1.0
-_Name=PulseAudio Volume Control
-_GenericName=Volume Control
-_Comment=Adjust the volume level
+Name=PulseAudio Volume Control
+GenericName=Volume Control
+Comment=Adjust the volume level
 Exec=pavucontrol
 Icon=multimedia-volume-control
 StartupNotify=true

commit 8b3a5999a6aff7f6088be90c92198f9efc06f955
Author: Tanu Kaskinen <tanuk at iki.fi>
Date:   Wed Jan 12 17:10:28 2022 +0200

    i18n: Update pavucontrol.pot
    
    Part-of: <https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/72>

diff --git a/po/pavucontrol.pot b/po/pavucontrol.pot
index 17bc27d..64f2f29 100644
--- a/po/pavucontrol.pot
+++ b/po/pavucontrol.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-15 18:55+0300\n"
+"POT-Creation-Date: 2022-01-12 17:09+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -21,7 +21,7 @@ msgstr ""
 msgid "PulseAudio Volume Control"
 msgstr ""
 
-#: ../src/pavucontrol.desktop.in.h:2 ../src/pavucontrol.glade.h:33
+#: ../src/pavucontrol.desktop.in.h:2 ../src/pavucontrol.glade.h:35
 msgid "Volume Control"
 msgstr ""
 
@@ -106,126 +106,134 @@ msgid "AAC"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:19
-msgid "<b>Latency offset:</b>"
+msgid "TrueHD"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:20
-msgid "ms"
+msgid "DTS-HD"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:21
-msgid "Advanced"
+msgid "<b>Latency offset:</b>"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:22
-msgid "All Streams"
+msgid "ms"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:23
-msgid "Applications"
+msgid "Advanced"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:24
-msgid "Virtual Streams"
+msgid "All Streams"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:25
-msgid "All Output Devices"
+msgid "Applications"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:26
-msgid "Hardware Output Devices"
+msgid "Virtual Streams"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:27
-msgid "Virtual Output Devices"
+msgid "All Output Devices"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:28
-msgid "All Input Devices"
+msgid "Hardware Output Devices"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:29
-msgid "All Except Monitors"
+msgid "Virtual Output Devices"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:30
-msgid "Hardware Input Devices"
+msgid "All Input Devices"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:31
-msgid "Virtual Input Devices"
+msgid "All Except Monitors"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:32
-msgid "Monitors"
+msgid "Hardware Input Devices"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:33
+msgid "Virtual Input Devices"
 msgstr ""
 
 #: ../src/pavucontrol.glade.h:34
+msgid "Monitors"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:36
 msgid "<i>No application is currently playing audio.</i>"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:35
+#: ../src/pavucontrol.glade.h:37
 msgid "<b>_Show:</b>"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:36
+#: ../src/pavucontrol.glade.h:38
 msgid "_Playback"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:37
+#: ../src/pavucontrol.glade.h:39
 msgid "<i>No application is currently recording audio.</i>"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:38
+#: ../src/pavucontrol.glade.h:40
 msgid "_Recording"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:39
+#: ../src/pavucontrol.glade.h:41
 msgid "<i>No output devices available</i>"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:40
+#: ../src/pavucontrol.glade.h:42
 msgid "<b>S_how:</b>"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:41
+#: ../src/pavucontrol.glade.h:43
 msgid "_Output Devices"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:42
+#: ../src/pavucontrol.glade.h:44
 msgid "<i>No input devices available</i>"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:43
+#: ../src/pavucontrol.glade.h:45
 msgid "<b>Sho_w:</b>"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:44
+#: ../src/pavucontrol.glade.h:46
 msgid "_Input Devices"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:45
+#: ../src/pavucontrol.glade.h:47
 msgid "<i>No cards available for configuration</i>"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:46
+#: ../src/pavucontrol.glade.h:48
 msgid "Show volume meters"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:47
+#: ../src/pavucontrol.glade.h:49
 msgid "_Configuration"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:48
+#: ../src/pavucontrol.glade.h:50
 msgid "<b>Rename device to:</b>"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:49
+#: ../src/pavucontrol.glade.h:51
 msgid "Stream Title"
 msgstr ""
 
-#: ../src/pavucontrol.glade.h:50
+#: ../src/pavucontrol.glade.h:52
 msgid "direction"
 msgstr ""
 
@@ -556,27 +564,27 @@ msgstr ""
 msgid "pa_context_kill_sink_input() failed"
 msgstr ""
 
-#: ../src/sinkwidget.cc:95
+#: ../src/sinkwidget.cc:117
 msgid "pa_context_set_sink_volume_by_index() failed"
 msgstr ""
 
-#: ../src/sinkwidget.cc:110
+#: ../src/sinkwidget.cc:132
 msgid "Volume Control Feedback Sound"
 msgstr ""
 
-#: ../src/sinkwidget.cc:127
+#: ../src/sinkwidget.cc:149
 msgid "pa_context_set_sink_mute_by_index() failed"
 msgstr ""
 
-#: ../src/sinkwidget.cc:141
+#: ../src/sinkwidget.cc:163
 msgid "pa_context_set_default_sink() failed"
 msgstr ""
 
-#: ../src/sinkwidget.cc:161
+#: ../src/sinkwidget.cc:183
 msgid "pa_context_set_sink_port_by_index() failed"
 msgstr ""
 
-#: ../src/sinkwidget.cc:203
+#: ../src/sinkwidget.cc:225
 msgid "pa_ext_device_restore_save_sink_formats() failed"
 msgstr ""
 

commit 0236fe7ffd40b0933187e90506f1c77a75ce4c93
Author: Sungjoon Moon <sumoon at seoulsaram.org>
Date:   Sun Jan 9 04:16:32 2022 +0100

    Translated using Weblate (Korean)
    
    Currently translated at 100.0% (149 of 149 strings)
    
    Co-authored-by: Sungjoon Moon <sumoon at seoulsaram.org>
    Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pavucontrol/ko/
    Translation: pulseaudio/pavucontrol
    Part-of: <https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/72>

diff --git a/po/ko.po b/po/ko.po
index 039adc8..9ec38e7 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the pavucontrol package.
 # Jung-Kyu Park <bagjunggyu at gmail.com>, 2018.
 # simmon <simmon at nplob.com>, 2021.
+# Sungjoon Moon <sumoon at seoulsaram.org>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: pavucontrol\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-08-15 18:55+0300\n"
-"PO-Revision-Date: 2021-08-17 19:04+0000\n"
-"Last-Translator: simmon <simmon at nplob.com>\n"
+"PO-Revision-Date: 2022-01-09 03:16+0000\n"
+"Last-Translator: Sungjoon Moon <sumoon at seoulsaram.org>\n"
 "Language-Team: Korean <https://translate.fedoraproject.org/projects/"
 "pulseaudio/pavucontrol/ko/>\n"
 "Language: ko\n"
@@ -17,11 +18,11 @@ msgstr ""
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.7.2\n"
+"X-Generator: Weblate 4.10.1\n"
 
 #: ../src/pavucontrol.desktop.in.h:1 ../src/pavucontrol.cc:874
 msgid "PulseAudio Volume Control"
-msgstr "PulseAudio 크기 조절"
+msgstr "PulseAudio 볼륨 조절"
 
 #: ../src/pavucontrol.desktop.in.h:2 ../src/pavucontrol.glade.h:33
 msgid "Volume Control"
@@ -29,7 +30,7 @@ msgstr "볼륨 조절"
 
 #: ../src/pavucontrol.desktop.in.h:3
 msgid "Adjust the volume level"
-msgstr "볼륨 레벨 조절"
+msgstr "볼륨 레벨 조정"
 
 #: ../src/pavucontrol.desktop.in.h:4
 msgid ""
@@ -37,9 +38,8 @@ msgid ""
 "Mixer;Output;Input;Devices;Playback;Recording;System Sounds;Sound Card;"
 "Settings;Preferences;"
 msgstr ""
-"pavucontrol;Microphone;Volume;Fade;Balance;Headset;Speakers;Headphones;Audio;"
-"Mixer;Output;Input;Devices;Playback;Recording;System Sounds;Sound Card;"
-"Settings;Preferences;"
+"pavucontrol;마이크;볼륨;페이드;밸런스;헤드셋;스피커;헤드폰;오디오;믹서;출력;입력;장치;재생;녹음;시스템 사운드;사운드 "
+"카드;설정;환경설정;"
 
 #: ../src/pavucontrol.glade.h:1
 msgid "<b>left-front</b>"
@@ -56,7 +56,7 @@ msgstr "카드 이름"
 
 #: ../src/pavucontrol.glade.h:5
 msgid "Lock card to this profile"
-msgstr "이 프로필에서 카드 잠금"
+msgstr "이 프로필에 카드 잠금"
 
 #: ../src/pavucontrol.glade.h:6
 msgid "<b>Profile:</b>"
@@ -68,11 +68,11 @@ msgstr "<b>코덱:</b>"
 
 #: ../src/pavucontrol.glade.h:8
 msgid "Device Title"
-msgstr "장치 제목"
+msgstr "장치 이름"
 
 #: ../src/pavucontrol.glade.h:9
 msgid "Mute audio"
-msgstr "오디오 묵음"
+msgstr "음소거"
 
 #: ../src/pavucontrol.glade.h:10
 msgid "Lock channels together"
@@ -80,7 +80,7 @@ msgstr "채널 함께 잠금"
 
 #: ../src/pavucontrol.glade.h:11
 msgid "Set as fallback"
-msgstr "대체용으로 설정"
+msgstr "대체 용으로 설정"
 
 #: ../src/pavucontrol.glade.h:12
 msgid "<b>Port:</b>"
@@ -112,11 +112,11 @@ msgstr "AAC"
 
 #: ../src/pavucontrol.glade.h:19
 msgid "<b>Latency offset:</b>"
-msgstr "<b>지연 갈라짐:</b>"
+msgstr "<b>지연 오프셋:</b>"
 
 #: ../src/pavucontrol.glade.h:20
 msgid "ms"
-msgstr "ms"
+msgstr "밀리초"
 
 #: ../src/pavucontrol.glade.h:21
 msgid "Advanced"
@@ -124,11 +124,11 @@ msgstr "고급"
 
 #: ../src/pavucontrol.glade.h:22
 msgid "All Streams"
-msgstr "모든 스티림"
+msgstr "모든 스트림"
 
 #: ../src/pavucontrol.glade.h:23
 msgid "Applications"
-msgstr "응용프로그램"
+msgstr "응용 프로그램"
 
 #: ../src/pavucontrol.glade.h:24
 msgid "Virtual Streams"
@@ -168,7 +168,7 @@ msgstr "모니터"
 
 #: ../src/pavucontrol.glade.h:34
 msgid "<i>No application is currently playing audio.</i>"
-msgstr "<i>오디오를 재생하는 응용프로그램이 없습니다.</i>"
+msgstr "<i>현재 오디오를 재생하는 응용 프로그램이 없습니다.</i>"
 
 #: ../src/pavucontrol.glade.h:35
 msgid "<b>_Show:</b>"
@@ -180,7 +180,7 @@ msgstr "재생(_P)"
 
 #: ../src/pavucontrol.glade.h:37
 msgid "<i>No application is currently recording audio.</i>"
-msgstr "<i>오디오를 녹음하는응용프로그램이 없습니다.</i>"
+msgstr "<i>현재 오디오를 녹음하고 있는 응용 프로그램이 없습니다.</i>"
 
 #: ../src/pavucontrol.glade.h:38
 msgid "_Recording"
@@ -216,7 +216,7 @@ msgstr "<i>설정 가능한 카드가 없습니다</i>"
 
 #: ../src/pavucontrol.glade.h:46
 msgid "Show volume meters"
-msgstr "음향 미터 보기"
+msgstr "볼륨 미터 표시"
 
 #: ../src/pavucontrol.glade.h:47
 msgid "_Configuration"
@@ -228,68 +228,68 @@ msgstr "<b>장치 이름 변경:</b>"
 
 #: ../src/pavucontrol.glade.h:49
 msgid "Stream Title"
-msgstr "스트림 제목"
+msgstr "스트림 이름"
 
 #: ../src/pavucontrol.glade.h:50
 msgid "direction"
-msgstr "디렉션"
+msgstr "방향"
 
 #: ../src/pavucontrol.cc:104
 #, c-format
 msgid "could not read JSON from list-codecs message response: %s"
-msgstr "목록-코덱 메시지 응답에서 JSON을 읽을 수 없습니다: %s"
+msgstr "list-codecs 메시지 응답에서 JSON을 읽을 수 없습니다: %s"
 
 #: ../src/pavucontrol.cc:113
 msgid "list-codecs message response is not a JSON array"
-msgstr "목록-코덱 메시지 응답은 JSON 배열이 아닙니다"
+msgstr "list-codecs 메시지 응답이 JSON 배열이 아닙니다"
 
 #: ../src/pavucontrol.cc:161
 msgid "list-codecs message response could not be parsed correctly"
-msgstr "목록-코덱 메시지 응답은 정확하게 구문 분석 할 수 없습니다"
+msgstr "list-codecs 메시지 응답을 올바르게 구문 분석 할 수 없습니다"
 
 #: ../src/pavucontrol.cc:181
 #, c-format
 msgid "could not read JSON from get-codec message response: %s"
-msgstr "코덱 가져오기(get-codec) 메시지 응답에서 JSON 항목을 읽을 수 없습니다: %s"
+msgstr "get-codec 메시지 응답에서 JSON을 읽을 수 없습니다: %s"
 
 #: ../src/pavucontrol.cc:190
 msgid "get-codec message response is not a JSON value"
-msgstr "코덱 가져오기(get-codec) 메시지 응답은 JSON 값이 아닙니다"
+msgstr "get-codec 메시지 응답이 JSON 값이 아닙니다"
 
 #: ../src/pavucontrol.cc:198
 msgid "could not get codec name from get-codec message response"
-msgstr "코덱 가져오기(get-codec) 메시지 응답에서 코덱 이름을 가져 올 수 없습니다"
+msgstr "get-codec 메시지 응답에서 코덱 이름을 가져 올 수 없습니다"
 
 #: ../src/pavucontrol.cc:220
 #, c-format
 msgid "could not read JSON from get-profile-sticky message response: %s"
-msgstr "프로필 고정(get-profile-sticky) 메시지 응답에서 JSON 항목을 읽을 수 없습니다: %s"
+msgstr "get-profile-sticky 메시지 응답에서 JSON 항목을 읽을 수 없습니다: %s"
 
 #: ../src/pavucontrol.cc:229
 msgid "get-profile-sticky message response is not a JSON value"
-msgstr "프로필 고정(get-profile-sticky) 메시지 응답은 JSON 값이 아닙니다"
+msgstr "get-profile-sticky 메시지 응답이 JSON 값이 아닙니다"
 
 #: ../src/pavucontrol.cc:249 ../src/cardwidget.cc:153 ../src/cardwidget.cc:181
 #, c-format
 msgid "pa_context_send_message_to_object() failed: %s"
-msgstr "pa_context_send_message_to_object() 실패함: %s"
+msgstr "pa_context_send_message_to_object() 실패: %s"
 
 #: ../src/pavucontrol.cc:267
 #, c-format
 msgid "could not read JSON from list-handlers message response: %s"
-msgstr "목록-처리기 응답에서 JSON 항목을 읽을 수 없습니다: %s"
+msgstr "list-handlers 메세지 응답에서 JSON 항목을 읽을 수 없습니다: %s"
 
 #: ../src/pavucontrol.cc:276
 msgid "list-handlers message response is not a JSON array"
-msgstr "항목-처리기 메시지 응답은 JSON 배열이 아닙니다"
+msgstr "list-handlers 메시지 응답이 JSON 배열이 아닙니다"
 
 #: ../src/pavucontrol.cc:324
 msgid "list-handlers message response could not be parsed correctly"
-msgstr "항목-처리기 메시지 응답은 정확하게 구문 분석 할 수 없습니다"
+msgstr "list-handlers 메시지 응답을 올바르게 구문 분석 할 수 없습니다"
 
 #: ../src/pavucontrol.cc:358
 msgid "Card callback failure"
-msgstr "카드 콜백 실패"
+msgstr "사운드 카드 콜백 실패"
 
 #: ../src/pavucontrol.cc:386
 msgid "Sink callback failure"
@@ -318,7 +318,7 @@ msgstr "서버 정보 콜백 실패"
 #: ../src/pavucontrol.cc:512 ../src/pavucontrol.cc:809
 #, c-format
 msgid "Failed to initialize stream_restore extension: %s"
-msgstr "스트림 복원 확장 시동 실패(_R): %s"
+msgstr "stream_restore 확장을 초기화하지 못했습니다: %s"
 
 #: ../src/pavucontrol.cc:530
 msgid "pa_ext_stream_restore_read() failed"
@@ -327,16 +327,16 @@ msgstr "pa_ext_stream_restore_read() 실패"
 #: ../src/pavucontrol.cc:548 ../src/pavucontrol.cc:823
 #, c-format
 msgid "Failed to initialize device restore extension: %s"
-msgstr "장치 복원 확장을 초기화하지 못했습니다: %s"
+msgstr "device restore 확장을 초기화하지 못했습니다: %s"
 
 #: ../src/pavucontrol.cc:569
 msgid "pa_ext_device_restore_read_sink_formats() failed"
-msgstr "pa_ext_device_restore_read_sink_formats() 실패하였습니다"
+msgstr "pa_ext_device_restore_read_sink_formats() 실패"
 
 #: ../src/pavucontrol.cc:587 ../src/pavucontrol.cc:836
 #, c-format
 msgid "Failed to initialize device manager extension: %s"
-msgstr "장치 관리 확장 초기화에 실패하였습니다: %s"
+msgstr "device manager 확장을 초기화하지 못했습니다: %s"
 
 #: ../src/pavucontrol.cc:606
 msgid "pa_ext_device_manager_read() failed"
@@ -396,7 +396,7 @@ msgstr "pa_context_get_source_output_info_list() 실패"
 
 #: ../src/pavucontrol.cc:851 ../src/pavucontrol.cc:902
 msgid "Connection failed, attempting reconnect"
-msgstr "연결 실패, 재연결 시도"
+msgstr "연결에 실패했습니다,다시 연결 시도합니다"
 
 #: ../src/pavucontrol.cc:889
 msgid ""
@@ -411,15 +411,13 @@ msgid ""
 "not configured you should\n"
 "run start-pulseaudio-x11 manually."
 msgstr ""
-"PulseAudio 연결에 실패하였습니다. 자동으로 5초안에 재시도 합니다\n"
+"PulseAudio에 연결하지 못했습니다. 5초 후에 자동으로 재시도 합니다.\n"
 "\n"
-"이와 같은 경우에 이는 환경/X11 루트 윈도우 특성의 PULSE_SERVER 때문이거나\n"
-"client.conf에 있는 default-server가 잘못 설정되었기 때문입니다.\n"
-"이 상태는 PulseAudio 충돌과 X11 루트 윈도우에서 오래된 상세한 정보를 남겼을 "
-"때에도 발생 할 수 있습니다.\n"
-"만약 이와 같은 경우라면, 그러면 PulseAudio는 다시 자동 생성되며\n"
-"또는 이 것이 설정되지 않았다면 수동으로 start-pulseaudio-x11을 실행해야 합니"
-"다."
+"이 문제의 원인은 환경의 PULSE_SERVER 또는 X11 루트 창 속성 또는\n"
+"client.conf의 default-server가 잘못 설정되었기 때문일 수 있습니다.\n"
+"이는 PulseAudio가 충돌하고 X11 루트 창에 오래된 세부 정보를 남길 때도 발생할 수 있습니다.\n"
+"그렇다면 PulseAudio가 자동으로 다시 시작되어야 하며, \n"
+"그렇지 않을 경우 start-pulseaudio-x11을 수동으로 실행하십시오."
 
 #: ../src/cardwidget.cc:126
 msgid "pa_context_set_card_profile_by_index() failed"
@@ -458,7 +456,7 @@ msgstr "<small><i>베이스</i></small>"
 
 #: ../src/devicewidget.cc:59
 msgid "Rename Device..."
-msgstr "장치 이름변경..."
+msgstr "장치 이름 바꾸기..."
 
 #: ../src/devicewidget.cc:163
 msgid "pa_context_set_port_latency_offset() failed"
@@ -466,22 +464,21 @@ msgstr "pa_context_set_port_latency_offset() 실패"
 
 #: ../src/devicewidget.cc:244
 msgid "Sorry, but device renaming is not supported."
-msgstr "죄송합니다, 장치 이름변경이 지원되지 않습니다."
+msgstr "죄송합니다, 장치 이름 바꾸기가 지원되지 않습니다."
 
 #: ../src/devicewidget.cc:249
 msgid ""
 "You need to load module-device-manager in the PulseAudio server in order to "
 "rename devices"
-msgstr ""
-"장치 이름 변경에 PulseAudio 서버에서 module-device-manager를 적재해야 합니다"
+msgstr "장치 이름을 바꾸려면 PulseAudio 서버에서 module-device-manager를 로드해야 합니다"
 
 #: ../src/devicewidget.cc:262
 msgid "_Cancel"
-msgstr "_취소"
+msgstr "취소(_C)"
 
 #: ../src/devicewidget.cc:263
 msgid "_OK"
-msgstr "_확인"
+msgstr "확인(_O)"
 
 #: ../src/devicewidget.cc:270
 msgid "pa_ext_device_manager_write() failed"
@@ -490,40 +487,40 @@ msgstr "pa_ext_device_manager_write() 실패"
 #: ../src/mainwindow.cc:171
 #, c-format
 msgid "Error reading config file %s: %s"
-msgstr "설정 파일 읽기 오류 %s: %s"
+msgstr "구성 파일 %s을(를) 읽는 동안 오류 발생: %s"
 
 #: ../src/mainwindow.cc:250
 msgid "Error saving preferences"
-msgstr "환경 설정 저장 오류"
+msgstr "환경 설정을 저장하는 중에 오류가 발생했습니다"
 
 #: ../src/mainwindow.cc:258
 #, c-format
 msgid "Error writing config file %s"
-msgstr "쓰기 설정 파일 %s 오류"
+msgstr "설정 파일 %s을(를) 쓰는 동안 오류가 발생했습니다"
 
 #: ../src/mainwindow.cc:322
 msgid " (plugged in)"
-msgstr " (plugged in)"
+msgstr " (연결됨)"
 
 #: ../src/mainwindow.cc:326 ../src/mainwindow.cc:434
 msgid " (unavailable)"
-msgstr " (이용 할 수 없는)"
+msgstr " (사용 불가)"
 
 #: ../src/mainwindow.cc:328 ../src/mainwindow.cc:431
 msgid " (unplugged)"
-msgstr " (unplugged)"
+msgstr " (연결되어 있지 않음)"
 
 #: ../src/mainwindow.cc:633
 msgid "Failed to read data from stream"
-msgstr "스트림에서 자료 읽기에 실패하였습니다"
+msgstr "스트림에서 데이터를 읽지 못했습니다"
 
 #: ../src/mainwindow.cc:677
 msgid "Peak detect"
-msgstr "최대 검출"
+msgstr "피크 감지"
 
 #: ../src/mainwindow.cc:678
 msgid "Failed to create monitoring stream"
-msgstr "모니터링 스트림 생성에 실패하였습니다"
+msgstr "모니터링 스트림 생성 실패"
 
 #: ../src/mainwindow.cc:693
 msgid "Failed to connect monitoring stream"
@@ -533,7 +530,7 @@ msgstr "모니터링 스트림 연결에 실패하였습니다"
 msgid ""
 "Ignoring sink-input due to it being designated as an event and thus handled "
 "by the Event widget"
-msgstr "이벤트로 지정되어 이벤트 위젯에 의해 처리되므로 싱크 입력을 무시합니다"
+msgstr "싱크 입력은 이벤트로 지정되어 이벤트 위젯에 의해 처리되기 때문에 무시됩니다"
 
 #: ../src/mainwindow.cc:1005
 msgid "System Sounds"
@@ -541,7 +538,7 @@ msgstr "시스템 사운드"
 
 #: ../src/mainwindow.cc:1351
 msgid "Establishing connection to PulseAudio. Please wait..."
-msgstr "PulseAudio에 연결이 성립되었습니다. 기다려 주세요..."
+msgstr "PulseAudio에 연결하는 중입니다. 잠시만 기다려 주십시오..."
 
 #: ../src/rolewidget.cc:72
 msgid "pa_ext_stream_restore_write() failed"
@@ -553,11 +550,11 @@ msgstr "켜짐"
 
 #: ../src/sinkinputwidget.cc:38
 msgid "Terminate Playback"
-msgstr "재생 마침"
+msgstr "재생 종료"
 
 #: ../src/sinkinputwidget.cc:78
 msgid "Unknown output"
-msgstr "모르는 출력"
+msgstr "알 수 없는 출력"
 
 #: ../src/sinkinputwidget.cc:87
 msgid "pa_context_set_sink_input_volume() failed"
@@ -601,11 +598,11 @@ msgstr "에서"
 
 #: ../src/sourceoutputwidget.cc:38
 msgid "Terminate Recording"
-msgstr "녹음 마침"
+msgstr "녹음 종료"
 
 #: ../src/sourceoutputwidget.cc:83
 msgid "Unknown input"
-msgstr "모르는 입력"
+msgstr "알 수 없는 입력"
 
 #: ../src/sourceoutputwidget.cc:93
 msgid "pa_context_set_source_output_volume() failed"
@@ -637,11 +634,11 @@ msgstr "pa_context_set_source_port_by_index() 실패"
 
 #: ../src/streamwidget.cc:52
 msgid "Terminate"
-msgstr "종료되었습니다"
+msgstr "종료"
 
 #: ../src/pavuapplication.cc:160
 msgid "Select a specific tab on load."
-msgstr "적재하기에 지정한 탭을 선택합니다."
+msgstr "로드할 때 특정 탭을 선택합니다."
 
 #: ../src/pavuapplication.cc:161
 msgid "number"
@@ -649,7 +646,7 @@ msgstr "숫자"
 
 #: ../src/pavuapplication.cc:166
 msgid "Retry forever if pa quits (every 5 seconds)."
-msgstr "pa가 종료되면 영구히 재시도 합니다(매 5초 마다)."
+msgstr "pa가 종료되면 계속 재시도 합니다(5초 마다)."
 
 #: ../src/pavuapplication.cc:171
 msgid "Maximize the window."
@@ -657,7 +654,7 @@ msgstr "창을 최대화합니다."
 
 #: ../src/pavuapplication.cc:176
 msgid "Show version."
-msgstr "버전 보기."
+msgstr "버전을 표시합니다."
 
 #~ msgid "50%"
 #~ msgstr "50%"

commit 473d19ef824af9a00a0680407f626eaec22bc101
Author: Andika Triwidada <andika at gmail.com>
Date:   Sun Jan 9 04:16:32 2022 +0100

    Added translation using Weblate (Indonesian)
    
    Co-authored-by: Andika Triwidada <andika at gmail.com>
    Part-of: <https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/72>

diff --git a/po/LINGUAS b/po/LINGUAS
index b988433..e4be5c4 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -49,3 +49,4 @@ be
 he
 si
 ro
+id
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 0000000..878e742
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,643 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Andika Triwidada <andika at gmail.com>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-08-15 18:55+0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/pavucontrol.desktop.in.h:1 ../src/pavucontrol.cc:874
+msgid "PulseAudio Volume Control"
+msgstr ""
+
+#: ../src/pavucontrol.desktop.in.h:2 ../src/pavucontrol.glade.h:33
+msgid "Volume Control"
+msgstr ""
+
+#: ../src/pavucontrol.desktop.in.h:3
+msgid "Adjust the volume level"
+msgstr ""
+
+#: ../src/pavucontrol.desktop.in.h:4
+msgid ""
+"pavucontrol;Microphone;Volume;Fade;Balance;Headset;Speakers;Headphones;Audio;"
+"Mixer;Output;Input;Devices;Playback;Recording;System Sounds;Sound Card;"
+"Settings;Preferences;"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:1
+msgid "<b>left-front</b>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:3
+#, no-c-format
+msgid "<small>50%</small>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:4
+msgid "Card Name"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:5
+msgid "Lock card to this profile"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:6
+msgid "<b>Profile:</b>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:7
+msgid "<b>Codec:</b>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:8
+msgid "Device Title"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:9
+msgid "Mute audio"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:10
+msgid "Lock channels together"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:11
+msgid "Set as fallback"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:12
+msgid "<b>Port:</b>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:13
+msgid "PCM"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:14
+msgid "AC-3"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:15
+msgid "DTS"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:16
+msgid "E-AC-3"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:17
+msgid "MPEG"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:18
+msgid "AAC"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:19
+msgid "<b>Latency offset:</b>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:20
+msgid "ms"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:21
+msgid "Advanced"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:22
+msgid "All Streams"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:23
+msgid "Applications"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:24
+msgid "Virtual Streams"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:25
+msgid "All Output Devices"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:26
+msgid "Hardware Output Devices"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:27
+msgid "Virtual Output Devices"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:28
+msgid "All Input Devices"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:29
+msgid "All Except Monitors"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:30
+msgid "Hardware Input Devices"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:31
+msgid "Virtual Input Devices"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:32
+msgid "Monitors"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:34
+msgid "<i>No application is currently playing audio.</i>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:35
+msgid "<b>_Show:</b>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:36
+msgid "_Playback"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:37
+msgid "<i>No application is currently recording audio.</i>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:38
+msgid "_Recording"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:39
+msgid "<i>No output devices available</i>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:40
+msgid "<b>S_how:</b>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:41
+msgid "_Output Devices"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:42
+msgid "<i>No input devices available</i>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:43
+msgid "<b>Sho_w:</b>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:44
+msgid "_Input Devices"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:45
+msgid "<i>No cards available for configuration</i>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:46
+msgid "Show volume meters"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:47
+msgid "_Configuration"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:48
+msgid "<b>Rename device to:</b>"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:49
+msgid "Stream Title"
+msgstr ""
+
+#: ../src/pavucontrol.glade.h:50
+msgid "direction"
+msgstr ""
+
+#: ../src/pavucontrol.cc:104
+#, c-format
+msgid "could not read JSON from list-codecs message response: %s"
+msgstr ""
+
+#: ../src/pavucontrol.cc:113
+msgid "list-codecs message response is not a JSON array"
+msgstr ""
+
+#: ../src/pavucontrol.cc:161
+msgid "list-codecs message response could not be parsed correctly"
+msgstr ""
+
+#: ../src/pavucontrol.cc:181
+#, c-format
+msgid "could not read JSON from get-codec message response: %s"
+msgstr ""
+
+#: ../src/pavucontrol.cc:190
+msgid "get-codec message response is not a JSON value"
+msgstr ""
+
+#: ../src/pavucontrol.cc:198
+msgid "could not get codec name from get-codec message response"
+msgstr ""
+
+#: ../src/pavucontrol.cc:220
+#, c-format
+msgid "could not read JSON from get-profile-sticky message response: %s"
+msgstr ""
+
+#: ../src/pavucontrol.cc:229
+msgid "get-profile-sticky message response is not a JSON value"
+msgstr ""
+
+#: ../src/pavucontrol.cc:249 ../src/cardwidget.cc:153 ../src/cardwidget.cc:181
+#, c-format
+msgid "pa_context_send_message_to_object() failed: %s"
+msgstr ""
+
+#: ../src/pavucontrol.cc:267
+#, c-format
+msgid "could not read JSON from list-handlers message response: %s"
+msgstr ""
+
+#: ../src/pavucontrol.cc:276
+msgid "list-handlers message response is not a JSON array"
+msgstr ""
+
+#: ../src/pavucontrol.cc:324
+msgid "list-handlers message response could not be parsed correctly"
+msgstr ""
+
+#: ../src/pavucontrol.cc:358
+msgid "Card callback failure"
+msgstr ""
+
+#: ../src/pavucontrol.cc:386
+msgid "Sink callback failure"
+msgstr ""
+
+#: ../src/pavucontrol.cc:410
+msgid "Source callback failure"
+msgstr ""
+
+#: ../src/pavucontrol.cc:429
+msgid "Sink input callback failure"
+msgstr ""
+
+#: ../src/pavucontrol.cc:448
+msgid "Source output callback failure"
+msgstr ""
+
+#: ../src/pavucontrol.cc:478
+msgid "Client callback failure"
+msgstr ""
+
+#: ../src/pavucontrol.cc:494
+msgid "Server info callback failure"
+msgstr ""
+
+#: ../src/pavucontrol.cc:512 ../src/pavucontrol.cc:809
+#, c-format
+msgid "Failed to initialize stream_restore extension: %s"
+msgstr ""
+
+#: ../src/pavucontrol.cc:530
+msgid "pa_ext_stream_restore_read() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:548 ../src/pavucontrol.cc:823
+#, c-format
+msgid "Failed to initialize device restore extension: %s"
+msgstr ""
+
+#: ../src/pavucontrol.cc:569
+msgid "pa_ext_device_restore_read_sink_formats() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:587 ../src/pavucontrol.cc:836
+#, c-format
+msgid "Failed to initialize device manager extension: %s"
+msgstr ""
+
+#: ../src/pavucontrol.cc:606
+msgid "pa_ext_device_manager_read() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:623
+msgid "pa_context_get_sink_info_by_index() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:636
+msgid "pa_context_get_source_info_by_index() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:649 ../src/pavucontrol.cc:662
+msgid "pa_context_get_sink_input_info() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:675
+msgid "pa_context_get_client_info() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:685 ../src/pavucontrol.cc:750
+msgid "pa_context_get_server_info() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:698
+msgid "pa_context_get_card_info_by_index() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:741
+msgid "pa_context_subscribe() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:757
+msgid "pa_context_client_info_list() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:764
+msgid "pa_context_get_card_info_list() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:771
+msgid "pa_context_get_sink_info_list() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:778
+msgid "pa_context_get_source_info_list() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:785
+msgid "pa_context_get_sink_input_info_list() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:792
+msgid "pa_context_get_source_output_info_list() failed"
+msgstr ""
+
+#: ../src/pavucontrol.cc:851 ../src/pavucontrol.cc:902
+msgid "Connection failed, attempting reconnect"
+msgstr ""
+
+#: ../src/pavucontrol.cc:889
+msgid ""
+"Connection to PulseAudio failed. Automatic retry in 5s\n"
+"\n"
+"In this case this is likely because PULSE_SERVER in the Environment/X11 Root "
+"Window Properties\n"
+"or default-server in client.conf is misconfigured.\n"
+"This situation can also arise when PulseAudio crashed and left stale details "
+"in the X11 Root Window.\n"
+"If this is the case, then PulseAudio should autospawn again, or if this is "
+"not configured you should\n"
+"run start-pulseaudio-x11 manually."
+msgstr ""
+
+#: ../src/cardwidget.cc:126
+msgid "pa_context_set_card_profile_by_index() failed"
+msgstr ""
+
+#: ../src/channelwidget.cc:101
+#, c-format
+msgid "<small>%0.0f%% (%0.2f dB)</small>"
+msgstr ""
+
+#: ../src/channelwidget.cc:103
+#, c-format
+msgid "<small>%0.0f%% (-∞ dB)</small>"
+msgstr ""
+
+#: ../src/channelwidget.cc:106
+#, c-format
+msgid "%0.0f%%"
+msgstr ""
+
+#: ../src/channelwidget.cc:139
+msgid "<small>Silence</small>"
+msgstr ""
+
+#: ../src/channelwidget.cc:139
+msgid "<small>Min</small>"
+msgstr ""
+
+#: ../src/channelwidget.cc:141
+msgid "<small>100% (0 dB)</small>"
+msgstr ""
+
+#: ../src/channelwidget.cc:145
+msgid "<small><i>Base</i></small>"
+msgstr ""
+
+#: ../src/devicewidget.cc:59
+msgid "Rename Device..."
+msgstr ""
+
+#: ../src/devicewidget.cc:163
+msgid "pa_context_set_port_latency_offset() failed"
+msgstr ""
+
+#: ../src/devicewidget.cc:244
+msgid "Sorry, but device renaming is not supported."
+msgstr ""
+
+#: ../src/devicewidget.cc:249
+msgid ""
+"You need to load module-device-manager in the PulseAudio server in order to "
+"rename devices"
+msgstr ""
+
+#: ../src/devicewidget.cc:262
+msgid "_Cancel"
+msgstr ""
+
+#: ../src/devicewidget.cc:263
+msgid "_OK"
+msgstr ""
+
+#: ../src/devicewidget.cc:270
+msgid "pa_ext_device_manager_write() failed"
+msgstr ""
+
+#: ../src/mainwindow.cc:171
+#, c-format
+msgid "Error reading config file %s: %s"
+msgstr ""
+
+#: ../src/mainwindow.cc:250
+msgid "Error saving preferences"
+msgstr ""
+
+#: ../src/mainwindow.cc:258
+#, c-format
+msgid "Error writing config file %s"
+msgstr ""
+
+#: ../src/mainwindow.cc:322
+msgid " (plugged in)"
+msgstr ""
+
+#: ../src/mainwindow.cc:326 ../src/mainwindow.cc:434
+msgid " (unavailable)"
+msgstr ""
+
+#: ../src/mainwindow.cc:328 ../src/mainwindow.cc:431
+msgid " (unplugged)"
+msgstr ""
+
+#: ../src/mainwindow.cc:633
+msgid "Failed to read data from stream"
+msgstr ""
+
+#: ../src/mainwindow.cc:677
+msgid "Peak detect"
+msgstr ""
+
+#: ../src/mainwindow.cc:678
+msgid "Failed to create monitoring stream"
+msgstr ""
+
+#: ../src/mainwindow.cc:693
+msgid "Failed to connect monitoring stream"
+msgstr ""
+
+#: ../src/mainwindow.cc:830
+msgid ""
+"Ignoring sink-input due to it being designated as an event and thus handled "
+"by the Event widget"
+msgstr ""
+
+#: ../src/mainwindow.cc:1005
+msgid "System Sounds"
+msgstr ""
+
+#: ../src/mainwindow.cc:1351
+msgid "Establishing connection to PulseAudio. Please wait..."
+msgstr ""
+
+#: ../src/rolewidget.cc:72
+msgid "pa_ext_stream_restore_write() failed"
+msgstr ""
+
+#: ../src/sinkinputwidget.cc:35
+msgid "on"
+msgstr ""
+
+#: ../src/sinkinputwidget.cc:38
+msgid "Terminate Playback"
+msgstr ""
+
+#: ../src/sinkinputwidget.cc:78
+msgid "Unknown output"
+msgstr ""
+
+#: ../src/sinkinputwidget.cc:87
+msgid "pa_context_set_sink_input_volume() failed"
+msgstr ""
+
+#: ../src/sinkinputwidget.cc:102
+msgid "pa_context_set_sink_input_mute() failed"
+msgstr ""
+
+#: ../src/sinkinputwidget.cc:112
+msgid "pa_context_kill_sink_input() failed"
+msgstr ""
+
+#: ../src/sinkwidget.cc:95
+msgid "pa_context_set_sink_volume_by_index() failed"
+msgstr ""
+
+#: ../src/sinkwidget.cc:110
+msgid "Volume Control Feedback Sound"
+msgstr ""
+
+#: ../src/sinkwidget.cc:127
+msgid "pa_context_set_sink_mute_by_index() failed"
+msgstr ""
+
+#: ../src/sinkwidget.cc:141
+msgid "pa_context_set_default_sink() failed"
+msgstr ""
+
+#: ../src/sinkwidget.cc:161
+msgid "pa_context_set_sink_port_by_index() failed"
+msgstr ""
+
+#: ../src/sinkwidget.cc:203
+msgid "pa_ext_device_restore_save_sink_formats() failed"
+msgstr ""
+
+#: ../src/sourceoutputwidget.cc:35
+msgid "from"
+msgstr ""
+
+#: ../src/sourceoutputwidget.cc:38
+msgid "Terminate Recording"
+msgstr ""
+
+#: ../src/sourceoutputwidget.cc:83
+msgid "Unknown input"
+msgstr ""
+
+#: ../src/sourceoutputwidget.cc:93
+msgid "pa_context_set_source_output_volume() failed"
+msgstr ""
+
+#: ../src/sourceoutputwidget.cc:108
+msgid "pa_context_set_source_output_mute() failed"
+msgstr ""
+
+#: ../src/sourceoutputwidget.cc:119
+msgid "pa_context_kill_source_output() failed"
+msgstr ""
+
+#: ../src/sourcewidget.cc:46
+msgid "pa_context_set_source_volume_by_index() failed"
+msgstr ""
+
+#: ../src/sourcewidget.cc:61
+msgid "pa_context_set_source_mute_by_index() failed"
+msgstr ""
+
+#: ../src/sourcewidget.cc:75
+msgid "pa_context_set_default_source() failed"
+msgstr ""
+
+#: ../src/sourcewidget.cc:97
+msgid "pa_context_set_source_port_by_index() failed"
+msgstr ""
+
+#: ../src/streamwidget.cc:52
+msgid "Terminate"
+msgstr ""
+
+#: ../src/pavuapplication.cc:160
+msgid "Select a specific tab on load."
+msgstr ""
+
+#: ../src/pavuapplication.cc:161
+msgid "number"
+msgstr ""
+
+#: ../src/pavuapplication.cc:166
+msgid "Retry forever if pa quits (every 5 seconds)."
+msgstr ""
+
+#: ../src/pavuapplication.cc:171
+msgid "Maximize the window."
+msgstr ""
+
+#: ../src/pavuapplication.cc:176
+msgid "Show version."
+msgstr ""

commit a400e057d182391f51cd7ab5078b9c5818efd7e8
Author: Wim Taymans <wtaymans at redhat.com>
Date:   Mon Jan 10 17:55:02 2022 +0100

    sink-widget: add support for TrueHD and DTS-HD formats
    
    Also add toggles for TrueHD and DTS-HD formats in the sink widget.
    
    Part-of: <https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/71>

diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
index 253534e..d081e8a 100644
--- a/src/pavucontrol.glade
+++ b/src/pavucontrol.glade
@@ -581,6 +581,32 @@
                                 <property name="top_attach">1</property>
                               </packing>
                             </child>
+                            <child>
+                              <object class="GtkCheckButton" id="encodingFormatTRUEHD">
+                                <property name="label" translatable="yes">TrueHD</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="encodingFormatDTSHD">
+                                <property name="label" translatable="yes">DTS-HD</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">2</property>
+                              </packing>
+                            </child>
                           </object>
                           <packing>
                             <property name="expand">False</property>
diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc
index b9002dd..f30bd37 100644
--- a/src/sinkwidget.cc
+++ b/src/sinkwidget.cc
@@ -73,6 +73,28 @@ SinkWidget::SinkWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
         encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange));
         encodings[i].widget->set_sensitive(true);
     }
+#endif
+    ++i;
+    encodings[i].encoding = PA_ENCODING_INVALID;
+    x->get_widget("encodingFormatTRUEHD", encodings[i].widget);
+    encodings[i].widget->set_sensitive(false);
+#ifdef PA_ENCODING_TRUEHD_IEC61937
+    if (pa_context_get_server_protocol_version(get_context()) >= 33) {
+        encodings[i].encoding = PA_ENCODING_TRUEHD_IEC61937;
+        encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange));
+        encodings[i].widget->set_sensitive(true);
+    }
+#endif
+    ++i;
+    encodings[i].encoding = PA_ENCODING_INVALID;
+    x->get_widget("encodingFormatDTSHD", encodings[i].widget);
+    encodings[i].widget->set_sensitive(false);
+#ifdef PA_ENCODING_DTSHD_IEC61937
+    if (pa_context_get_server_protocol_version(get_context()) >= 33) {
+        encodings[i].encoding = PA_ENCODING_DTSHD_IEC61937;
+        encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange));
+        encodings[i].widget->set_sensitive(true);
+    }
 #endif
 #endif
 }
diff --git a/src/sinkwidget.h b/src/sinkwidget.h
index 924fca0..207d115 100644
--- a/src/sinkwidget.h
+++ b/src/sinkwidget.h
@@ -27,7 +27,7 @@
 #if HAVE_EXT_DEVICE_RESTORE_API
 #  include <pulse/format.h>
 
-#  define PAVU_NUM_ENCODINGS 6
+#  define PAVU_NUM_ENCODINGS 8
 
 typedef struct {
     pa_encoding encoding;



More information about the pulseaudio-commits mailing list