mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	Compare commits
	
		
			13 commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							 | 
						8f839526a5 | ||
| 
							 | 
						566849c4af | ||
| 
							 | 
						0647fcb622 | ||
| 
							 | 
						9a428e4c50 | ||
| 
							 | 
						a8b28d86cd | ||
| 
							 | 
						f2836dc6b6 | ||
| 
							 | 
						686ae9c696 | ||
| 
							 | 
						e5ad31e873 | ||
| 
							 | 
						e4d54dae91 | ||
| 
							 | 
						0e896eb518 | ||
| 
							 | 
						ca8c5242eb | ||
| 
							 | 
						437cfe4630 | ||
| 
							 | 
						8299a7f100 | 
					 158 changed files with 5020 additions and 20139 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -37,4 +37,3 @@ stamp-*
 | 
				
			||||||
.dirstamp
 | 
					.dirstamp
 | 
				
			||||||
*.orig
 | 
					*.orig
 | 
				
			||||||
*.rej
 | 
					*.rej
 | 
				
			||||||
subprojects/*/
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# container and push it to the project's container registry on fd.o GitLab.
 | 
					# container and push it to the project's container registry on fd.o GitLab.
 | 
				
			||||||
# This step is only run when the tag for the container changes, else it is
 | 
					# This step is only run when the tag for the container changes, else it is
 | 
				
			||||||
# effectively a no-op. All of this infrastructure is inherited from the
 | 
					# effectively a no-op. All of this infrastructure is inherited from the
 | 
				
			||||||
# freedesktop/ci-templates repository which is the recommended way to set up CI
 | 
					# wayland/ci-templates repository which is the recommended way to set up CI
 | 
				
			||||||
# infrastructure on fd.o GitLab.
 | 
					# infrastructure on fd.o GitLab.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Once the container stage is done, we move on to the 'build' stage where we
 | 
					# Once the container stage is done, we move on to the 'build' stage where we
 | 
				
			||||||
| 
						 | 
					@ -10,15 +10,6 @@
 | 
				
			||||||
# there doesn't seem to be significant value to splitting the stages at the
 | 
					# there doesn't seem to be significant value to splitting the stages at the
 | 
				
			||||||
# moment.
 | 
					# moment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Create merge request pipelines for open merge requests, branch pipelines
 | 
					 | 
				
			||||||
# otherwise. This allows MRs for new users to run CI.
 | 
					 | 
				
			||||||
workflow:
 | 
					 | 
				
			||||||
  rules:
 | 
					 | 
				
			||||||
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
 | 
					 | 
				
			||||||
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
 | 
					 | 
				
			||||||
      when: never
 | 
					 | 
				
			||||||
    - if: $CI_COMMIT_BRANCH
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
stages:
 | 
					stages:
 | 
				
			||||||
  - container
 | 
					  - container
 | 
				
			||||||
  - build
 | 
					  - build
 | 
				
			||||||
| 
						 | 
					@ -28,21 +19,22 @@ variables:
 | 
				
			||||||
  # CI runs, for example when adding new packages to FDO_DISTRIBUTION_PACKAGES.
 | 
					  # CI runs, for example when adding new packages to FDO_DISTRIBUTION_PACKAGES.
 | 
				
			||||||
  # The tag is an arbitrary string that identifies the exact container
 | 
					  # The tag is an arbitrary string that identifies the exact container
 | 
				
			||||||
  # contents.
 | 
					  # contents.
 | 
				
			||||||
  FDO_DISTRIBUTION_TAG: '2023-08-13-00'
 | 
					  FDO_DISTRIBUTION_TAG: '2021-11-03-00'
 | 
				
			||||||
  FDO_DISTRIBUTION_VERSION: '20.04'
 | 
					  FDO_DISTRIBUTION_VERSION: '20.04'
 | 
				
			||||||
  FDO_UPSTREAM_REPO: 'pulseaudio/pulseaudio'
 | 
					  FDO_UPSTREAM_REPO: 'pulseaudio/pulseaudio'
 | 
				
			||||||
 | 
					  UBUNTU_IMAGE: "$CI_REGISTRY_IMAGE/ubuntu/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include:
 | 
					include:
 | 
				
			||||||
  # We pull templates from master to avoid the overhead of periodically
 | 
					  # We pull templates from master to avoid the overhead of periodically
 | 
				
			||||||
  # scanning for changes upstream. This does means builds might occasionally
 | 
					  # scanning for changes upstream. This does means builds might occasionally
 | 
				
			||||||
  # break due to upstream changing things, so if you see unexpected build
 | 
					  # break due to upstream changing things, so if you see unexpected build
 | 
				
			||||||
  # failures, this might be one cause.
 | 
					  # failures, this might be one cause.
 | 
				
			||||||
  - project: 'freedesktop/ci-templates'
 | 
					  - project: 'wayland/ci-templates'
 | 
				
			||||||
    ref: 'master'
 | 
					    ref: 'master'
 | 
				
			||||||
    file: '/templates/ubuntu.yml'
 | 
					    file: '/templates/ubuntu.yml'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
build-container:
 | 
					build-container:
 | 
				
			||||||
  extends: .fdo.container-build@ubuntu
 | 
					  extends: .fdo.container-ifnot-exists@ubuntu
 | 
				
			||||||
  stage: container
 | 
					  stage: container
 | 
				
			||||||
  variables:
 | 
					  variables:
 | 
				
			||||||
    GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
 | 
					    GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
 | 
				
			||||||
| 
						 | 
					@ -56,7 +48,6 @@ build-container:
 | 
				
			||||||
      check
 | 
					      check
 | 
				
			||||||
      curl
 | 
					      curl
 | 
				
			||||||
      dbus-x11
 | 
					      dbus-x11
 | 
				
			||||||
      doxygen
 | 
					 | 
				
			||||||
      g++
 | 
					      g++
 | 
				
			||||||
      gcc
 | 
					      gcc
 | 
				
			||||||
      gettext
 | 
					      gettext
 | 
				
			||||||
| 
						 | 
					@ -97,19 +88,17 @@ build-container:
 | 
				
			||||||
      wget
 | 
					      wget
 | 
				
			||||||
 | 
					
 | 
				
			||||||
build-meson:
 | 
					build-meson:
 | 
				
			||||||
  extends: .fdo.distribution-image@ubuntu
 | 
					 | 
				
			||||||
  stage: build
 | 
					  stage: build
 | 
				
			||||||
 | 
					  image: $UBUNTU_IMAGE
 | 
				
			||||||
  script:
 | 
					  script:
 | 
				
			||||||
    # Install meson (higher than our min version to support our wrap file)
 | 
					    # Install meson
 | 
				
			||||||
    - wget -q https://github.com/mesonbuild/meson/releases/download/0.63.2/meson-0.63.2.tar.gz
 | 
					    - wget -q https://github.com/mesonbuild/meson/releases/download/0.50.0/meson-0.50.0.tar.gz
 | 
				
			||||||
    - tar -xf meson-0.63.2.tar.gz
 | 
					    - tar -xf meson-0.50.0.tar.gz
 | 
				
			||||||
    - cd meson-0.63.2
 | 
					    - cd meson-0.50.0
 | 
				
			||||||
    - python3 setup.py install
 | 
					    - python3 setup.py install
 | 
				
			||||||
    - cd ..
 | 
					    - cd ..
 | 
				
			||||||
    # needed to generate a version
 | 
					 | 
				
			||||||
    - git fetch https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git --tags
 | 
					 | 
				
			||||||
    # Do the actual build
 | 
					    # Do the actual build
 | 
				
			||||||
    - meson build -Dwebrtc-aec=enabled
 | 
					    - meson build --werror
 | 
				
			||||||
    - cd build
 | 
					    - cd build
 | 
				
			||||||
    - ninja
 | 
					    - ninja
 | 
				
			||||||
    - ulimit -c 0 # don't dump core files on tests that are supposed to assert
 | 
					    - ulimit -c 0 # don't dump core files on tests that are supposed to assert
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										70
									
								
								NEWS
									
										
									
									
									
								
							
							
						
						
									
										70
									
								
								NEWS
									
										
									
									
									
								
							| 
						 | 
					@ -1,74 +1,18 @@
 | 
				
			||||||
PulseAudio 17.0
 | 
					PulseAudio 16.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Changes at a glance:
 | 
					A bug fix release.
 | 
				
			||||||
 * Notes for end users
 | 
					
 | 
				
			||||||
   *  Updates to ALSA UCM-based setups
 | 
					 * A couple of time-smoother-2 fixes, mainly manifesting in issues for GStreamer clients
 | 
				
			||||||
   *  Battery level indication to Bluetooth devices
 | 
					 * Fix a crash in some restricted environments
 | 
				
			||||||
   *  Support for the Bluetooth FastStream codec
 | 
					 * Minor RTP spec compliance fix
 | 
				
			||||||
   *  webrtc-audio-processing dependency updated
 | 
					 * Minur completion and tests fixups
 | 
				
			||||||
   *  Trigger role groups added to module-role-cork
 | 
					 | 
				
			||||||
   *  XDG base directory spec for profile-set loading
 | 
					 | 
				
			||||||
 * Notes for application developers
 | 
					 | 
				
			||||||
   * PA_RATE_MAX increased
 | 
					 | 
				
			||||||
 * Notes for packagers
 | 
					 | 
				
			||||||
   * webrtc-audio-processing dependency updated
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Contributors
 | 
					Contributors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Alistair Leslie-Hughes
 | 
					 | 
				
			||||||
Alper Nebi Yasak
 | 
					 | 
				
			||||||
Arun Raghavan
 | 
					Arun Raghavan
 | 
				
			||||||
Asier Sarasua Garmendia
 | 
					 | 
				
			||||||
Ataberk Özen
 | 
					 | 
				
			||||||
Balázs Meskó
 | 
					 | 
				
			||||||
Biswapriyo Nath
 | 
					 | 
				
			||||||
Dylan Van Assche
 | 
					 | 
				
			||||||
Eero Nurkkala
 | 
					 | 
				
			||||||
Ettore Atalan
 | 
					 | 
				
			||||||
Fabrice Fontaine
 | 
					 | 
				
			||||||
Fran Diéguez
 | 
					 | 
				
			||||||
Georg Chini
 | 
					Georg Chini
 | 
				
			||||||
Gioele Barabucci
 | 
					 | 
				
			||||||
Gogo Gogsi
 | 
					 | 
				
			||||||
Hector Martin
 | 
					 | 
				
			||||||
Hugo Carvalho
 | 
					 | 
				
			||||||
Hui Wang
 | 
					 | 
				
			||||||
Igor V. Kovalenko
 | 
					Igor V. Kovalenko
 | 
				
			||||||
Jaechul Lee
 | 
					 | 
				
			||||||
Jan Kuparinen
 | 
					 | 
				
			||||||
Jan Palus
 | 
					 | 
				
			||||||
Jaroslav Kysela
 | 
					 | 
				
			||||||
Jiri Grönroos
 | 
					 | 
				
			||||||
Joachim Philipp
 | 
					 | 
				
			||||||
Jordi Mas
 | 
					 | 
				
			||||||
Marijn Suijten
 | 
					 | 
				
			||||||
Mart Raudsepp
 | 
					 | 
				
			||||||
Nicolas Cavallari
 | 
					 | 
				
			||||||
Peter Meerwald-Stadler
 | 
					 | 
				
			||||||
Philip Goto
 | 
					 | 
				
			||||||
Rosen Penev
 | 
					 | 
				
			||||||
Rudi Heitbaum
 | 
					 | 
				
			||||||
Sabri Ünal
 | 
					 | 
				
			||||||
Sean Greenslade
 | 
					 | 
				
			||||||
Seong-ho Cho
 | 
					 | 
				
			||||||
Shunsuke Shimizu
 | 
					 | 
				
			||||||
SimonP
 | 
					 | 
				
			||||||
Takashi Sakamoto
 | 
					 | 
				
			||||||
Tanu Kaskinen
 | 
					 | 
				
			||||||
Temuri Doghonadze
 | 
					 | 
				
			||||||
Toni Estevez
 | 
					 | 
				
			||||||
Weijia Wang
 | 
					 | 
				
			||||||
Wim Taymans
 | 
					 | 
				
			||||||
Yureka
 | 
					 | 
				
			||||||
acheronfail
 | 
					 | 
				
			||||||
flyingOwl
 | 
					flyingOwl
 | 
				
			||||||
grimst
 | 
					 | 
				
			||||||
hashitaku
 | 
					 | 
				
			||||||
mooo
 | 
					 | 
				
			||||||
peijiankang
 | 
					 | 
				
			||||||
redfast00
 | 
					 | 
				
			||||||
wael
 | 
					 | 
				
			||||||
김인수
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PulseAudio 16.1
 | 
					PulseAudio 16.1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -174,9 +174,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <option>
 | 
					    <option>
 | 
				
			||||||
      <p><opt>set-default-sink</opt> <arg>SINK</arg></p>
 | 
					      <p><opt>set-default-sink</opt> <arg>SINK</arg></p>
 | 
				
			||||||
      <optdesc><p>Make the specified sink (identified by its symbolic name or numerical index) the default sink.
 | 
					      <optdesc><p>Make the specified sink (identified by its symbolic name or numerical index) the default sink.</p></optdesc>
 | 
				
			||||||
         Use the special name \@NONE@ to unset the user defined default sink. This will make pulseaudio return to the default
 | 
					 | 
				
			||||||
         sink selection based on sink priority.</p></optdesc>
 | 
					 | 
				
			||||||
    </option>
 | 
					    </option>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <option>
 | 
					    <option>
 | 
				
			||||||
| 
						 | 
					@ -191,9 +189,7 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <option>
 | 
					    <option>
 | 
				
			||||||
      <p><opt>set-default-source</opt> <arg>SOURCE</arg></p>
 | 
					      <p><opt>set-default-source</opt> <arg>SOURCE</arg></p>
 | 
				
			||||||
      <optdesc><p>Make the specified source (identified by its symbolic name or numerical index) the default source.
 | 
					      <optdesc><p>Make the specified source (identified by its symbolic name or numerical index) the default source.</p></optdesc>
 | 
				
			||||||
         Use the special name \@NONE@ to unset the user defined default source. This will make pulseaudio return to the default
 | 
					 | 
				
			||||||
         source selection based on source priority.</p></optdesc>
 | 
					 | 
				
			||||||
    </option>
 | 
					    </option>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <option>
 | 
					    <option>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -143,10 +143,8 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
      <p><opt>set-default-sink|set-default-source</opt> <arg>index|name</arg></p>
 | 
					      <p><opt>set-default-sink|set-default-source</opt> <arg>index|name</arg></p>
 | 
				
			||||||
      <optdesc><p>Make a sink (resp. source) the default. You may specify the
 | 
					      <optdesc><p>Make a sink (resp. source) the default. You may specify the
 | 
				
			||||||
      sink (resp. source) by its index in the sink (resp. source) list or by its
 | 
					      sink (resp. source) by its index in the sink (resp. source) list or by its
 | 
				
			||||||
      name. Use the special name \@NONE@ to unset the user defined default sink or
 | 
					      name.</p><p>Note that defaults may be overridden by various policy modules
 | 
				
			||||||
      source. In this case, pulseaudio will return to the default sink or source
 | 
					      or by specific stream configurations.</p></optdesc>
 | 
				
			||||||
      selection based on priority.</p><p>Note that defaults may be overridden by
 | 
					 | 
				
			||||||
      various policy modules or by specific stream configurations.</p></optdesc>
 | 
					 | 
				
			||||||
    </option>
 | 
					    </option>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <option>
 | 
					    <option>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										44
									
								
								meson.build
									
										
									
									
									
								
							
							
						
						
									
										44
									
								
								meson.build
									
										
									
									
									
								
							| 
						 | 
					@ -1,12 +1,10 @@
 | 
				
			||||||
project('pulseaudio', 'c',
 | 
					project('pulseaudio', 'c', 'cpp',
 | 
				
			||||||
        version : run_command(find_program('git-version-gen'), join_paths(meson.current_source_dir(), '.tarball-version'), check : false).stdout().strip(),
 | 
					        version : run_command(find_program('git-version-gen'), join_paths(meson.current_source_dir(), '.tarball-version')).stdout().strip(),
 | 
				
			||||||
        meson_version : '>= 0.50.0',
 | 
					        meson_version : '>= 0.50.0',
 | 
				
			||||||
        default_options : [ 'c_std=gnu11', 'cpp_std=c++17' ]
 | 
					        default_options : [ 'c_std=gnu11', 'cpp_std=c++11' ]
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if not meson.is_subproject()
 | 
					meson.add_dist_script('scripts/save-tarball-version.sh', meson.project_version())
 | 
				
			||||||
  meson.add_dist_script('scripts/save-tarball-version.sh', meson.project_version())
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
pa_version_str = meson.project_version()
 | 
					pa_version_str = meson.project_version()
 | 
				
			||||||
# For tarballs, the first split will do nothing, but for builds in git, we
 | 
					# For tarballs, the first split will do nothing, but for builds in git, we
 | 
				
			||||||
| 
						 | 
					@ -27,7 +25,7 @@ pa_protocol_version = 35
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# The stable ABI for client applications, for the version info x:y:z
 | 
					# The stable ABI for client applications, for the version info x:y:z
 | 
				
			||||||
# always will hold x=z
 | 
					# always will hold x=z
 | 
				
			||||||
libpulse_version_info = [24, 3, 24]
 | 
					libpulse_version_info = [24, 2, 24]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# A simplified, synchronous, ABI-stable interface for client
 | 
					# A simplified, synchronous, ABI-stable interface for client
 | 
				
			||||||
# applications, for the version info x:y:z always will hold x=z
 | 
					# applications, for the version info x:y:z always will hold x=z
 | 
				
			||||||
| 
						 | 
					@ -150,11 +148,7 @@ cdata.set_quoted('PA_MACHINE_ID', join_paths(sysconfdir, 'machine-id'))
 | 
				
			||||||
cdata.set_quoted('PA_MACHINE_ID_FALLBACK', join_paths(localstatedir, 'lib', 'dbus', 'machine-id'))
 | 
					cdata.set_quoted('PA_MACHINE_ID_FALLBACK', join_paths(localstatedir, 'lib', 'dbus', 'machine-id'))
 | 
				
			||||||
cdata.set_quoted('PA_SRCDIR', join_paths(meson.current_source_dir(), 'src'))
 | 
					cdata.set_quoted('PA_SRCDIR', join_paths(meson.current_source_dir(), 'src'))
 | 
				
			||||||
cdata.set_quoted('PA_BUILDDIR', meson.current_build_dir())
 | 
					cdata.set_quoted('PA_BUILDDIR', meson.current_build_dir())
 | 
				
			||||||
if host_machine.system() == 'windows'
 | 
					cdata.set_quoted('PA_SOEXT', '.so')
 | 
				
			||||||
  cdata.set_quoted('PA_SOEXT', '.dll')
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  cdata.set_quoted('PA_SOEXT', '.so')
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
cdata.set_quoted('PA_DEFAULT_CONFIG_DIR', pulsesysconfdir)
 | 
					cdata.set_quoted('PA_DEFAULT_CONFIG_DIR', pulsesysconfdir)
 | 
				
			||||||
cdata.set('PA_DEFAULT_CONFIG_DIR_UNQUOTED', pulsesysconfdir)
 | 
					cdata.set('PA_DEFAULT_CONFIG_DIR_UNQUOTED', pulsesysconfdir)
 | 
				
			||||||
cdata.set_quoted('PA_BINARY', join_paths(bindir, 'pulseaudio'))
 | 
					cdata.set_quoted('PA_BINARY', join_paths(bindir, 'pulseaudio'))
 | 
				
			||||||
| 
						 | 
					@ -166,7 +160,8 @@ cdata.set_quoted('PA_SYSTEM_USER', get_option('system_user'))
 | 
				
			||||||
cdata.set_quoted('PA_SYSTEM_GROUP', get_option('system_group'))
 | 
					cdata.set_quoted('PA_SYSTEM_GROUP', get_option('system_group'))
 | 
				
			||||||
cdata.set_quoted('PA_ACCESS_GROUP', get_option('access_group'))
 | 
					cdata.set_quoted('PA_ACCESS_GROUP', get_option('access_group'))
 | 
				
			||||||
cdata.set_quoted('PA_CFLAGS', 'Not yet supported on meson')
 | 
					cdata.set_quoted('PA_CFLAGS', 'Not yet supported on meson')
 | 
				
			||||||
cdata.set_quoted('PA_ALSA_DATA_DIR', alsadatadir)
 | 
					cdata.set_quoted('PA_ALSA_PATHS_DIR', join_paths(alsadatadir, 'paths'))
 | 
				
			||||||
 | 
					cdata.set_quoted('PA_ALSA_PROFILE_SETS_DIR', join_paths(alsadatadir, 'profile-sets'))
 | 
				
			||||||
cdata.set_quoted('DESKTOPFILEDIR', join_paths(datadir, 'applications'))
 | 
					cdata.set_quoted('DESKTOPFILEDIR', join_paths(datadir, 'applications'))
 | 
				
			||||||
cdata.set_quoted('PULSE_LOCALEDIR', localedir)
 | 
					cdata.set_quoted('PULSE_LOCALEDIR', localedir)
 | 
				
			||||||
cdata.set_quoted('GETTEXT_PACKAGE', 'pulseaudio')
 | 
					cdata.set_quoted('GETTEXT_PACKAGE', 'pulseaudio')
 | 
				
			||||||
| 
						 | 
					@ -190,7 +185,6 @@ endif
 | 
				
			||||||
# rather than ending up in the config.h file?
 | 
					# rather than ending up in the config.h file?
 | 
				
			||||||
if host_machine.system() == 'darwin'
 | 
					if host_machine.system() == 'darwin'
 | 
				
			||||||
  cdata.set('OS_IS_DARWIN', 1)
 | 
					  cdata.set('OS_IS_DARWIN', 1)
 | 
				
			||||||
  cdata.set('HAVE_COREAUDIO', 1)
 | 
					 | 
				
			||||||
  cdata.set('_DARWIN_C_SOURCE', '200112L') # Needed to get NSIG on Mac OS
 | 
					  cdata.set('_DARWIN_C_SOURCE', '200112L') # Needed to get NSIG on Mac OS
 | 
				
			||||||
elif host_machine.system() == 'windows'
 | 
					elif host_machine.system() == 'windows'
 | 
				
			||||||
  cdata.set('OS_IS_WIN32', 1)
 | 
					  cdata.set('OS_IS_WIN32', 1)
 | 
				
			||||||
| 
						 | 
					@ -430,7 +424,7 @@ cdata.set('MESON_BUILD', 1)
 | 
				
			||||||
# so we request the nodelete flag to be enabled.
 | 
					# so we request the nodelete flag to be enabled.
 | 
				
			||||||
# On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
 | 
					# On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
 | 
				
			||||||
# Windows doesn't support this flag.
 | 
					# Windows doesn't support this flag.
 | 
				
			||||||
if host_machine.system() != 'windows' and host_machine.system() != 'darwin'
 | 
					if host_machine.system() != 'windows'
 | 
				
			||||||
  nodelete_link_args = ['-Wl,-z,nodelete']
 | 
					  nodelete_link_args = ['-Wl,-z,nodelete']
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
  nodelete_link_args = []
 | 
					  nodelete_link_args = []
 | 
				
			||||||
| 
						 | 
					@ -439,7 +433,6 @@ endif
 | 
				
			||||||
# Code coverage
 | 
					# Code coverage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if get_option('gcov')
 | 
					if get_option('gcov')
 | 
				
			||||||
  add_languages('cpp')
 | 
					 | 
				
			||||||
  add_project_arguments('--coverage', language: ['c', 'cpp'])
 | 
					  add_project_arguments('--coverage', language: ['c', 'cpp'])
 | 
				
			||||||
  add_project_link_arguments('--coverage', language: ['c', 'cpp'])
 | 
					  add_project_link_arguments('--coverage', language: ['c', 'cpp'])
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
| 
						 | 
					@ -505,24 +498,22 @@ endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
need_libatomic_ops = false
 | 
					need_libatomic_ops = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
atomictest = '''int main() {
 | 
					atomictest = '''void func() {
 | 
				
			||||||
  volatile int atomic = 2;
 | 
					  volatile int atomic = 2;
 | 
				
			||||||
  __sync_bool_compare_and_swap (&atomic, 2, 3);
 | 
					  __sync_bool_compare_and_swap (&atomic, 2, 3);
 | 
				
			||||||
  return 0;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
'''
 | 
					'''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if cc.links(atomictest)
 | 
					if cc.compiles(atomictest)
 | 
				
			||||||
  cdata.set('HAVE_ATOMIC_BUILTINS', 1)
 | 
					  cdata.set('HAVE_ATOMIC_BUILTINS', 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  newatomictest = '''int main() {
 | 
					  newatomictest = '''void func() {
 | 
				
			||||||
    int c = 0;
 | 
					    int c = 0;
 | 
				
			||||||
    __atomic_store_n(&c, 4, __ATOMIC_SEQ_CST);
 | 
					    __atomic_store_n(&c, 4, __ATOMIC_SEQ_CST);
 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  '''
 | 
					  '''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if(cc.links(newatomictest))
 | 
					  if(cc.compiles(newatomictest))
 | 
				
			||||||
    cdata.set('HAVE_ATOMIC_BUILTINS_MEMORY_MODEL', 1)
 | 
					    cdata.set('HAVE_ATOMIC_BUILTINS_MEMORY_MODEL', 1)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -690,7 +681,7 @@ if get_option('daemon')
 | 
				
			||||||
    cdata.set('HAVE_ALSA_UCM', 1)
 | 
					    cdata.set('HAVE_ALSA_UCM', 1)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : false)
 | 
					  gio_dep = dependency('gio-2.0', version : '>= 2.26.0')
 | 
				
			||||||
  if get_option('gsettings').enabled()
 | 
					  if get_option('gsettings').enabled()
 | 
				
			||||||
    assert(gio_dep.found(), 'GSettings support needs glib I/O library (GIO)')
 | 
					    assert(gio_dep.found(), 'GSettings support needs glib I/O library (GIO)')
 | 
				
			||||||
    cdata.set('HAVE_GSETTINGS', 1)
 | 
					    cdata.set('HAVE_GSETTINGS', 1)
 | 
				
			||||||
| 
						 | 
					@ -726,7 +717,7 @@ if get_option('daemon')
 | 
				
			||||||
    cdata.set('HAVE_SOXR', 1)
 | 
					    cdata.set('HAVE_SOXR', 1)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  webrtc_dep = dependency('webrtc-audio-processing-1', version : '>= 1.0', required : get_option('webrtc-aec'))
 | 
					  webrtc_dep = dependency('webrtc-audio-processing', version : '>= 0.2', required : get_option('webrtc-aec'))
 | 
				
			||||||
  if webrtc_dep.found()
 | 
					  if webrtc_dep.found()
 | 
				
			||||||
    cdata.set('HAVE_WEBRTC', 1)
 | 
					    cdata.set('HAVE_WEBRTC', 1)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
| 
						 | 
					@ -741,10 +732,6 @@ if get_option('daemon')
 | 
				
			||||||
    cdata.set('HAVE_SYSTEMD_LOGIN', 1)
 | 
					    cdata.set('HAVE_SYSTEMD_LOGIN', 1)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if get_option('consolekit').enabled()
 | 
					 | 
				
			||||||
    assert(dbus_dep.found(), 'ConsoleKit requires D-Bus support')
 | 
					 | 
				
			||||||
  endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  tcpwrap_dep = cc.find_library('wrap', required: get_option('tcpwrap'))
 | 
					  tcpwrap_dep = cc.find_library('wrap', required: get_option('tcpwrap'))
 | 
				
			||||||
  if cc.has_header('tcpd.h') and cc.has_function('hosts_access', dependencies : tcpwrap_dep)
 | 
					  if cc.has_header('tcpd.h') and cc.has_function('hosts_access', dependencies : tcpwrap_dep)
 | 
				
			||||||
    cdata.set('HAVE_LIBWRAP', 1)
 | 
					    cdata.set('HAVE_LIBWRAP', 1)
 | 
				
			||||||
| 
						 | 
					@ -1014,7 +1001,6 @@ summary += [
 | 
				
			||||||
  '  Enable HAL->udev compat:     @0@'.format(get_option('hal-compat')),
 | 
					  '  Enable HAL->udev compat:     @0@'.format(get_option('hal-compat')),
 | 
				
			||||||
  'Enable systemd units:          @0@'.format(systemd_dep.found()),
 | 
					  'Enable systemd units:          @0@'.format(systemd_dep.found()),
 | 
				
			||||||
  'Enable elogind:                @0@'.format(libelogind_dep.found()),
 | 
					  'Enable elogind:                @0@'.format(libelogind_dep.found()),
 | 
				
			||||||
  'Enable ConsoleKit:             @0@'.format(not get_option('consolekit').disabled() and dbus_dep.found()),
 | 
					 | 
				
			||||||
  'Enable TCP Wrappers:           @0@'.format(tcpwrap_dep.found()),
 | 
					  'Enable TCP Wrappers:           @0@'.format(tcpwrap_dep.found()),
 | 
				
			||||||
  'Enable OpenSSL (for Airtunes): @0@'.format(openssl_dep.found()),
 | 
					  'Enable OpenSSL (for Airtunes): @0@'.format(openssl_dep.found()),
 | 
				
			||||||
  'Database:                      @0@'.format(get_option('database')),
 | 
					  'Database:                      @0@'.format(get_option('database')),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,9 +99,6 @@ option('bluez5-native-headset',
 | 
				
			||||||
option('bluez5-ofono-headset',
 | 
					option('bluez5-ofono-headset',
 | 
				
			||||||
       type : 'boolean',
 | 
					       type : 'boolean',
 | 
				
			||||||
       description : 'Optional oFono headset backend support (BlueZ 5)')
 | 
					       description : 'Optional oFono headset backend support (BlueZ 5)')
 | 
				
			||||||
option('consolekit',
 | 
					 | 
				
			||||||
       type : 'feature', value : 'auto',
 | 
					 | 
				
			||||||
       description : 'Optional ConsoleKit support')
 | 
					 | 
				
			||||||
option('dbus',
 | 
					option('dbus',
 | 
				
			||||||
       type : 'feature', value : 'auto',
 | 
					       type : 'feature', value : 'auto',
 | 
				
			||||||
       description : 'Optional D-Bus support')
 | 
					       description : 'Optional D-Bus support')
 | 
				
			||||||
| 
						 | 
					@ -169,7 +166,7 @@ option('x11',
 | 
				
			||||||
       type : 'feature', value : 'auto',
 | 
					       type : 'feature', value : 'auto',
 | 
				
			||||||
       description : 'Optional X11 support')
 | 
					       description : 'Optional X11 support')
 | 
				
			||||||
option('enable-smoother-2',
 | 
					option('enable-smoother-2',
 | 
				
			||||||
       type : 'boolean', value : true,
 | 
					       type : 'boolean', value : 'true',
 | 
				
			||||||
       description : 'Use alternative time smoother implementation')
 | 
					       description : 'Use alternative time smoother implementation')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Echo cancellation
 | 
					# Echo cancellation
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,3 @@ zh_TW
 | 
				
			||||||
eo
 | 
					eo
 | 
				
			||||||
si
 | 
					si
 | 
				
			||||||
ka
 | 
					ka
 | 
				
			||||||
eu
 | 
					 | 
				
			||||||
ar
 | 
					 | 
				
			||||||
sl
 | 
					 | 
				
			||||||
ro
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/af.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/af.po
									
										
									
									
									
								
							| 
						 | 
					@ -6,7 +6,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: master\n"
 | 
					"Project-Id-Version: master\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2019-01-09 12:17+0200\n"
 | 
					"PO-Revision-Date: 2019-01-09 12:17+0200\n"
 | 
				
			||||||
"Last-Translator: F Wolff <friedel@translate.org.za>\n"
 | 
					"Last-Translator: F Wolff <friedel@translate.org.za>\n"
 | 
				
			||||||
"Language-Team: translate-discuss-af@lists.sourceforge.net\n"
 | 
					"Language-Team: translate-discuss-af@lists.sourceforge.net\n"
 | 
				
			||||||
| 
						 | 
					@ -988,8 +988,8 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "FFT-gebaseerde effenaar op %s"
 | 
					msgstr "FFT-gebaseerde effenaar op %s"
 | 
				
			||||||
| 
						 | 
					@ -1046,14 +1046,14 @@ msgstr "Klank op @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tonnel vir %s@%s"
 | 
					msgstr "Tonnel vir %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tonnel na %s/%s"
 | 
					msgstr "Tonnel na %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1390,11 +1390,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Ingeboude oudio"
 | 
					msgstr "Ingeboude oudio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/as.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/as.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx.as\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx.as\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:52+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:52+0000\n"
 | 
				
			||||||
"Last-Translator: Amitakhya Phukan <aphukan@fedoraproject.org>\n"
 | 
					"Last-Translator: Amitakhya Phukan <aphukan@fedoraproject.org>\n"
 | 
				
			||||||
"Language-Team: Assamese <>\n"
 | 
					"Language-Team: Assamese <>\n"
 | 
				
			||||||
| 
						 | 
					@ -1142,8 +1142,8 @@ msgstr ""
 | 
				
			||||||
"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
					"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
				
			||||||
"input control values>"
 | 
					"input control values>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1206,14 +1206,14 @@ msgstr "@HOSTNAME@ ত অ'ডিঅ'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1564,11 +1564,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] লগ লক্ষ্য '%s' বৈধ নহয় ।"
 | 
					msgstr "[%s:%u] লগ লক্ষ্য '%s' বৈধ নহয় ।"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "আভ্যন্তৰীণ অ'ডিঅ'"
 | 
					msgstr "আভ্যন্তৰীণ অ'ডিঅ'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "মোডেম"
 | 
					msgstr "মোডেম"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										225
									
								
								po/be.po
									
										
									
									
									
								
							
							
						
						
									
										225
									
								
								po/be.po
									
										
									
									
									
								
							| 
						 | 
					@ -9,22 +9,20 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PulseAudio\n"
 | 
					"Project-Id-Version: PulseAudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2025-05-01 06:49+0000\n"
 | 
					"PO-Revision-Date: 2016-07-19 11:06+0300\n"
 | 
				
			||||||
"Last-Translator: Yauhen Bugamol "
 | 
					"Last-Translator: Viktar Vaŭčkievič <victorenator@gmail.com>\n"
 | 
				
			||||||
"<bugamol@users.noreply.translate.fedoraproject.org>\n"
 | 
					"Language-Team: Belarusian <>\n"
 | 
				
			||||||
"Language-Team: Belarusian <https://translate.fedoraproject.org/projects/"
 | 
					 | 
				
			||||||
"pulseaudio/pulseaudio/be/>\n"
 | 
					 | 
				
			||||||
"Language: be\n"
 | 
					"Language: be\n"
 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
"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=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"
 | 
				
			||||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 | 
					"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 | 
				
			||||||
"X-Generator: Weblate 5.11.1\n"
 | 
					"X-Generator: Lokalize 2.0\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -99,71 +97,70 @@ msgstr ""
 | 
				
			||||||
"Каманды:\n"
 | 
					"Каманды:\n"
 | 
				
			||||||
"  -h, --help                            Паказаць гэту даведку.\n"
 | 
					"  -h, --help                            Паказаць гэту даведку.\n"
 | 
				
			||||||
"      --version                         Паказаць версію.\n"
 | 
					"      --version                         Паказаць версію.\n"
 | 
				
			||||||
"      --dump-conf                       Выгрузіць прадвызначаную "
 | 
					"      --dump-conf                       Вывесці агаданую канфігурацыю.\n"
 | 
				
			||||||
"канфігурацыю.\n"
 | 
					"      --dump-modules                    Вывесці спіс даступных модуляў.\n"
 | 
				
			||||||
"      --dump-modules                    Выгрузіць спіс даступных модуляў.\n"
 | 
					"      --dump-resample-methods           Вывесці спіс даступных метадаў\n"
 | 
				
			||||||
"      --dump-resample-methods           Выгрузіць спіс даступных метадаў\n"
 | 
					 | 
				
			||||||
"                                        перадыскрэтызацыі.\n"
 | 
					"                                        перадыскрэтызацыі.\n"
 | 
				
			||||||
"      --cleanup-shm                     Ачысціць выкарыстаныя сегменты\n"
 | 
					"      --cleanup-shm                     Ачысціць выкарыстаныя сегменты\n"
 | 
				
			||||||
"                                        сумеснай памяці.\n"
 | 
					"                                        сумеснай памяці.\n"
 | 
				
			||||||
"      --start                           Запусціць дэман, калі ён\n"
 | 
					"      --start                           Запусціць фонавы сэрвіс, калі ён\n"
 | 
				
			||||||
"                                        яшчэ не запушчаны.\n"
 | 
					"                                        яшчэ не запушчаны.\n"
 | 
				
			||||||
"  -k  --kill                            Знішчыць запушчаны дэман.\n"
 | 
					"  -k  --kill                            Знішчыць запушчаны фонавы сэрвіс.\n"
 | 
				
			||||||
"      --check                           Праверыць ці запушчаны дэман\n"
 | 
					"      --check                           Праверыць ці запушчаны фонавы "
 | 
				
			||||||
 | 
					"сэрвіс\n"
 | 
				
			||||||
"                                        (толькі код завяршэння).\n"
 | 
					"                                        (толькі код завяршэння).\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Параметры:\n"
 | 
					"Параметры:\n"
 | 
				
			||||||
"      --system[=BOOL]                   Агульнасістэмны рэжым.\n"
 | 
					"      --system[=BOOL]                   Агульнасістэмны рэжым.\n"
 | 
				
			||||||
"  -D, --daemonize[=BOOL]                Запусціць як дэман.\n"
 | 
					"  -D, --daemonize[=BOOL]                Запусціць як фонавы сэрвіс.\n"
 | 
				
			||||||
"      --fail[=BOOL]                     Выйсці пры памылцы запуску.\n"
 | 
					"      --fail[=BOOL]                     Выйсці пры памылцы запуску.\n"
 | 
				
			||||||
"      --high-priority[=BOOL]            Паспрабаваць павысіць прыярытэт "
 | 
					"      --high-priority[=BOOL]            Паспрабаваць павысіць прыярытэт\n"
 | 
				
			||||||
"(nice)\n"
 | 
					"                                        (nice)\n"
 | 
				
			||||||
"                                        (даступна толькі карыстальніку root,"
 | 
					"                                        (даступна толькі карыстальніку "
 | 
				
			||||||
"\n"
 | 
					"root,\n"
 | 
				
			||||||
"                                        з уключаным SUID або з павышаным\n"
 | 
					"                                        з уключаным SUID ці з павышаным\n"
 | 
				
			||||||
"                                        RLIMIT_NICE).\n"
 | 
					"                                        RLIMIT_NICE).\n"
 | 
				
			||||||
"      --realtime[=BOOL]                 Паспрабаваць уключыць планіроўшчык\n"
 | 
					"      --realtime[=BOOL]                 Паспрабаваць уключыць планіроўшчык\n"
 | 
				
			||||||
"                                        рэальнага часу\n"
 | 
					"                                        рэальнага часу\n"
 | 
				
			||||||
"                                        (даступна толькі карыстальніку root,"
 | 
					"                                        (даступна толькі root,\n"
 | 
				
			||||||
"\n"
 | 
					"                                        з уключаным SUID ці з павышаным\n"
 | 
				
			||||||
"                                        з уключаным SUID або з павышаным\n"
 | 
					 | 
				
			||||||
"                                        RLIMIT_RTPRIO).\n"
 | 
					"                                        RLIMIT_RTPRIO).\n"
 | 
				
			||||||
"      --disallow-module-loading[=BOOL]  Забараніць загрузку/выгрузку "
 | 
					"      --disallow-module-loading[=BOOL]  Забараніць загрузку/выгрузку "
 | 
				
			||||||
"модуляў\n"
 | 
					"модуляў\n"
 | 
				
			||||||
"                                        па запыту карыстальніка пасля "
 | 
					"                                        па запыту карыстальніка пасля\n"
 | 
				
			||||||
"запуску.\n"
 | 
					"                                        запуску.\n"
 | 
				
			||||||
"      --disallow-exit[=BOOL]            Забараніць выхад па запыту\n"
 | 
					"      --disallow-exit[=BOOL]            Забараніць выхад па запыту\n"
 | 
				
			||||||
"                                        карыстальніка.\n"
 | 
					"                                        карыстальніка.\n"
 | 
				
			||||||
"      --exit-idle-time=СЕКУНДЫ          Завяршыць работу пасля азначанага\n"
 | 
					"      --exit-idle-time=СЕКУНДЫ          Завяршыць работу пасля азначанага\n"
 | 
				
			||||||
"                                        часу бяздзеяння.\n"
 | 
					"                                        часу бяздзеяння.\n"
 | 
				
			||||||
"      --scache-idle-time=СЕКУНДЫ        Выгрузіць аўтаматычна загружаныя\n"
 | 
					"      --scache-idle-time=СЕКУНДЫ        Выгрузіць аўтаматычна загружаныя\n"
 | 
				
			||||||
"                                        сэмплы пасля азначанага часу "
 | 
					"                                        сэмплы пасля азначанага часу\n"
 | 
				
			||||||
"бяздзеяння.\n"
 | 
					"                                        бяздзеяння.\n"
 | 
				
			||||||
"      --log-level[=УЗРОВЕНЬ]            Павялічыць або ўставіць узровень\n"
 | 
					"      --log-level[=УЗРОВЕНЬ]            Павялічыць або ўставіць узровень\n"
 | 
				
			||||||
"                                        інфарматыўнасці.\n"
 | 
					"                                        інфарматыўнасці.\n"
 | 
				
			||||||
"  -v  --verbose                         Павялічыць узровень інфарматыўнасці."
 | 
					"  -v  --verbose                         Павялічыць узровень "
 | 
				
			||||||
"\n"
 | 
					"інфарматыўнасці.\n"
 | 
				
			||||||
"      --log-target={auto,syslog,stderr,file:PATH,newfile:PATH}\n"
 | 
					"      --log-target={auto,syslog,stderr,file:PATH,newfile:PATH}\n"
 | 
				
			||||||
"                                        Вызначыць журнал.\n"
 | 
					"                                        Вызначыць журнал.\n"
 | 
				
			||||||
"      --log-meta[=BOOL]                 Дадаць месца ў кодзе да "
 | 
					"      --log-meta[=BOOL]                 Дадаць месца ў коду да паведамленняў "
 | 
				
			||||||
"паведамленняў журнала.\n"
 | 
					"журнала.\n"
 | 
				
			||||||
"      --log-time[=BOOL]                 Дадаць час да паведамленняў журнала."
 | 
					"      --log-time[=BOOL]                 Дадаць час да паведамленняў "
 | 
				
			||||||
"\n"
 | 
					"журнала.\n"
 | 
				
			||||||
"      --log-backtrace=FRAMES            Дадаць стэк выклікаў да "
 | 
					"      --log-backtrace=FRAMES            Дадаць стэк выклікаў да "
 | 
				
			||||||
"паведамленняў журнала.\n"
 | 
					"паведамленняў журнала.\n"
 | 
				
			||||||
"  -p, --dl-search-path=ШЛЯХ             Задаць шлях для пошуку дынамічных\n"
 | 
					"  -p, --dl-search-path=ШЛЯХ             Задаць шлях для пошуку дынамічных\n"
 | 
				
			||||||
"                                        раздзяляльных абʼектаў (плагінаў).\n"
 | 
					"                                        раздзяляльных абʼектаў (дадаткаў).\n"
 | 
				
			||||||
"      --resample-method=МЕТАД           Выкарыстоўваць азначаны метад\n"
 | 
					"      --resample-method=МЕТАД           Выкарыстоўваць азначаны метад\n"
 | 
				
			||||||
"                                        перадыскрэтызацыі\n"
 | 
					"                                        перадыскрэтызацыі\n"
 | 
				
			||||||
"                                        (Глядзіце --dump-resample-methods "
 | 
					"                                        (Глядзіце --dump-resample-methods\n"
 | 
				
			||||||
"для магчымых значэнняў).\n"
 | 
					"                                        для магчымых значэнняў).\n"
 | 
				
			||||||
"      --use-pid-file[=BOOL]             Стварыць PID-файл.\n"
 | 
					"      --use-pid-file[=BOOL]             Стварыць PID-файл.\n"
 | 
				
			||||||
"      --no-cpu-limit[=BOOL]             Не ўсталёўваць абмежаванні на "
 | 
					"      --no-cpu-limit[=BOOL]             Не ўсталёўваць абмежаванні на "
 | 
				
			||||||
"выкарыстанне\n"
 | 
					"выкарыстанне\n"
 | 
				
			||||||
"                                        працэсара на платформах, якія\n"
 | 
					"                                        працэсара на платформах, якія\n"
 | 
				
			||||||
"                                        падтрымліваюць гэта.\n"
 | 
					"                                        падтрымліваюць гэта.\n"
 | 
				
			||||||
"      --disable-shm[=BOOL]              Адключыць падтрымку сумеснай памяці."
 | 
					"      --disable-shm[=BOOL]              Адключыць падтрымку сумеснай "
 | 
				
			||||||
"\n"
 | 
					"памяці.\n"
 | 
				
			||||||
"      --enable-memfd[=BOOL]             Уключыць падтрымку memfd-сумеснай\n"
 | 
					"      --enable-memfd[=BOOL]             Уключыць падтрымку memfd-сумеснай\n"
 | 
				
			||||||
"                                        памяці.\n"
 | 
					"                                        памяці.\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -173,8 +170,7 @@ msgstr ""
 | 
				
			||||||
"  -F, --file=НАЗВА_ФАЙЛА                Выканаць азначаны сцэнарый.\n"
 | 
					"  -F, --file=НАЗВА_ФАЙЛА                Выканаць азначаны сцэнарый.\n"
 | 
				
			||||||
"  -C                                    Адкрыць камандны радок у\n"
 | 
					"  -C                                    Адкрыць камандны радок у\n"
 | 
				
			||||||
"                                        бягучым тэрмінале пасля запуску.\n"
 | 
					"                                        бягучым тэрмінале пасля запуску.\n"
 | 
				
			||||||
"  -n                                    Не загружаць прадвызначаны файл "
 | 
					"  -n                                    Не загружаць агаданы файл сцэнарыю.\n"
 | 
				
			||||||
"сцэнарыя.\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:246
 | 
					#: src/daemon/cmdline.c:246
 | 
				
			||||||
msgid "--daemonize expects boolean argument"
 | 
					msgid "--daemonize expects boolean argument"
 | 
				
			||||||
| 
						 | 
					@ -512,7 +508,7 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:922
 | 
					#: src/daemon/main.c:922
 | 
				
			||||||
msgid "Failed to acquire stdio."
 | 
					msgid "Failed to acquire stdio."
 | 
				
			||||||
msgstr "Не ўдалося атрымаць stdio."
 | 
					msgstr "Не атрымалася атрымаць 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
 | 
				
			||||||
| 
						 | 
					@ -540,7 +536,7 @@ msgstr "setsid() пацярпела няўдачу: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1119
 | 
					#: src/daemon/main.c:1119
 | 
				
			||||||
msgid "Failed to get machine ID"
 | 
					msgid "Failed to get machine ID"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць ідэнтыфікатар машыны"
 | 
					msgstr "Не атрымалася атрымаць ідэнтыфікатар машыны"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1145
 | 
					#: src/daemon/main.c:1145
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -565,8 +561,9 @@ msgid "pa_core_new() failed."
 | 
				
			||||||
msgstr "pa_core_new() пацярпела няўдачу."
 | 
					msgstr "pa_core_new() пацярпела няўдачу."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1268
 | 
					#: src/daemon/main.c:1268
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "command line arguments"
 | 
					msgid "command line arguments"
 | 
				
			||||||
msgstr "аргументы каманднага радка"
 | 
					msgstr "Занадта шмат аргументаў."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1275
 | 
					#: src/daemon/main.c:1275
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -699,12 +696,14 @@ msgid "Analog Output"
 | 
				
			||||||
msgstr "Аналагавы выхад"
 | 
					msgstr "Аналагавы выхад"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2808
 | 
					#: src/modules/alsa/alsa-mixer.c:2808
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Headphones 2"
 | 
					msgid "Headphones 2"
 | 
				
			||||||
msgstr "Навушнікі 2"
 | 
					msgstr "Навушнікі"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2809
 | 
					#: src/modules/alsa/alsa-mixer.c:2809
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Headphones Mono Output"
 | 
					msgid "Headphones Mono Output"
 | 
				
			||||||
msgstr "Манавыхад навушнікаў"
 | 
					msgstr "Аналагавы монавыхад"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2810
 | 
					#: src/modules/alsa/alsa-mixer.c:2810
 | 
				
			||||||
msgid "Line Out"
 | 
					msgid "Line Out"
 | 
				
			||||||
| 
						 | 
					@ -712,7 +711,7 @@ msgstr "Лінейны выхад"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2811
 | 
					#: src/modules/alsa/alsa-mixer.c:2811
 | 
				
			||||||
msgid "Analog Mono Output"
 | 
					msgid "Analog Mono Output"
 | 
				
			||||||
msgstr "Аналагавы манавыхад"
 | 
					msgstr "Аналагавы монавыхад"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2812
 | 
					#: src/modules/alsa/alsa-mixer.c:2812
 | 
				
			||||||
msgid "Speakers"
 | 
					msgid "Speakers"
 | 
				
			||||||
| 
						 | 
					@ -739,32 +738,38 @@ msgid "Multichannel Output"
 | 
				
			||||||
msgstr "Шматканальны выхад"
 | 
					msgstr "Шматканальны выхад"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2818
 | 
					#: src/modules/alsa/alsa-mixer.c:2818
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Game Output"
 | 
					msgid "Game Output"
 | 
				
			||||||
msgstr "Выхад гульні"
 | 
					msgstr "%s выхад"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Chat Output"
 | 
					msgid "Chat Output"
 | 
				
			||||||
msgstr "Выхад размовы"
 | 
					msgstr "%s выхад"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2821
 | 
					#: src/modules/alsa/alsa-mixer.c:2821
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Chat Input"
 | 
					msgid "Chat Input"
 | 
				
			||||||
msgstr "Уваход размовы"
 | 
					msgstr "%s уваход"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2822
 | 
					#: src/modules/alsa/alsa-mixer.c:2822
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Virtual Surround 7.1"
 | 
					msgid "Virtual Surround 7.1"
 | 
				
			||||||
msgstr "Віртуальны абʼёмны 7.1"
 | 
					msgstr "Віртуальны абʼёмны прыёмнік"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4563
 | 
					#: src/modules/alsa/alsa-mixer.c:4563
 | 
				
			||||||
msgid "Analog Mono"
 | 
					msgid "Analog Mono"
 | 
				
			||||||
msgstr "Аналагавы мона"
 | 
					msgstr "Аналагавы мона"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4564
 | 
					#: src/modules/alsa/alsa-mixer.c:4564
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Analog Mono (Left)"
 | 
					msgid "Analog Mono (Left)"
 | 
				
			||||||
msgstr "Аналагавы мона (левы)"
 | 
					msgstr "Аналагавы мона"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4565
 | 
					#: src/modules/alsa/alsa-mixer.c:4565
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Analog Mono (Right)"
 | 
					msgid "Analog Mono (Right)"
 | 
				
			||||||
msgstr "Аналагавы мона (правы)"
 | 
					msgstr "Аналагавы мона"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Note: Not translated to "Analog Stereo Input", because the source
 | 
					#. Note: Not translated to "Analog Stereo Input", because the source
 | 
				
			||||||
#. * name gets "Input" appended to it automatically, so adding "Input"
 | 
					#. * name gets "Input" appended to it automatically, so adding "Input"
 | 
				
			||||||
| 
						 | 
					@ -791,8 +796,9 @@ msgid "Headset"
 | 
				
			||||||
msgstr "Гарнітура"
 | 
					msgstr "Гарнітура"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4577 src/modules/alsa/alsa-mixer.c:4735
 | 
					#: src/modules/alsa/alsa-mixer.c:4577 src/modules/alsa/alsa-mixer.c:4735
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Speakerphone"
 | 
					msgid "Speakerphone"
 | 
				
			||||||
msgstr "Гучная сувязь"
 | 
					msgstr "Дынамік"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4578 src/modules/alsa/alsa-mixer.c:4579
 | 
					#: src/modules/alsa/alsa-mixer.c:4578 src/modules/alsa/alsa-mixer.c:4579
 | 
				
			||||||
msgid "Multichannel"
 | 
					msgid "Multichannel"
 | 
				
			||||||
| 
						 | 
					@ -868,35 +874,36 @@ msgstr "Лічбавы абʼёмны 5.1 (HDMI)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4597
 | 
					#: src/modules/alsa/alsa-mixer.c:4597
 | 
				
			||||||
msgid "Chat"
 | 
					msgid "Chat"
 | 
				
			||||||
msgstr "Размова"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4598
 | 
					#: src/modules/alsa/alsa-mixer.c:4598
 | 
				
			||||||
msgid "Game"
 | 
					msgid "Game"
 | 
				
			||||||
msgstr "Гульня"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4732
 | 
					#: src/modules/alsa/alsa-mixer.c:4732
 | 
				
			||||||
msgid "Analog Mono Duplex"
 | 
					msgid "Analog Mono Duplex"
 | 
				
			||||||
msgstr "Дуплексны аналагавы мона"
 | 
					msgstr "Аналагавы мона дуплекс"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4733
 | 
					#: src/modules/alsa/alsa-mixer.c:4733
 | 
				
			||||||
msgid "Analog Stereo Duplex"
 | 
					msgid "Analog Stereo Duplex"
 | 
				
			||||||
msgstr "Дуплексны аналагавы стэрэа"
 | 
					msgstr "Аналагавы стэрэа дуплекс"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4736
 | 
					#: src/modules/alsa/alsa-mixer.c:4736
 | 
				
			||||||
msgid "Digital Stereo Duplex (IEC958)"
 | 
					msgid "Digital Stereo Duplex (IEC958)"
 | 
				
			||||||
msgstr "Дуплексны лічбавы стэрэа (IEC958)"
 | 
					msgstr "Лічбавы стэрэа дуплекс (IEC958)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4737
 | 
					#: src/modules/alsa/alsa-mixer.c:4737
 | 
				
			||||||
msgid "Multichannel Duplex"
 | 
					msgid "Multichannel Duplex"
 | 
				
			||||||
msgstr "Дуплексны шматканальны"
 | 
					msgstr "Шматканальны дуплекс"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4738
 | 
					#: src/modules/alsa/alsa-mixer.c:4738
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Stereo Duplex"
 | 
					msgid "Stereo Duplex"
 | 
				
			||||||
msgstr "Дуплексны стэрэа"
 | 
					msgstr "Аналагавы стэрэа дуплекс"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4739
 | 
					#: src/modules/alsa/alsa-mixer.c:4739
 | 
				
			||||||
msgid "Mono Chat + 7.1 Surround"
 | 
					msgid "Mono Chat + 7.1 Surround"
 | 
				
			||||||
msgstr "Размова, мона + аб'ёмны 7.1"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4740 src/modules/alsa/module-alsa-card.c:197
 | 
					#: src/modules/alsa/alsa-mixer.c:4740 src/modules/alsa/module-alsa-card.c:197
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2263
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2263
 | 
				
			||||||
| 
						 | 
					@ -1170,8 +1177,8 @@ msgstr ""
 | 
				
			||||||
"autoloaded=<зададзены, калі гэты модуль загружаны аўтаматычна> "
 | 
					"autoloaded=<зададзены, калі гэты модуль загружаны аўтаматычна> "
 | 
				
			||||||
"use_volume_sharing=<yes ці no> "
 | 
					"use_volume_sharing=<yes ці no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1236,14 +1243,14 @@ msgstr "Аўдыя на @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Тунэль для %s@%s"
 | 
					msgstr "Тунэль для %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Тунэль да %s/%s"
 | 
					msgstr "Тунэль да %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1253,6 +1260,7 @@ msgid "Virtual surround sink"
 | 
				
			||||||
msgstr "Віртуальны абʼёмны прыёмнік"
 | 
					msgstr "Віртуальны абʼёмны прыёмнік"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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> "
 | 
				
			||||||
| 
						 | 
					@ -1263,21 +1271,19 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> "
 | 
					"this module is being loaded automatically> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"sink_name=<назва прыёмніка> sink_properties=<уласцівасці прыёмніка> "
 | 
					"sink_name=<назва прыёмніка> sink_properties=<уласцівасці прыёмніка> "
 | 
				
			||||||
"master=<назва прыёмніка для фільтрацыі> sink_master=<назва прыёмніка для "
 | 
					"master=<назва прыёмніка для фільтрацыі> format=<фармат сэмлаў> rate=<частата "
 | 
				
			||||||
"фільтрацыі> format=<фармат сэмлаў> rate=<частата дыскрэдытацыі> "
 | 
					"сэмлаў> channels=<number of channels> channel_map=<колькасць каналаў> "
 | 
				
			||||||
"channels=<колькасць каналаў> channel_map=<карта каналаў> "
 | 
					"use_volume_sharing=<yes ці no> force_flat_volume=<yes ці no> hrir=<шлях да "
 | 
				
			||||||
"use_volume_sharing=<yes або no> force_flat_volume=<yes або no> hrir=/шлях/да/"
 | 
					"left_hrir.wav> "
 | 
				
			||||||
"левага_hrir.wav hrir_left=/шлях/да/левага_hrir.wav "
 | 
					 | 
				
			||||||
"hrir_right=/шлях/да/неабавязковага/правага_hrir.wav autoloaded=<задаецца, "
 | 
					 | 
				
			||||||
"калі модуль загружаецца аўтаматычна> "
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/raop/module-raop-discover.c:295
 | 
					#: src/modules/raop/module-raop-discover.c:295
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Unknown device model"
 | 
					msgid "Unknown device model"
 | 
				
			||||||
msgstr "Невядомая мадэль прылады"
 | 
					msgstr "Невядомы код памылкі"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/raop/raop-sink.c:689
 | 
					#: src/modules/raop/raop-sink.c:689
 | 
				
			||||||
msgid "RAOP standard profile"
 | 
					msgid "RAOP standard profile"
 | 
				
			||||||
msgstr "Стандартны профіль RAOP"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/reserve-wrap.c:149
 | 
					#: src/modules/reserve-wrap.c:149
 | 
				
			||||||
msgid "PulseAudio Sound Server"
 | 
					msgid "PulseAudio Sound Server"
 | 
				
			||||||
| 
						 | 
					@ -1591,11 +1597,11 @@ msgstr "Не атрымалася адкрыць файлы журнала «%s
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Некарэктны журнал."
 | 
					msgstr "Некарэктны журнал."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Убудаванае аўдыя"
 | 
					msgstr "Убудаванае аўдыя"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Мадэм"
 | 
					msgstr "Мадэм"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1826,7 +1832,7 @@ msgstr "Паток перасунуты ў прыладу %s (%u, %sпрыпын
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:393
 | 
					#: src/utils/pacat.c:393
 | 
				
			||||||
msgid "not "
 | 
					msgid "not "
 | 
				
			||||||
msgstr "не "
 | 
					msgstr "не"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:400
 | 
					#: src/utils/pacat.c:400
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -1897,7 +1903,7 @@ msgstr "Атрыманы сігнал — выхад."
 | 
				
			||||||
#: src/utils/pacat.c:640
 | 
					#: src/utils/pacat.c:640
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get latency: %s"
 | 
					msgid "Failed to get latency: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць затрымку: %s"
 | 
					msgstr "Не атрымалася атрымаць затрымку: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:645
 | 
					#: src/utils/pacat.c:645
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2362,7 +2368,7 @@ msgstr "read(): %s"
 | 
				
			||||||
#: src/utils/pactl.c:183
 | 
					#: src/utils/pactl.c:183
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get statistics: %s"
 | 
					msgid "Failed to get statistics: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць статыстыку: %s"
 | 
					msgstr "Не атрымалася атрымаць статыстыку: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:199
 | 
					#: src/utils/pactl.c:199
 | 
				
			||||||
#, fuzzy, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
| 
						 | 
					@ -2398,7 +2404,7 @@ msgstr "Памер кэшу сэмплаў: %s\n"
 | 
				
			||||||
#: src/utils/pactl.c:219 src/utils/pactl.c:231 src/utils/pactl.c:245
 | 
					#: src/utils/pactl.c:219 src/utils/pactl.c:231 src/utils/pactl.c:245
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get server information: %s"
 | 
					msgid "Failed to get server information: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць інфармацыю аб серверы: %s"
 | 
					msgstr "Не атрымалася атрымаць інфармацыю аб серверы: %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
 | 
				
			||||||
| 
						 | 
					@ -2447,15 +2453,15 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:320
 | 
					#: src/utils/pactl.c:320
 | 
				
			||||||
msgid "availability unknown"
 | 
					msgid "availability unknown"
 | 
				
			||||||
msgstr "даступнасць невядомая"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:321
 | 
					#: src/utils/pactl.c:321
 | 
				
			||||||
msgid "available"
 | 
					msgid "available"
 | 
				
			||||||
msgstr "даступна"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:322
 | 
					#: src/utils/pactl.c:322
 | 
				
			||||||
msgid "not available"
 | 
					msgid "not available"
 | 
				
			||||||
msgstr "недаступна"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:331 src/utils/pactl.c:355
 | 
					#: src/utils/pactl.c:331 src/utils/pactl.c:355
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
| 
						 | 
					@ -2473,7 +2479,7 @@ msgstr "Лінейны ўваход"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:336
 | 
					#: src/utils/pactl.c:336
 | 
				
			||||||
msgid "Mic"
 | 
					msgid "Mic"
 | 
				
			||||||
msgstr "Мікрафон"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:338
 | 
					#: src/utils/pactl.c:338
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
| 
						 | 
					@ -2486,11 +2492,11 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:340
 | 
					#: src/utils/pactl.c:340
 | 
				
			||||||
msgid "SPDIF"
 | 
					msgid "SPDIF"
 | 
				
			||||||
msgstr "SPDIF"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:341
 | 
					#: src/utils/pactl.c:341
 | 
				
			||||||
msgid "HDMI"
 | 
					msgid "HDMI"
 | 
				
			||||||
msgstr "HDMI"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:342
 | 
					#: src/utils/pactl.c:342
 | 
				
			||||||
msgid "TV"
 | 
					msgid "TV"
 | 
				
			||||||
| 
						 | 
					@ -2498,7 +2504,7 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:345
 | 
					#: src/utils/pactl.c:345
 | 
				
			||||||
msgid "USB"
 | 
					msgid "USB"
 | 
				
			||||||
msgstr "USB"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:346
 | 
					#: src/utils/pactl.c:346
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
| 
						 | 
					@ -2507,17 +2513,18 @@ msgstr "Bluetooth-уваход"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:352
 | 
					#: src/utils/pactl.c:352
 | 
				
			||||||
msgid "Network"
 | 
					msgid "Network"
 | 
				
			||||||
msgstr "Сетка"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:353
 | 
					#: src/utils/pactl.c:353
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Analog"
 | 
					msgid "Analog"
 | 
				
			||||||
msgstr "Аналагавы"
 | 
					msgstr "Аналагавы мона"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:567 src/utils/pactl.c:1834 src/utils/pactl.c:1852
 | 
					#: src/utils/pactl.c:567 src/utils/pactl.c:1834 src/utils/pactl.c:1852
 | 
				
			||||||
#: src/utils/pactl.c:1875 src/utils/pactl.c:1992
 | 
					#: src/utils/pactl.c:1875 src/utils/pactl.c:1992
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get sink information: %s"
 | 
					msgid "Failed to get sink information: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць інфармацыю аб прыёмніку: %s"
 | 
					msgstr "Не атрымалася атрымаць інфармацыю аб прыёмніку: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:664
 | 
					#: src/utils/pactl.c:664
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2564,13 +2571,13 @@ msgid "\tPorts:\n"
 | 
				
			||||||
msgstr "\tПарты:\n"
 | 
					msgstr "\tПарты:\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
					#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "\t\t%s: %s (type: %s, priority: %u%s%s, %s)\n"
 | 
					msgid "\t\t%s: %s (type: %s, priority: %u%s%s, %s)\n"
 | 
				
			||||||
msgstr "\t\t%s: %s (тып: %s, прыярытэт: %u%s%s, %s)\n"
 | 
					msgstr "\t\t%s: %s (прыёмнікаў: %u, крыніц: %u, прыярытэт: %u, даступны: %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
 | 
				
			||||||
msgid ", availability group: "
 | 
					msgid ", availability group: "
 | 
				
			||||||
msgstr ", група даступнасці: "
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:715 src/utils/pactl.c:899
 | 
					#: src/utils/pactl.c:715 src/utils/pactl.c:899
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2586,7 +2593,7 @@ msgstr "\tФарматы:\n"
 | 
				
			||||||
#: src/utils/pactl.c:1934 src/utils/pactl.c:2007
 | 
					#: src/utils/pactl.c:1934 src/utils/pactl.c:2007
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get source information: %s"
 | 
					msgid "Failed to get source information: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць інфармацыю аб крыніцы: %s"
 | 
					msgstr "Не атрымалася атрымаць інфармацыю аб крыніцы: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:849
 | 
					#: src/utils/pactl.c:849
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2638,7 +2645,7 @@ msgstr "н/д"
 | 
				
			||||||
#: src/utils/pactl.c:924 src/utils/pactl.c:1793
 | 
					#: src/utils/pactl.c:924 src/utils/pactl.c:1793
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get module information: %s"
 | 
					msgid "Failed to get module information: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць інфармацыю аб модулі: %s"
 | 
					msgstr "Не атрымалася атрымаць інфармацыю аб модулі: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:976
 | 
					#: src/utils/pactl.c:976
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2660,7 +2667,7 @@ msgstr ""
 | 
				
			||||||
#: src/utils/pactl.c:1002
 | 
					#: src/utils/pactl.c:1002
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get client information: %s"
 | 
					msgid "Failed to get client information: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць інфармацыю аб кліенце: %s"
 | 
					msgstr "Не атрымалася атрымаць інфармацыю аб кліенце: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1056
 | 
					#: src/utils/pactl.c:1056
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2680,7 +2687,7 @@ msgstr ""
 | 
				
			||||||
#: src/utils/pactl.c:1168
 | 
					#: src/utils/pactl.c:1168
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get card information: %s"
 | 
					msgid "Failed to get card information: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць інфармацыю аб картцы: %s"
 | 
					msgstr "Не атрымалася атрымаць інфармацыю аб картцы: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1224
 | 
					#: src/utils/pactl.c:1224
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2737,7 +2744,7 @@ msgstr "\t\t\tЧастка профілю(яў): %s"
 | 
				
			||||||
#: src/utils/pactl.c:1290 src/utils/pactl.c:1954 src/utils/pactl.c:2022
 | 
					#: src/utils/pactl.c:1290 src/utils/pactl.c:1954 src/utils/pactl.c:2022
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get sink input information: %s"
 | 
					msgid "Failed to get sink input information: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць інфармацыю аб уваходзе прыёмніка: %s"
 | 
					msgstr "Не атрымалася атрымаць інфармацыю аб уваходзе прыёмніка: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1366
 | 
					#: src/utils/pactl.c:1366
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2781,7 +2788,7 @@ msgstr ""
 | 
				
			||||||
#: src/utils/pactl.c:1413 src/utils/pactl.c:1974 src/utils/pactl.c:2037
 | 
					#: src/utils/pactl.c:1413 src/utils/pactl.c:1974 src/utils/pactl.c:2037
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get source output information: %s"
 | 
					msgid "Failed to get source output information: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць інфармацыю аб выхадзе крыніцы: %s"
 | 
					msgstr "Не атрымалася атрымаць інфармацыю аб выхадзе крыніцы: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1489
 | 
					#: src/utils/pactl.c:1489
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2825,7 +2832,7 @@ msgstr ""
 | 
				
			||||||
#: src/utils/pactl.c:1536
 | 
					#: src/utils/pactl.c:1536
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get sample information: %s"
 | 
					msgid "Failed to get sample information: %s"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць інфармацыю аб сэмпле: %s"
 | 
					msgstr "Не атрымалася атрымаць інфармацыю аб сэмпле: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1604
 | 
					#: src/utils/pactl.c:1604
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2885,9 +2892,9 @@ msgid "list-handlers message response array element %d is not a JSON object"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1800
 | 
					#: src/utils/pactl.c:1800
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "Failed to unload module: Module %s not loaded"
 | 
					msgid "Failed to unload module: Module %s not loaded"
 | 
				
			||||||
msgstr "Не ўдалося выгрузіць модуль: модуль %s не загружаны"
 | 
					msgstr "Не атрымалася выгрузіць модуль: модуль не загружаны"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1818
 | 
					#: src/utils/pactl.c:1818
 | 
				
			||||||
#, fuzzy, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
| 
						 | 
					@ -3261,7 +3268,7 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3194
 | 
					#: src/utils/pactl.c:3194
 | 
				
			||||||
msgid "You have to specify a card name/index, a port name and a latency offset"
 | 
					msgid "You have to specify a card name/index, a port name and a latency offset"
 | 
				
			||||||
msgstr "Неабходна задаць назву/нумар карты, назву порта і зрух затрымкі"
 | 
					msgstr "Неабходна задаць нумар ці назву карткі, назву порту і зрух затрымкі."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3201
 | 
					#: src/utils/pactl.c:3201
 | 
				
			||||||
msgid "Could not parse latency offset"
 | 
					msgid "Could not parse latency offset"
 | 
				
			||||||
| 
						 | 
					@ -3416,7 +3423,7 @@ msgstr "Не атрымалася захаваць дадзеныя cookie\n"
 | 
				
			||||||
#: src/utils/pax11publish.c:168
 | 
					#: src/utils/pax11publish.c:168
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to get FQDN.\n"
 | 
					msgid "Failed to get FQDN.\n"
 | 
				
			||||||
msgstr "Не ўдалося атрымаць поўнае даменнае імя (FQDN).\n"
 | 
					msgstr "Не атрымалася атрымаць поўнае даменнае імя (FQDN).\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pax11publish.c:188
 | 
					#: src/utils/pax11publish.c:188
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/bg.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/bg.po
									
										
									
									
									
								
							| 
						 | 
					@ -4,7 +4,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
					"Project-Id-Version: PACKAGE VERSION\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2020-10-15 21:30+0000\n"
 | 
					"PO-Revision-Date: 2020-10-15 21:30+0000\n"
 | 
				
			||||||
"Last-Translator: Emanuil Novachev <em.novachev@gmail.com>\n"
 | 
					"Last-Translator: Emanuil Novachev <em.novachev@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Bulgarian <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Bulgarian <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -1046,8 +1046,8 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1104,14 +1104,14 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1448,11 +1448,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/bn_IN.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/bn_IN.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx.bn_IN\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx.bn_IN\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:52+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:52+0000\n"
 | 
				
			||||||
"Last-Translator: Runa Bhattacharjee <runab@redhat.com>\n"
 | 
					"Last-Translator: Runa Bhattacharjee <runab@redhat.com>\n"
 | 
				
			||||||
"Language-Team: Bengali INDIA <anubad@lists.ankur.org.in>\n"
 | 
					"Language-Team: Bengali INDIA <anubad@lists.ankur.org.in>\n"
 | 
				
			||||||
| 
						 | 
					@ -1157,8 +1157,8 @@ msgstr ""
 | 
				
			||||||
"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
					"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
				
			||||||
"input control values>"
 | 
					"input control values>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1221,14 +1221,14 @@ msgstr "@HOSTNAME@-র মধ্যে অডিও"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1579,11 +1579,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] লগ টার্গেট '%s' বৈধ নয়।"
 | 
					msgstr "[%s:%u] লগ টার্গেট '%s' বৈধ নয়।"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "অভ্যন্তরীণ অডিও"
 | 
					msgstr "অভ্যন্তরীণ অডিও"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "মোডেম"
 | 
					msgstr "মোডেম"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										49
									
								
								po/ca.po
									
										
									
									
									
								
							
							
						
						
									
										49
									
								
								po/ca.po
									
										
									
									
									
								
							| 
						 | 
					@ -28,17 +28,14 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-09-26 14:19+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:52+0000\n"
 | 
				
			||||||
"Last-Translator: Toni Estevez <toni.estevez@gmail.com>\n"
 | 
					"Last-Translator: Josep Torné Llavall <josep.torne@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Catalan <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Catalan <fedora@softcatala.net>\n"
 | 
				
			||||||
"pulseaudio/pulseaudio/ca/>\n"
 | 
					 | 
				
			||||||
"Language: ca\n"
 | 
					"Language: ca\n"
 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
"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"
 | 
					 | 
				
			||||||
"X-Generator: Weblate 4.14.1\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, fuzzy, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
| 
						 | 
					@ -707,23 +704,25 @@ msgstr "Entrada analògica"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2800
 | 
					#: src/modules/alsa/alsa-mixer.c:2800
 | 
				
			||||||
msgid "Dock Microphone"
 | 
					msgid "Dock Microphone"
 | 
				
			||||||
msgstr "Micròfon de l'acoblador"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2802
 | 
					#: src/modules/alsa/alsa-mixer.c:2802
 | 
				
			||||||
msgid "Headset Microphone"
 | 
					msgid "Headset Microphone"
 | 
				
			||||||
msgstr "Micròfon de l'auricular"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2806
 | 
					#: src/modules/alsa/alsa-mixer.c:2806
 | 
				
			||||||
msgid "Analog Output"
 | 
					msgid "Analog Output"
 | 
				
			||||||
msgstr "Sortida analògica"
 | 
					msgstr "Sortida analògica"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2808
 | 
					#: src/modules/alsa/alsa-mixer.c:2808
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Headphones 2"
 | 
					msgid "Headphones 2"
 | 
				
			||||||
msgstr "Auriculars 2"
 | 
					msgstr "Auriculars"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2809
 | 
					#: src/modules/alsa/alsa-mixer.c:2809
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Headphones Mono Output"
 | 
					msgid "Headphones Mono Output"
 | 
				
			||||||
msgstr "Sortida mono analògica dels auriculars"
 | 
					msgstr "Sortida mono analògica"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2810
 | 
					#: src/modules/alsa/alsa-mixer.c:2810
 | 
				
			||||||
msgid "Line Out"
 | 
					msgid "Line Out"
 | 
				
			||||||
| 
						 | 
					@ -880,7 +879,7 @@ msgstr "Envoltant digital 4.0 (IEC958/AC3)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4593
 | 
					#: src/modules/alsa/alsa-mixer.c:4593
 | 
				
			||||||
msgid "Digital Surround 5.1 (IEC958/AC3)"
 | 
					msgid "Digital Surround 5.1 (IEC958/AC3)"
 | 
				
			||||||
msgstr "Envoltant digital 5.1 (IEC958/AC3)"
 | 
					msgstr "Envolvent digital 5.1 (IEC958/AC3)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4594
 | 
					#: src/modules/alsa/alsa-mixer.c:4594
 | 
				
			||||||
msgid "Digital Surround 5.1 (IEC958/DTS)"
 | 
					msgid "Digital Surround 5.1 (IEC958/DTS)"
 | 
				
			||||||
| 
						 | 
					@ -896,11 +895,11 @@ msgstr "So envoltant digital 5.1 (HDMI)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4597
 | 
					#: src/modules/alsa/alsa-mixer.c:4597
 | 
				
			||||||
msgid "Chat"
 | 
					msgid "Chat"
 | 
				
			||||||
msgstr "Xat"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4598
 | 
					#: src/modules/alsa/alsa-mixer.c:4598
 | 
				
			||||||
msgid "Game"
 | 
					msgid "Game"
 | 
				
			||||||
msgstr "Joc"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4732
 | 
					#: src/modules/alsa/alsa-mixer.c:4732
 | 
				
			||||||
msgid "Analog Mono Duplex"
 | 
					msgid "Analog Mono Duplex"
 | 
				
			||||||
| 
						 | 
					@ -1176,8 +1175,8 @@ msgstr ""
 | 
				
			||||||
"pulgin=<nom del connector ladspa> label=<etiqueta del connector ladspa> "
 | 
					"pulgin=<nom del connector ladspa> label=<etiqueta del connector ladspa> "
 | 
				
			||||||
"control=<llista separada per comes dels valors de control d'entrada>"
 | 
					"control=<llista separada per comes dels valors de control d'entrada>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1240,14 +1239,14 @@ msgstr "Àudio a @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Túnel per %s@%s"
 | 
					msgstr "Túnel per %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1448,7 +1447,7 @@ msgstr "Auxiliar 28"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulse/channelmap.c:150
 | 
					#: src/pulse/channelmap.c:150
 | 
				
			||||||
msgid "Auxiliary 29"
 | 
					msgid "Auxiliary 29"
 | 
				
			||||||
msgstr "Auxiliar 29"
 | 
					msgstr "Auxiliar 31"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulse/channelmap.c:151
 | 
					#: src/pulse/channelmap.c:151
 | 
				
			||||||
msgid "Auxiliary 30"
 | 
					msgid "Auxiliary 30"
 | 
				
			||||||
| 
						 | 
					@ -1591,11 +1590,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Àudio intern"
 | 
					msgstr "Àudio intern"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Mòdem"
 | 
					msgstr "Mòdem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2775,12 +2774,10 @@ msgstr ""
 | 
				
			||||||
#: 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 ""
 | 
					msgstr ""
 | 
				
			||||||
"no s'ha pogut analitzar correctament la resposta del missatge de list-"
 | 
					 | 
				
			||||||
"handlers"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 "la resposta del missatge de list-handlers no és una matriu de JSON"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1729
 | 
					#: src/utils/pactl.c:1729
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										69
									
								
								po/cs.po
									
										
									
									
									
								
							
							
						
						
									
										69
									
								
								po/cs.po
									
										
									
									
									
								
							| 
						 | 
					@ -10,17 +10,16 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2023-12-31 14:36+0000\n"
 | 
					"PO-Revision-Date: 2018-09-30 17:34+0200\n"
 | 
				
			||||||
"Last-Translator: Matěj Valášek <valmatej@seznam.cz>\n"
 | 
					"Last-Translator: Marek Černocký <marek@manet.cz>\n"
 | 
				
			||||||
"Language-Team: Czech <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
 | 
				
			||||||
"pulseaudio/pulseaudio/cs/>\n"
 | 
					 | 
				
			||||||
"Language: cs\n"
 | 
					"Language: cs\n"
 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
"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=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 | 
					"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 | 
				
			||||||
"X-Generator: Weblate 5.3.1\n"
 | 
					"X-Generator: Gtranslator 2.91.7\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, fuzzy, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
| 
						 | 
					@ -562,8 +561,6 @@ msgid ""
 | 
				
			||||||
"Failed to initialize daemon due to errors while executing startup commands. "
 | 
					"Failed to initialize daemon due to errors while executing startup commands. "
 | 
				
			||||||
"Source of commands: %s"
 | 
					"Source of commands: %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Nepodařilo se inicializovat démona kvůli chybám při provádění startup "
 | 
					 | 
				
			||||||
"příkazů. Zdroj příkazů: %s"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1280
 | 
					#: src/daemon/main.c:1280
 | 
				
			||||||
msgid "Daemon startup without any loaded modules, refusing to work."
 | 
					msgid "Daemon startup without any loaded modules, refusing to work."
 | 
				
			||||||
| 
						 | 
					@ -862,11 +859,11 @@ msgstr "Digitální Surround 5.1 (HDMI)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4597
 | 
					#: src/modules/alsa/alsa-mixer.c:4597
 | 
				
			||||||
msgid "Chat"
 | 
					msgid "Chat"
 | 
				
			||||||
msgstr "Chat"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4598
 | 
					#: src/modules/alsa/alsa-mixer.c:4598
 | 
				
			||||||
msgid "Game"
 | 
					msgid "Game"
 | 
				
			||||||
msgstr "Hra"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4732
 | 
					#: src/modules/alsa/alsa-mixer.c:4732
 | 
				
			||||||
msgid "Analog Mono Duplex"
 | 
					msgid "Analog Mono Duplex"
 | 
				
			||||||
| 
						 | 
					@ -890,7 +887,7 @@ msgstr "Duplexní stereo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4739
 | 
					#: src/modules/alsa/alsa-mixer.c:4739
 | 
				
			||||||
msgid "Mono Chat + 7.1 Surround"
 | 
					msgid "Mono Chat + 7.1 Surround"
 | 
				
			||||||
msgstr "Mono Chat + 7.1 Surround"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4740 src/modules/alsa/module-alsa-card.c:197
 | 
					#: src/modules/alsa/alsa-mixer.c:4740 src/modules/alsa/module-alsa-card.c:197
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2263
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2263
 | 
				
			||||||
| 
						 | 
					@ -1161,8 +1158,8 @@ msgstr ""
 | 
				
			||||||
"channels=<počet kanálů> channel_map=<mapa kanálů> autoloaded=<zda se má "
 | 
					"channels=<počet kanálů> channel_map=<mapa kanálů> autoloaded=<zda se má "
 | 
				
			||||||
"modul načítat automaticky> use_volume_sharing=<používat sdílenou hlasitost>"
 | 
					"modul načítat automaticky> use_volume_sharing=<používat sdílenou hlasitost>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "Ekvalizér používající FFT na %s"
 | 
					msgstr "Ekvalizér používající FFT na %s"
 | 
				
			||||||
| 
						 | 
					@ -1228,14 +1225,14 @@ msgstr "Zvuk na @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunel pro %s@%s"
 | 
					msgstr "Tunel pro %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunel do %s/%s"
 | 
					msgstr "Tunel do %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1585,11 +1582,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Neplatný cíl pro záznam."
 | 
					msgstr "Neplatný cíl pro záznam."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Vnitřní zvukový systém"
 | 
					msgstr "Vnitřní zvukový systém"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2438,15 +2435,15 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:320
 | 
					#: src/utils/pactl.c:320
 | 
				
			||||||
msgid "availability unknown"
 | 
					msgid "availability unknown"
 | 
				
			||||||
msgstr "dostupnost neznámá"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:321
 | 
					#: src/utils/pactl.c:321
 | 
				
			||||||
msgid "available"
 | 
					msgid "available"
 | 
				
			||||||
msgstr "dostupné"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:322
 | 
					#: src/utils/pactl.c:322
 | 
				
			||||||
msgid "not available"
 | 
					msgid "not available"
 | 
				
			||||||
msgstr "není dostupné"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:331 src/utils/pactl.c:355
 | 
					#: src/utils/pactl.c:331 src/utils/pactl.c:355
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
| 
						 | 
					@ -2455,7 +2452,7 @@ msgstr "neznámo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:332
 | 
					#: src/utils/pactl.c:332
 | 
				
			||||||
msgid "Aux"
 | 
					msgid "Aux"
 | 
				
			||||||
msgstr "Aux"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:335
 | 
					#: src/utils/pactl.c:335
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
| 
						 | 
					@ -2464,7 +2461,7 @@ msgstr "Linkový vstup"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:336
 | 
					#: src/utils/pactl.c:336
 | 
				
			||||||
msgid "Mic"
 | 
					msgid "Mic"
 | 
				
			||||||
msgstr "Mic"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:338
 | 
					#: src/utils/pactl.c:338
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
| 
						 | 
					@ -2473,23 +2470,23 @@ msgstr "Náhlavní souprava"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:339
 | 
					#: src/utils/pactl.c:339
 | 
				
			||||||
msgid "Earpiece"
 | 
					msgid "Earpiece"
 | 
				
			||||||
msgstr "Sluchátka do uší"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:340
 | 
					#: src/utils/pactl.c:340
 | 
				
			||||||
msgid "SPDIF"
 | 
					msgid "SPDIF"
 | 
				
			||||||
msgstr "SPDIF"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:341
 | 
					#: src/utils/pactl.c:341
 | 
				
			||||||
msgid "HDMI"
 | 
					msgid "HDMI"
 | 
				
			||||||
msgstr "HDMI"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:342
 | 
					#: src/utils/pactl.c:342
 | 
				
			||||||
msgid "TV"
 | 
					msgid "TV"
 | 
				
			||||||
msgstr "TV"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:345
 | 
					#: src/utils/pactl.c:345
 | 
				
			||||||
msgid "USB"
 | 
					msgid "USB"
 | 
				
			||||||
msgstr "USB"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:346
 | 
					#: src/utils/pactl.c:346
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
| 
						 | 
					@ -2498,7 +2495,7 @@ msgstr "Vstup přes Bluetooth"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:352
 | 
					#: src/utils/pactl.c:352
 | 
				
			||||||
msgid "Network"
 | 
					msgid "Network"
 | 
				
			||||||
msgstr "Síť"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:353
 | 
					#: src/utils/pactl.c:353
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
| 
						 | 
					@ -2861,22 +2858,20 @@ msgstr "Selhalo volání read(): %s"
 | 
				
			||||||
#: src/utils/pactl.c:1695
 | 
					#: src/utils/pactl.c:1695
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "list-handlers message failed: %s"
 | 
					msgid "list-handlers message failed: %s"
 | 
				
			||||||
msgstr "list-handlers zpráva selhala: %s"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1711 src/utils/pactl.c:1760
 | 
					#: src/utils/pactl.c:1711 src/utils/pactl.c:1760
 | 
				
			||||||
#, fuzzy
 | 
					 | 
				
			||||||
msgid "list-handlers message response could not be parsed correctly"
 | 
					msgid "list-handlers message response could not be parsed correctly"
 | 
				
			||||||
msgstr "odpověď na zprávu list-handlers nelze správně analyzovat"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1718
 | 
					#: src/utils/pactl.c:1718
 | 
				
			||||||
#, fuzzy
 | 
					 | 
				
			||||||
msgid "list-handlers message response is not a JSON array"
 | 
					msgid "list-handlers message response is not a JSON array"
 | 
				
			||||||
msgstr "odpověď zprávy list-handlers není pole JSON"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1729
 | 
					#: src/utils/pactl.c:1729
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "list-handlers message response array element %d is not a JSON object"
 | 
					msgid "list-handlers message response array element %d is not a JSON object"
 | 
				
			||||||
msgstr "prvek pole odpovědí list-handlers %d není objekt JSON"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1800
 | 
					#: src/utils/pactl.c:1800
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3243,8 +3238,6 @@ msgid ""
 | 
				
			||||||
"Excess arguments given, they will be ignored. Note that all message "
 | 
					"Excess arguments given, they will be ignored. Note that all message "
 | 
				
			||||||
"parameters must be given as a single string."
 | 
					"parameters must be given as a single string."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Nadbytečné argumenty budou ignorovány. Všimněte si, že všechny parametry "
 | 
					 | 
				
			||||||
"zprávy musí být zadány jako jeden řetězec."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3182
 | 
					#: src/utils/pactl.c:3182
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										29
									
								
								po/da.po
									
										
									
									
									
								
							
							
						
						
									
										29
									
								
								po/da.po
									
										
									
									
									
								
							| 
						 | 
					@ -7,9 +7,9 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PulseAudio master\n"
 | 
					"Project-Id-Version: PulseAudio master\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2024-12-13 17:38+0000\n"
 | 
					"PO-Revision-Date: 2021-05-21 23:01+0000\n"
 | 
				
			||||||
"Last-Translator: DK Guy <peter@nozen.dk>\n"
 | 
					"Last-Translator: scootergrisen <scootergrisen@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Danish <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Danish <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
"pulseaudio/pulseaudio/da/>\n"
 | 
					"pulseaudio/pulseaudio/da/>\n"
 | 
				
			||||||
"Language: da\n"
 | 
					"Language: da\n"
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,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.8.4\n"
 | 
					"X-Generator: Weblate 4.6.2\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -175,12 +175,13 @@ msgid "--fail expects boolean argument"
 | 
				
			||||||
msgstr "--fail venter boolesk argument"
 | 
					msgstr "--fail venter boolesk argument"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:265
 | 
					#: src/daemon/cmdline.c:265
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					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 forventer logniveau argument (enten numerisk i området 0..4 "
 | 
					"--log-level venter logniveau argument (enten numerisk i området 0..4 eller "
 | 
				
			||||||
"eller en af debug, info, notice, warn, error)."
 | 
					"en af debug, info, notice, warn, error)."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:277
 | 
					#: src/daemon/cmdline.c:277
 | 
				
			||||||
msgid "--high-priority expects boolean argument"
 | 
					msgid "--high-priority expects boolean argument"
 | 
				
			||||||
| 
						 | 
					@ -1132,8 +1133,8 @@ msgstr ""
 | 
				
			||||||
"channel_map=<kanalkort> autoloaded=<indstil hvis modulet indlæses "
 | 
					"channel_map=<kanalkort> autoloaded=<indstil hvis modulet indlæses "
 | 
				
			||||||
"automatisk> use_volume_sharing=<yes eller no> "
 | 
					"automatisk> use_volume_sharing=<yes eller no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "FFT-baseret equalizer på %s"
 | 
					msgstr "FFT-baseret equalizer på %s"
 | 
				
			||||||
| 
						 | 
					@ -1199,14 +1200,14 @@ msgstr "Lyd på @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunnel for %s@%s"
 | 
					msgstr "Tunnel for %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunnel til %s/%s"
 | 
					msgstr "Tunnel til %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1555,11 +1556,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Ugyldigt logmål."
 | 
					msgstr "Ugyldigt logmål."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Indbygget lyd"
 | 
					msgstr "Indbygget lyd"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										31
									
								
								po/de.po
									
										
									
									
									
								
							
							
						
						
									
										31
									
								
								po/de.po
									
										
									
									
									
								
							| 
						 | 
					@ -14,8 +14,8 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx.de\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx.de\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-12-06 09:20+0000\n"
 | 
					"PO-Revision-Date: 2021-12-05 21:16+0000\n"
 | 
				
			||||||
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
 | 
					"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
 | 
				
			||||||
"Language-Team: German <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: German <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
"pulseaudio/pulseaudio/de/>\n"
 | 
					"pulseaudio/pulseaudio/de/>\n"
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,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.14.2\n"
 | 
					"X-Generator: Weblate 4.9.1\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, fuzzy, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
| 
						 | 
					@ -188,6 +188,7 @@ msgid "--fail expects boolean argument"
 | 
				
			||||||
msgstr "--fail erfordert boolesche Variable"
 | 
					msgstr "--fail erfordert boolesche Variable"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:265
 | 
					#: src/daemon/cmdline.c:265
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					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)."
 | 
				
			||||||
| 
						 | 
					@ -217,12 +218,14 @@ msgid "--use-pid-file expects boolean argument"
 | 
				
			||||||
msgstr "--use-pid-file erfordert boolesche Variable"
 | 
					msgstr "--use-pid-file erfordert boolesche Variable"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:328
 | 
					#: src/daemon/cmdline.c:328
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Invalid log target: use either 'syslog', 'journal', 'stderr' or 'auto' or a "
 | 
					"Invalid log target: use either 'syslog', 'journal', 'stderr' or 'auto' or a "
 | 
				
			||||||
"valid file name 'file:<path>', 'newfile:<path>'."
 | 
					"valid file name 'file:<path>', 'newfile:<path>'."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Ungültiges Protokollziel: Benutzen Sie entweder »syslog«, »journal«, »stderr«"
 | 
					"Ungültiges Protokollziel: Benutzen Sie entweder »syslog«, »journal«, "
 | 
				
			||||||
" oder »auto« oder einen gültigen Dateinamen »file:<Pfad>«, »newfile:<Pfad>«."
 | 
					"»stderr« oder »auto« oder einen gültigen Dateinamen »file:<Pfad>«, »newfile:"
 | 
				
			||||||
 | 
					"<Pfad>«."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:330
 | 
					#: src/daemon/cmdline.c:330
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -1149,8 +1152,8 @@ msgstr ""
 | 
				
			||||||
"autoloaded=<setzen, wenn dieses Modul automatisch geladen wird> "
 | 
					"autoloaded=<setzen, wenn dieses Modul automatisch geladen wird> "
 | 
				
			||||||
"use_volume_sharing=<yes oder no> "
 | 
					"use_volume_sharing=<yes oder no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1217,14 +1220,14 @@ msgstr "Audio auf @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunnel für %s@%s"
 | 
					msgstr "Tunnel für %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunnel zu %s/%s"
 | 
					msgstr "Tunnel zu %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1573,11 +1576,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Ungültiges Protokollziel."
 | 
					msgstr "Ungültiges Protokollziel."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Internes Audio"
 | 
					msgstr "Internes Audio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3157,7 +3160,7 @@ msgstr "Sie müssen einen Ziel-Namen/-Indexwert und eine Lautstärke angeben."
 | 
				
			||||||
#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
					#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify a source name/index"
 | 
					msgid "You have to specify a source name/index"
 | 
				
			||||||
msgstr "Sie müssen einen Quellennamen/-index angeben"
 | 
					msgstr "Sie müssen einen Quellennamen angeben."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3031
 | 
					#: src/utils/pactl.c:3031
 | 
				
			||||||
msgid "You have to specify a source name/index and a volume"
 | 
					msgid "You have to specify a source name/index and a volume"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/de_CH.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/de_CH.po
									
										
									
									
									
								
							| 
						 | 
					@ -10,7 +10,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:53+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:53+0000\n"
 | 
				
			||||||
"Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n"
 | 
					"Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n"
 | 
				
			||||||
"Language-Team: German <fedora-trans-de@redhat.com>\n"
 | 
					"Language-Team: German <fedora-trans-de@redhat.com>\n"
 | 
				
			||||||
| 
						 | 
					@ -1130,8 +1130,8 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1191,14 +1191,14 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1543,11 +1543,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] Ungültiges Log-Ziel '%s'."
 | 
					msgstr "[%s:%u] Ungültiges Log-Ziel '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Internes Audio"
 | 
					msgstr "Internes Audio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/eo.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/eo.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2021-02-05 01:40+0000\n"
 | 
					"PO-Revision-Date: 2021-02-05 01:40+0000\n"
 | 
				
			||||||
"Last-Translator: Carmen Bianca Bakker <carmen@carmenbianca.eu>\n"
 | 
					"Last-Translator: Carmen Bianca Bakker <carmen@carmenbianca.eu>\n"
 | 
				
			||||||
"Language-Team: Esperanto <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Esperanto <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -984,8 +984,8 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1042,14 +1042,14 @@ msgstr "Sono sur @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunelo por %s@%s"
 | 
					msgstr "Tunelo por %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunelo al %s/%s"
 | 
					msgstr "Tunelo al %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1386,11 +1386,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Integrita sono"
 | 
					msgstr "Integrita sono"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										124
									
								
								po/fi.po
									
										
									
									
									
								
							
							
						
						
									
										124
									
								
								po/fi.po
									
										
									
									
									
								
							| 
						 | 
					@ -9,9 +9,9 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: git trunk\n"
 | 
					"Project-Id-Version: git trunk\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2025-04-22 16:19+0000\n"
 | 
					"PO-Revision-Date: 2022-05-20 18:18+0000\n"
 | 
				
			||||||
"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\n"
 | 
					"Last-Translator: Jan Kuparinen <copper_fin@hotmail.com>\n"
 | 
				
			||||||
"Language-Team: Finnish <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Finnish <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
"pulseaudio/pulseaudio/fi/>\n"
 | 
					"pulseaudio/pulseaudio/fi/>\n"
 | 
				
			||||||
"Language: fi\n"
 | 
					"Language: fi\n"
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,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 4.12.2\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -742,11 +742,11 @@ msgstr "Peli ulostulo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 "Pikakeskustelun lähtö"
 | 
					msgstr "Chatti ulostulo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2821
 | 
					#: src/modules/alsa/alsa-mixer.c:2821
 | 
				
			||||||
msgid "Chat Input"
 | 
					msgid "Chat Input"
 | 
				
			||||||
msgstr "Pikakeskustelun syöttö"
 | 
					msgstr "Chatti sisääntulo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2822
 | 
					#: src/modules/alsa/alsa-mixer.c:2822
 | 
				
			||||||
msgid "Virtual Surround 7.1"
 | 
					msgid "Virtual Surround 7.1"
 | 
				
			||||||
| 
						 | 
					@ -1141,8 +1141,8 @@ msgstr ""
 | 
				
			||||||
"liitännäisen nimiö (label)> control=<pilkulla erotettu luettelo "
 | 
					"liitännäisen nimiö (label)> control=<pilkulla erotettu luettelo "
 | 
				
			||||||
"syötteenhallinta-arvoja> "
 | 
					"syötteenhallinta-arvoja> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "FFT-pohjainen taajuuskorjain %s:lla"
 | 
					msgstr "FFT-pohjainen taajuuskorjain %s:lla"
 | 
				
			||||||
| 
						 | 
					@ -1209,14 +1209,14 @@ msgstr "Ääni koneella @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunneli %s@%s:ta varten"
 | 
					msgstr "Tunneli %s@%s:ta varten"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunneli %s/%s:een"
 | 
					msgstr "Tunneli %s/%s:een"
 | 
				
			||||||
| 
						 | 
					@ -1566,17 +1566,17 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Virheellinen lokikirjoituksen kohde."
 | 
					msgstr "Virheellinen lokikirjoituksen kohde."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Sisäinen äänentoisto"
 | 
					msgstr "Sisäinen äänentoisto"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modeemi"
 | 
					msgstr "Modeemi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulse/error.c:38
 | 
					#: src/pulse/error.c:38
 | 
				
			||||||
msgid "OK"
 | 
					msgid "OK"
 | 
				
			||||||
msgstr "Hyvä on"
 | 
					msgstr "OK"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulse/error.c:39
 | 
					#: src/pulse/error.c:39
 | 
				
			||||||
msgid "Access denied"
 | 
					msgid "Access denied"
 | 
				
			||||||
| 
						 | 
					@ -1818,7 +1818,7 @@ msgstr "Korkkipyyntöpino on tyhjä: poistetaan korkkivirta"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:425
 | 
					#: src/utils/pacat.c:425
 | 
				
			||||||
msgid "Warning: Received more uncork requests than cork requests."
 | 
					msgid "Warning: Received more uncork requests than cork requests."
 | 
				
			||||||
msgstr "Varoitus: Vastaanotettu enemmän cork-poistopyyntöjä kuin cork-pyyntöjä."
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:450
 | 
					#: src/utils/pacat.c:450
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -1972,8 +1972,8 @@ msgstr ""
 | 
				
			||||||
"palvelimella\n"
 | 
					"palvelimella\n"
 | 
				
			||||||
"      --volume=ÄÄNENVOIMAKKUUS          Määritä (lineaarinen) "
 | 
					"      --volume=ÄÄNENVOIMAKKUUS          Määritä (lineaarinen) "
 | 
				
			||||||
"aloitusäänenvoimakkuus väliltä 0...65536\n"
 | 
					"aloitusäänenvoimakkuus väliltä 0...65536\n"
 | 
				
			||||||
"      --rate=NÄYTTEENOTTOTAAJUUS        Näytteenottotaajuus "
 | 
					"      --rate=NÄYTTEENOTTOTAAJUUS        Näytteenottotaajuus hertseinä(oletus:"
 | 
				
			||||||
"hertseinä(oletus: 44100)\n"
 | 
					" 44100)\n"
 | 
				
			||||||
"      --format=NÄYTEMUOTO               Näytteen tyyppi, yksi seuraavista:"
 | 
					"      --format=NÄYTEMUOTO               Näytteen tyyppi, yksi seuraavista:"
 | 
				
			||||||
"s16le, s16be, u8, float32le,\n"
 | 
					"s16le, s16be, u8, float32le,\n"
 | 
				
			||||||
"                                        float32be, ulaw, alaw, s32le, s32be\n"
 | 
					"                                        float32be, ulaw, alaw, s32le, s32be\n"
 | 
				
			||||||
| 
						 | 
					@ -1993,8 +1993,8 @@ msgstr ""
 | 
				
			||||||
"      --no-remix                        Älä yli- tai alimiksaa kanavia.\n"
 | 
					"      --no-remix                        Älä yli- tai alimiksaa kanavia.\n"
 | 
				
			||||||
"      --no-remap                        Kartoita kanavat indeksin mukaan, "
 | 
					"      --no-remap                        Kartoita kanavat indeksin mukaan, "
 | 
				
			||||||
"älä nimen mukaan.\n"
 | 
					"älä nimen mukaan.\n"
 | 
				
			||||||
"      --latency=TAVUA                   Pyydä määritettyä latenssia "
 | 
					"      --latency=TAVUA                   Pyydä määritettyä latenssia tavuissa."
 | 
				
			||||||
"tavuissa.\n"
 | 
					"\n"
 | 
				
			||||||
"      --process-time=TAVUA              Pyydä määritettyä prosessiaikaa "
 | 
					"      --process-time=TAVUA              Pyydä määritettyä prosessiaikaa "
 | 
				
			||||||
"pyyntöä kohti tavuissa.\n"
 | 
					"pyyntöä kohti tavuissa.\n"
 | 
				
			||||||
"      --property=ASETUS=ARVO            Anna määritetylle asetukselle "
 | 
					"      --property=ASETUS=ARVO            Anna määritetylle asetukselle "
 | 
				
			||||||
| 
						 | 
					@ -2007,29 +2007,24 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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."
 | 
				
			||||||
msgstr "Toista koodattuja äänitiedostoja PulseAudio-äänipalvelimella."
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:797
 | 
					#: src/utils/pacat.c:797
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Capture audio data from a PulseAudio sound server and write it to a file."
 | 
					"Capture audio data from a PulseAudio sound server and write it to a file."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Kaappaa äänidataa PulseAudio-äänipalvelimelta ja kirjoita se tiedostoon."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:801
 | 
					#: src/utils/pacat.c:801
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Capture audio data from a PulseAudio sound server and write it to STDOUT or "
 | 
					"Capture audio data from a PulseAudio sound server and write it to STDOUT or "
 | 
				
			||||||
"the specified file."
 | 
					"the specified file."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Kaappaa äänidataa PulseAudio-äänipalvelimelta ja kirjoita se STDOUTiin tai "
 | 
					 | 
				
			||||||
"määritettyyn tiedostoon."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:805
 | 
					#: src/utils/pacat.c:805
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Play back audio data from STDIN or the specified file on a PulseAudio sound "
 | 
					"Play back audio data from STDIN or the specified file on a PulseAudio sound "
 | 
				
			||||||
"server."
 | 
					"server."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Toista äänidataa STDINistä tai määritetystä tiedostosta PulseAudio-"
 | 
					 | 
				
			||||||
"äänipalvelimella."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:819
 | 
					#: src/utils/pacat.c:819
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2079,7 +2074,7 @@ msgstr "Tuntematon tiedostomuoto %s."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:1000
 | 
					#: src/utils/pacat.c:1000
 | 
				
			||||||
msgid "Failed to parse the argument for --monitor-stream"
 | 
					msgid "Failed to parse the argument for --monitor-stream"
 | 
				
			||||||
msgstr "Argumentin --monitor-stream jäsentäminen epäonnistui"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:1011
 | 
					#: src/utils/pacat.c:1011
 | 
				
			||||||
msgid "Invalid sample specification"
 | 
					msgid "Invalid sample specification"
 | 
				
			||||||
| 
						 | 
					@ -2209,7 +2204,7 @@ msgstr "NIMI|#N AVAIN=ARVO"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:59
 | 
					#: src/utils/pacmd.c:59
 | 
				
			||||||
msgid "#N KEY=VALUE"
 | 
					msgid "#N KEY=VALUE"
 | 
				
			||||||
msgstr "#N AVAIN=ARVO"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:61
 | 
					#: src/utils/pacmd.c:61
 | 
				
			||||||
msgid "#N"
 | 
					msgid "#N"
 | 
				
			||||||
| 
						 | 
					@ -2233,7 +2228,7 @@ msgstr "TIEDOSTONIMI NIELU|#N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:69 src/utils/pactl.c:2645
 | 
					#: src/utils/pacmd.c:69 src/utils/pactl.c:2645
 | 
				
			||||||
msgid "#N SINK|SOURCE"
 | 
					msgid "#N SINK|SOURCE"
 | 
				
			||||||
msgstr "#N SINKKI|LÄHDE"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:71 src/utils/pacmd.c:77 src/utils/pacmd.c:78
 | 
					#: src/utils/pacmd.c:71 src/utils/pacmd.c:77 src/utils/pacmd.c:78
 | 
				
			||||||
msgid "1|0"
 | 
					msgid "1|0"
 | 
				
			||||||
| 
						 | 
					@ -2249,23 +2244,23 @@ msgstr "NIMI|#N PORT"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 "KORTIN NIMI|KORTIN-#N PORTTI OFFSET"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:75
 | 
					#: src/utils/pacmd.c:75
 | 
				
			||||||
msgid "TARGET"
 | 
					msgid "TARGET"
 | 
				
			||||||
msgstr "KOHDE"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:76
 | 
					#: src/utils/pacmd.c:76
 | 
				
			||||||
msgid "NUMERIC-LEVEL"
 | 
					msgid "NUMERIC-LEVEL"
 | 
				
			||||||
msgstr "NUMEROTASO"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:79
 | 
					#: src/utils/pacmd.c:79
 | 
				
			||||||
msgid "FRAMES"
 | 
					msgid "FRAMES"
 | 
				
			||||||
msgstr "ÄÄNIRUUDUT"
 | 
					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 "VASTAAJAN VIESTI [MESSAGE_PARAMETERS]"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:82
 | 
					#: src/utils/pacmd.c:82
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2375,12 +2370,6 @@ msgid ""
 | 
				
			||||||
"Client Index: %u\n"
 | 
					"Client Index: %u\n"
 | 
				
			||||||
"Tile Size: %zu\n"
 | 
					"Tile Size: %zu\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Palvelinmerkkijono: %s\n"
 | 
					 | 
				
			||||||
"Kirjastoprotokollan versio: %u\n"
 | 
					 | 
				
			||||||
"Palvelinprotokollan versio: %u\n"
 | 
					 | 
				
			||||||
"On paikallinen: %s\n"
 | 
					 | 
				
			||||||
"Asiakasindeksi: %u\n"
 | 
					 | 
				
			||||||
"Laattojen koko: %zu\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:294
 | 
					#: src/utils/pactl.c:294
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2407,7 +2396,7 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:320
 | 
					#: src/utils/pactl.c:320
 | 
				
			||||||
msgid "availability unknown"
 | 
					msgid "availability unknown"
 | 
				
			||||||
msgstr "saatavuus tuntematon"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:321
 | 
					#: src/utils/pactl.c:321
 | 
				
			||||||
msgid "available"
 | 
					msgid "available"
 | 
				
			||||||
| 
						 | 
					@ -2423,7 +2412,7 @@ msgstr "Tuntematon"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:332
 | 
					#: src/utils/pactl.c:332
 | 
				
			||||||
msgid "Aux"
 | 
					msgid "Aux"
 | 
				
			||||||
msgstr "Aux"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:335
 | 
					#: src/utils/pactl.c:335
 | 
				
			||||||
msgid "Line"
 | 
					msgid "Line"
 | 
				
			||||||
| 
						 | 
					@ -2431,27 +2420,27 @@ msgstr "Linja"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:336
 | 
					#: src/utils/pactl.c:336
 | 
				
			||||||
msgid "Mic"
 | 
					msgid "Mic"
 | 
				
			||||||
msgstr "Mikrofoni"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:338
 | 
					#: src/utils/pactl.c:338
 | 
				
			||||||
msgid "Handset"
 | 
					msgid "Handset"
 | 
				
			||||||
msgstr "Luuri"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:339
 | 
					#: src/utils/pactl.c:339
 | 
				
			||||||
msgid "Earpiece"
 | 
					msgid "Earpiece"
 | 
				
			||||||
msgstr "Kuuloke"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:340
 | 
					#: src/utils/pactl.c:340
 | 
				
			||||||
msgid "SPDIF"
 | 
					msgid "SPDIF"
 | 
				
			||||||
msgstr "SPDIF"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:341
 | 
					#: src/utils/pactl.c:341
 | 
				
			||||||
msgid "HDMI"
 | 
					msgid "HDMI"
 | 
				
			||||||
msgstr "HDMI"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:342
 | 
					#: src/utils/pactl.c:342
 | 
				
			||||||
msgid "TV"
 | 
					msgid "TV"
 | 
				
			||||||
msgstr "TV"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:345
 | 
					#: src/utils/pactl.c:345
 | 
				
			||||||
msgid "USB"
 | 
					msgid "USB"
 | 
				
			||||||
| 
						 | 
					@ -2522,11 +2511,11 @@ msgstr "\tPortit:\n"
 | 
				
			||||||
#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
					#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "\t\t%s: %s (type: %s, priority: %u%s%s, %s)\n"
 | 
					msgid "\t\t%s: %s (type: %s, priority: %u%s%s, %s)\n"
 | 
				
			||||||
msgstr "\t\t%s: %s (tyyppi: %s, prioriteetti: %u%s%s, %s)\n"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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
 | 
				
			||||||
msgid ", availability group: "
 | 
					msgid ", availability group: "
 | 
				
			||||||
msgstr ", saatavuusryhmä: "
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:715 src/utils/pactl.c:899
 | 
					#: src/utils/pactl.c:715 src/utils/pactl.c:899
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2664,7 +2653,6 @@ msgstr "\tProfiilit:\n"
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "\t\t%s: %s (sinks: %u, sources: %u, priority: %u, available: %s)\n"
 | 
					msgid "\t\t%s: %s (sinks: %u, sources: %u, priority: %u, available: %s)\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"\t\t%s: %s (nielut: %u, lähteet: %u, prioriteetti: %u, käytettävissä: %s)\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1245
 | 
					#: src/utils/pactl.c:1245
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2676,8 +2664,6 @@ msgstr "\tAktiivinen profiili: %s\n"
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\t\t%s: %s (type: %s, priority: %u, latency offset: %<PRId64> usec%s%s, %s)\n"
 | 
					"\t\t%s: %s (type: %s, priority: %u, latency offset: %<PRId64> usec%s%s, %s)\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"\t\t%s: %s (tyyppi: %s, prioriteetti: %u, latenssipoikkeama: %<PRId64> "
 | 
					 | 
				
			||||||
"usec%s%s, %s)\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1261
 | 
					#: src/utils/pactl.c:1261
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2685,13 +2671,11 @@ msgid ""
 | 
				
			||||||
"\t\t\tProperties:\n"
 | 
					"\t\t\tProperties:\n"
 | 
				
			||||||
"\t\t\t\t%s\n"
 | 
					"\t\t\t\t%s\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"\t\t\tOminaisuudet:\n"
 | 
					 | 
				
			||||||
"\t\t\t\t%s\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1265
 | 
					#: src/utils/pactl.c:1265
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "\t\t\tPart of profile(s): %s"
 | 
					msgid "\t\t\tPart of profile(s): %s"
 | 
				
			||||||
msgstr "\t\t\tOsa profiilista (profiileista): %s"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1290 src/utils/pactl.c:1954 src/utils/pactl.c:2022
 | 
					#: src/utils/pactl.c:1290 src/utils/pactl.c:1954 src/utils/pactl.c:2022
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2828,7 +2812,7 @@ msgstr "Viestin lähetys epäonnistui: %s"
 | 
				
			||||||
#: src/utils/pactl.c:1695
 | 
					#: src/utils/pactl.c:1695
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "list-handlers message failed: %s"
 | 
					msgid "list-handlers message failed: %s"
 | 
				
			||||||
msgstr "listakäsittelijöiden viesti epäonnistui: %s"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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"
 | 
				
			||||||
| 
						 | 
					@ -2842,7 +2826,6 @@ msgstr "list-handlers viestivastaus ei ole JSON-taulukko"
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "list-handlers message response array element %d is not a JSON object"
 | 
					msgid "list-handlers message response array element %d is not a JSON object"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"listakäsittelijöiden viestivastaustaulukon elementti %d ei ole JSON-objekti"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1800
 | 
					#: src/utils/pactl.c:1800
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2858,11 +2841,7 @@ 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] ""
 | 
				
			||||||
"Äänenvoimakkuuden asettaminen epäonnistui: Yritit asettaa äänenvoimakkuutta "
 | 
					 | 
				
			||||||
"%d kanavalle, kun taas tuetut kanavat = %d\n"
 | 
					 | 
				
			||||||
msgstr[1] ""
 | 
					msgstr[1] ""
 | 
				
			||||||
"Äänenvoimakkuuden asettaminen epäonnistui: Yritit asettaa äänenvoimakkuutta "
 | 
					 | 
				
			||||||
"%d kanaville, kun taas tuetut kanavat = %d\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2107
 | 
					#: src/utils/pactl.c:2107
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2899,7 +2878,7 @@ msgstr "lähde"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2167
 | 
					#: src/utils/pactl.c:2167
 | 
				
			||||||
msgid "sink-input"
 | 
					msgid "sink-input"
 | 
				
			||||||
msgstr "nielun sisääntulo"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2170
 | 
					#: src/utils/pactl.c:2170
 | 
				
			||||||
msgid "source-output"
 | 
					msgid "source-output"
 | 
				
			||||||
| 
						 | 
					@ -2915,7 +2894,7 @@ msgstr "asiakas"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2179
 | 
					#: src/utils/pactl.c:2179
 | 
				
			||||||
msgid "sample-cache"
 | 
					msgid "sample-cache"
 | 
				
			||||||
msgstr "näyte-välimuisti"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2182
 | 
					#: src/utils/pactl.c:2182
 | 
				
			||||||
msgid "server"
 | 
					msgid "server"
 | 
				
			||||||
| 
						 | 
					@ -2923,12 +2902,12 @@ msgstr "palvelin"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2185
 | 
					#: src/utils/pactl.c:2185
 | 
				
			||||||
msgid "card"
 | 
					msgid "card"
 | 
				
			||||||
msgstr "kortti"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2206
 | 
					#: src/utils/pactl.c:2206
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Event '%s' on %s #%u\n"
 | 
					msgid "Event '%s' on %s #%u\n"
 | 
				
			||||||
msgstr "Tapahtuma '%s' %s #%u\n"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2514
 | 
					#: src/utils/pactl.c:2514
 | 
				
			||||||
msgid "Got SIGINT, exiting."
 | 
					msgid "Got SIGINT, exiting."
 | 
				
			||||||
| 
						 | 
					@ -2940,7 +2919,7 @@ msgstr "Virheellinen äänenvoimakkuuden määritys"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2581
 | 
					#: src/utils/pactl.c:2581
 | 
				
			||||||
msgid "Volume outside permissible range.\n"
 | 
					msgid "Volume outside permissible range.\n"
 | 
				
			||||||
msgstr "Äänenvoimakkuus sallitun alueen ulkopuolella.\n"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2594
 | 
					#: src/utils/pactl.c:2594
 | 
				
			||||||
msgid "Invalid number of volume specifications.\n"
 | 
					msgid "Invalid number of volume specifications.\n"
 | 
				
			||||||
| 
						 | 
					@ -2972,7 +2951,7 @@ msgstr "TIEDOSTONIMI [NIMI]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2641
 | 
					#: src/utils/pactl.c:2641
 | 
				
			||||||
msgid "NAME [SINK]"
 | 
					msgid "NAME [SINK]"
 | 
				
			||||||
msgstr "NIMI [NIELU]"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2653
 | 
					#: src/utils/pactl.c:2653
 | 
				
			||||||
msgid "NAME|#N VOLUME [VOLUME ...]"
 | 
					msgid "NAME|#N VOLUME [VOLUME ...]"
 | 
				
			||||||
| 
						 | 
					@ -3001,9 +2980,6 @@ msgid ""
 | 
				
			||||||
"The special names @DEFAULT_SINK@, @DEFAULT_SOURCE@ and @DEFAULT_MONITOR@\n"
 | 
					"The special names @DEFAULT_SINK@, @DEFAULT_SOURCE@ and @DEFAULT_MONITOR@\n"
 | 
				
			||||||
"can be used to specify the default sink, source and monitor.\n"
 | 
					"can be used to specify the default sink, source and monitor.\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"\n"
 | 
					 | 
				
			||||||
"Erikoisnimiä @DEFAULT_SINK@, @DEFAULT_SOURCE@ ja @DEFAULT_MONITOR@\n"
 | 
					 | 
				
			||||||
"voidaan käyttää oletusnielun, lähteen ja näytön määrittämiseen.\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2664
 | 
					#: src/utils/pactl.c:2664
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3047,7 +3023,7 @@ msgstr "Virheellinen muotoarvo ”%s”"
 | 
				
			||||||
#: src/utils/pactl.c:2778
 | 
					#: src/utils/pactl.c:2778
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Specify nothing, or one of: %s"
 | 
					msgid "Specify nothing, or one of: %s"
 | 
				
			||||||
msgstr "Määritä tyhjäksi tai jokin seuraavista: %s"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2788
 | 
					#: src/utils/pactl.c:2788
 | 
				
			||||||
msgid "Please specify a sample file to load"
 | 
					msgid "Please specify a sample file to load"
 | 
				
			||||||
| 
						 | 
					@ -3203,8 +3179,6 @@ msgid ""
 | 
				
			||||||
"Excess arguments given, they will be ignored. Note that all message "
 | 
					"Excess arguments given, they will be ignored. Note that all message "
 | 
				
			||||||
"parameters must be given as a single string."
 | 
					"parameters must be given as a single string."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Ylimääräisiä argumentteja annettu, ne jätetään huomiotta. Huomaa, että "
 | 
					 | 
				
			||||||
"kaikki viestiparametrit on annettava yhtenä merkkijonona."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3182
 | 
					#: src/utils/pactl.c:3182
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -3220,7 +3194,7 @@ msgstr "Kortin nimi/indeksi ja portin nimi ja viivästysasetus on annettava"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3201
 | 
					#: src/utils/pactl.c:3201
 | 
				
			||||||
msgid "Could not parse latency offset"
 | 
					msgid "Could not parse latency offset"
 | 
				
			||||||
msgstr "Latenssipoikkeamaa ei voitu jäsentää"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3213
 | 
					#: src/utils/pactl.c:3213
 | 
				
			||||||
msgid "No valid command specified."
 | 
					msgid "No valid command specified."
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										71
									
								
								po/fr.po
									
										
									
									
									
								
							
							
						
						
									
										71
									
								
								po/fr.po
									
										
									
									
									
								
							| 
						 | 
					@ -16,9 +16,9 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
					"Project-Id-Version: PACKAGE VERSION\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2023-03-19 17:20+0000\n"
 | 
					"PO-Revision-Date: 2020-12-13 17:35+0000\n"
 | 
				
			||||||
"Last-Translator: grimst <grimaitres@gmail.com>\n"
 | 
					"Last-Translator: Julien Humbert <julroy67@gmail.com>\n"
 | 
				
			||||||
"Language-Team: French <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: French <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
"pulseaudio/pulseaudio/fr/>\n"
 | 
					"pulseaudio/pulseaudio/fr/>\n"
 | 
				
			||||||
"Language: fr\n"
 | 
					"Language: fr\n"
 | 
				
			||||||
| 
						 | 
					@ -26,10 +26,10 @@ 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.2\n"
 | 
					"X-Generator: Weblate 4.3.2\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -114,8 +114,8 @@ msgstr ""
 | 
				
			||||||
"      --start                           Lancer le démon s’il n’est pas en "
 | 
					"      --start                           Lancer le démon s’il n’est pas en "
 | 
				
			||||||
"cours d’exécution\n"
 | 
					"cours d’exécution\n"
 | 
				
			||||||
"  -k  --kill                            Tuer un démon en cours d’exécution\n"
 | 
					"  -k  --kill                            Tuer un démon en cours d’exécution\n"
 | 
				
			||||||
"      --check                           Rechercher un démon en cours d’"
 | 
					"      --check                           Rechercher un démon en cours "
 | 
				
			||||||
"exécution (retourne uniquement un code de sortie)\n"
 | 
					"d’exécution (retourne uniquement un code de sortie)\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"OPTIONS :\n"
 | 
					"OPTIONS :\n"
 | 
				
			||||||
"      --system[=BOOL]                   Exécuter en tant qu’instance "
 | 
					"      --system[=BOOL]                   Exécuter en tant qu’instance "
 | 
				
			||||||
| 
						 | 
					@ -136,8 +136,8 @@ msgstr ""
 | 
				
			||||||
"déchargement de modules\n"
 | 
					"déchargement de modules\n"
 | 
				
			||||||
"                                        requis par l’utilisateur de module "
 | 
					"                                        requis par l’utilisateur de module "
 | 
				
			||||||
"après le lancement\n"
 | 
					"après le lancement\n"
 | 
				
			||||||
"      --disallow-exit[=BOOL]            Interdire la sortie requise par l’"
 | 
					"      --disallow-exit[=BOOL]            Interdire la sortie requise par "
 | 
				
			||||||
"utilisateur\n"
 | 
					"l’utilisateur\n"
 | 
				
			||||||
"      --exit-idle-time=SECS             Quitter le démon lorsqu’inactif et "
 | 
					"      --exit-idle-time=SECS             Quitter le démon lorsqu’inactif et "
 | 
				
			||||||
"que cette\n"
 | 
					"que cette\n"
 | 
				
			||||||
"                                        période s’est écoulée\n"
 | 
					"                                        période s’est écoulée\n"
 | 
				
			||||||
| 
						 | 
					@ -169,8 +169,6 @@ msgstr ""
 | 
				
			||||||
"charge\n"
 | 
					"charge\n"
 | 
				
			||||||
"      --disable-shm[=BOOL]              Désactiver la prise en charge de "
 | 
					"      --disable-shm[=BOOL]              Désactiver la prise en charge de "
 | 
				
			||||||
"mémoire partagée.\n"
 | 
					"mémoire partagée.\n"
 | 
				
			||||||
"      --enable-memfd[=BOOL]             Activer le support de mémoire "
 | 
					 | 
				
			||||||
"partagée memfd.\n"
 | 
					 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"SCRIPT DE LANCEMENT :\n"
 | 
					"SCRIPT DE LANCEMENT :\n"
 | 
				
			||||||
"  -L, --load=\"MODULE ARGUMENTS\"         Charger le module du greffon "
 | 
					"  -L, --load=\"MODULE ARGUMENTS\"         Charger le module du greffon "
 | 
				
			||||||
| 
						 | 
					@ -503,23 +501,29 @@ msgstr ""
 | 
				
			||||||
"plus précise en cours."
 | 
					"plus précise en cours."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:878
 | 
					#: src/daemon/main.c:878
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Running in system mode, but --disallow-exit not set."
 | 
					msgid "Running in system mode, but --disallow-exit not set."
 | 
				
			||||||
msgstr "Exécution en mode système, mais --disallow-exit n’est pas défini."
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Le démon s’exécute en mode système, mais --disallow-exit n’est pas défini !"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:881
 | 
					#: src/daemon/main.c:881
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Running in system mode, but --disallow-module-loading not set."
 | 
					msgid "Running in system mode, but --disallow-module-loading not set."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Exécution en mode système, mais --disallow-module-loading n’est pas défini."
 | 
					"Le démon s’exécute en mode système, mais --disallow-module-loading n’est pas "
 | 
				
			||||||
 | 
					"défini !"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:884
 | 
					#: src/daemon/main.c:884
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Running in system mode, forcibly disabling SHM mode."
 | 
					msgid "Running in system mode, forcibly disabling SHM mode."
 | 
				
			||||||
msgstr "Exécution en mode système, désactivation forcée du mode SHM."
 | 
					msgstr "Le démon s’exécute en mode système, désactivation forcée du mode SHM !"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:889
 | 
					#: src/daemon/main.c:889
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Running in system mode, forcibly disabling exit idle time."
 | 
					msgid "Running in system mode, forcibly disabling exit idle time."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Exécution en mode système, désactivation forcée de la fermeture après délai "
 | 
					"Le démon s’exécute en mode système, désactivation forcée de la fermeture "
 | 
				
			||||||
"d’inactivité."
 | 
					"après délai d’inactivité !"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:922
 | 
					#: src/daemon/main.c:922
 | 
				
			||||||
msgid "Failed to acquire stdio."
 | 
					msgid "Failed to acquire stdio."
 | 
				
			||||||
| 
						 | 
					@ -554,6 +558,7 @@ msgid "Failed to get machine ID"
 | 
				
			||||||
msgstr "Échec lors de l’obtention de l’ID de la machine"
 | 
					msgstr "Échec lors de l’obtention de l’ID de la machine"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1145
 | 
					#: src/daemon/main.c:1145
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"OK, so you are running PA in system mode. Please make sure that you actually "
 | 
					"OK, so you are running PA in system mode. Please make sure that you actually "
 | 
				
			||||||
"do want to do that.\n"
 | 
					"do want to do that.\n"
 | 
				
			||||||
| 
						 | 
					@ -561,11 +566,13 @@ msgid ""
 | 
				
			||||||
"Documentation/User/WhatIsWrongWithSystemWide/ for an explanation why system "
 | 
					"Documentation/User/WhatIsWrongWithSystemWide/ for an explanation why system "
 | 
				
			||||||
"mode is usually a bad idea."
 | 
					"mode is usually a bad idea."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Ok, vous êtes en train d'exécuter PA en mode système. Assurez-vous que vous "
 | 
					"Vous exécutez PA dans un mode système. Sachez que vous ne devriez pas faire "
 | 
				
			||||||
"voulez vraiment faire cela.\n"
 | 
					"cela.\n"
 | 
				
			||||||
 | 
					"Si vous choisissez malgré tout de le faire, vous êtes responsable de tout "
 | 
				
			||||||
 | 
					"dysfonctionnement inattendu.\n"
 | 
				
			||||||
"Veuillez lire http://www.freedesktop.org/wiki/Software/PulseAudio/"
 | 
					"Veuillez lire http://www.freedesktop.org/wiki/Software/PulseAudio/"
 | 
				
			||||||
"Documentation/User/WhatIsWrongWithSystemWide/ pour savoir pourquoi le mode "
 | 
					"Documentation/User/WhatIsWrongWithSystemWide/ pour comprendre pourquoi le "
 | 
				
			||||||
"système est généralement une mauvaise idée."
 | 
					"mode système est généralement une mauvaise idée."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1161
 | 
					#: src/daemon/main.c:1161
 | 
				
			||||||
msgid "pa_pid_file_create() failed."
 | 
					msgid "pa_pid_file_create() failed."
 | 
				
			||||||
| 
						 | 
					@ -576,8 +583,9 @@ msgid "pa_core_new() failed."
 | 
				
			||||||
msgstr "Échec de pa_core_new()."
 | 
					msgstr "Échec de pa_core_new()."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1268
 | 
					#: src/daemon/main.c:1268
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "command line arguments"
 | 
					msgid "command line arguments"
 | 
				
			||||||
msgstr "paramètres de la ligne de commande"
 | 
					msgstr "Trop de paramètres."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1275
 | 
					#: src/daemon/main.c:1275
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -1176,8 +1184,8 @@ msgstr ""
 | 
				
			||||||
"autoloaded=<définir si ce module est chargé automatiquement> "
 | 
					"autoloaded=<définir si ce module est chargé automatiquement> "
 | 
				
			||||||
"use_volume_sharing=<oui ou non> "
 | 
					"use_volume_sharing=<oui ou non> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1241,14 +1249,14 @@ msgstr "Audio sur @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunnel pour %s@%s"
 | 
					msgstr "Tunnel pour %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunnel vers %s/%s"
 | 
					msgstr "Tunnel vers %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1598,11 +1606,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Cible du journal non valide."
 | 
					msgstr "Cible du journal non valide."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Audio interne"
 | 
					msgstr "Audio interne"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1850,10 +1858,11 @@ msgid "Cork request stack is empty: uncorking stream"
 | 
				
			||||||
msgstr "La pile de requêtes de bouchons est vide : débouchonnage du flux"
 | 
					msgstr "La pile de requêtes de bouchons est vide : débouchonnage du flux"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:425
 | 
					#: src/utils/pacat.c:425
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Warning: Received more uncork requests than cork requests."
 | 
					msgid "Warning: Received more uncork requests than cork requests."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Avertissement : il a été reçu davantage de requêtes de débouchonnage que de "
 | 
					"Avertissement : il a été reçu davantage de requêtes de bouchonnage que de "
 | 
				
			||||||
"requêtes de bouchonnage."
 | 
					"requêtes de débouchonnage !"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:450
 | 
					#: src/utils/pacat.c:450
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										90
									
								
								po/gl.po
									
										
									
									
									
								
							
							
						
						
									
										90
									
								
								po/gl.po
									
										
									
									
									
								
							| 
						 | 
					@ -11,8 +11,8 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PulseAudio\n"
 | 
					"Project-Id-Version: PulseAudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2023-04-14 18:20+0000\n"
 | 
					"PO-Revision-Date: 2021-09-01 12:04+0000\n"
 | 
				
			||||||
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
 | 
					"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
 | 
				
			||||||
"Language-Team: Galician <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Galician <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
"pulseaudio/pulseaudio/gl/>\n"
 | 
					"pulseaudio/pulseaudio/gl/>\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 4.15.2\n"
 | 
					"X-Generator: Weblate 4.8\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -189,13 +189,13 @@ msgid "--fail expects boolean argument"
 | 
				
			||||||
msgstr "--fail agarda un argumento booleano"
 | 
					msgstr "--fail agarda un argumento booleano"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:265
 | 
					#: src/daemon/cmdline.c:265
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					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 agarda un argumento no nivel do rexistro (xa sexa numérico, "
 | 
					"--log-level agarda un argumento no nivel do rexistro (xa sexa numérico, "
 | 
				
			||||||
"dentro do rango de 0-4 ou ben un destos valores: error, warn, notice, info, "
 | 
					"dentro do rango de 0..4; xa sexa un de debug, info, notice, warn, ou error)."
 | 
				
			||||||
"debug)."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:277
 | 
					#: src/daemon/cmdline.c:277
 | 
				
			||||||
msgid "--high-priority expects boolean argument"
 | 
					msgid "--high-priority expects boolean argument"
 | 
				
			||||||
| 
						 | 
					@ -1150,8 +1150,8 @@ msgstr ""
 | 
				
			||||||
"de canles> autoloaded=<estabelézao se este módulo se carga automaticamente> "
 | 
					"de canles> autoloaded=<estabelézao se este módulo se carga automaticamente> "
 | 
				
			||||||
"use_volume_sharing=<si ou non> "
 | 
					"use_volume_sharing=<si ou non> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "Ecualizador baseado en FFT en %s"
 | 
					msgstr "Ecualizador baseado en FFT en %s"
 | 
				
			||||||
| 
						 | 
					@ -1219,14 +1219,14 @@ msgstr "Son en @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Túnel para %s@%s"
 | 
					msgstr "Túnel para %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Túnel a %s/%s"
 | 
					msgstr "Túnel a %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1236,6 +1236,7 @@ msgid "Virtual surround sink"
 | 
				
			||||||
msgstr "Sumideiro envolvente virtual"
 | 
					msgstr "Sumideiro envolvente virtual"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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> "
 | 
				
			||||||
| 
						 | 
					@ -1246,9 +1247,9 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> "
 | 
					"this module is being loaded automatically> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"sink_name=<nome para o destino> sink_properties=<propiedades para o destino> "
 | 
					"sink_name=<nome para o destino> sink_properties=<propiedades para o destino> "
 | 
				
			||||||
"master=<nome do destino a filtrar> sink_master=<nome do destino a filtrar> "
 | 
					"master=<nome do destino a filtrar> sink_master=<nome do destino a "
 | 
				
			||||||
"format=<formato de mostra> rate=<taxa de mostra> channels=<número de canles> "
 | 
					"filtrar>format=<formato de mostra> rate=<taxa de mostra> channels=<número de "
 | 
				
			||||||
"channel_map=<asignación de canles> use_volume_sharing=<si ou non> "
 | 
					"canles> channel_map=<asignación de canles> use_volume_sharing=<si ou non> "
 | 
				
			||||||
"force_flat_volume=<si ou non> hrir=/ruta/ao/left_hrir.wav "
 | 
					"force_flat_volume=<si ou non> hrir=/ruta/ao/left_hrir.wav "
 | 
				
			||||||
"autoloaded=<estabelecer se este módulo se vai cargar automaticamente> "
 | 
					"autoloaded=<estabelecer se este módulo se vai cargar automaticamente> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1575,11 +1576,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Obxectivo do rexistro incorrecto."
 | 
					msgstr "Obxectivo do rexistro incorrecto."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Audio interno"
 | 
					msgstr "Audio interno"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Módem"
 | 
					msgstr "Módem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1894,7 +1895,7 @@ msgid "pa_stream_update_timing_info() failed: %s"
 | 
				
			||||||
msgstr "Produciuse un fallo en pa_stream_update_timing_info(): %s"
 | 
					msgstr "Produciuse un fallo en pa_stream_update_timing_info(): %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:676
 | 
					#: src/utils/pacat.c:676
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"%s\n"
 | 
					"%s\n"
 | 
				
			||||||
| 
						 | 
					@ -1973,10 +1974,8 @@ msgstr ""
 | 
				
			||||||
"  -v, --verbose                         Activar operacións verbosas\n"
 | 
					"  -v, --verbose                         Activar operacións verbosas\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -s, --server=SERVER                   O nome do servidor co que conectar\n"
 | 
					"  -s, --server=SERVER                   O nome do servidor co que conectar\n"
 | 
				
			||||||
"  -d, --device=DEVICE                   O nome do sumideiro/orixe ao que "
 | 
					"  -d, --device=DEVICE                   O nome do dispositivo co que "
 | 
				
			||||||
"conectarse. Os nomes especiais @DEFAULT_SINK@, @DEFAULT_SOURCE@ e "
 | 
					"conectar\n"
 | 
				
			||||||
"@DEFAULT_MONITOR@ poden usarse para especificar o sumideiro, orixe ou "
 | 
					 | 
				
			||||||
"monitor predeterminado respectivamente.\n"
 | 
					 | 
				
			||||||
"  -n, --client-name=NAME                Como chamar a este cliente no "
 | 
					"  -n, --client-name=NAME                Como chamar a este cliente no "
 | 
				
			||||||
"servidor\n"
 | 
					"servidor\n"
 | 
				
			||||||
"      --stream-name=NAME                Como chamar a este fluxo no "
 | 
					"      --stream-name=NAME                Como chamar a este fluxo no "
 | 
				
			||||||
| 
						 | 
					@ -1985,10 +1984,12 @@ msgstr ""
 | 
				
			||||||
"inicial no intervalo entre 0...65536\n"
 | 
					"inicial no intervalo entre 0...65536\n"
 | 
				
			||||||
"      --rate=SAMPLERATE                 A taxa de mostra en Hz (defaults to "
 | 
					"      --rate=SAMPLERATE                 A taxa de mostra en Hz (defaults to "
 | 
				
			||||||
"44100)\n"
 | 
					"44100)\n"
 | 
				
			||||||
"      --format=SAMPLEFORMAT             O tipo de mostra, para máis "
 | 
					"      --format=SAMPLEFORMAT             O tipo de mostra, unha de s16le, "
 | 
				
			||||||
"información vexa\n"
 | 
					"s16be, u8, float32le,\n"
 | 
				
			||||||
"                                        https://www.freedesktop.org/wiki/"
 | 
					"                                        float32be, ulaw, alaw, s32le, s32be, "
 | 
				
			||||||
"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
					"s24le, s24be,\n"
 | 
				
			||||||
 | 
					"                                        s24-32le, s24-32be (o predeterminado "
 | 
				
			||||||
 | 
					"é s16ne)\n"
 | 
				
			||||||
"      --channels=CHANNELS               O número de canles, 1 para mono, 2 "
 | 
					"      --channels=CHANNELS               O número de canles, 1 para mono, 2 "
 | 
				
			||||||
"para estéreo\n"
 | 
					"para estéreo\n"
 | 
				
			||||||
"                                        (predeterminado é 2)\n"
 | 
					"                                        (predeterminado é 2)\n"
 | 
				
			||||||
| 
						 | 
					@ -2391,7 +2392,7 @@ msgid "Failed to get server information: %s"
 | 
				
			||||||
msgstr "Produciuse un fallo ao tentar obter información do servidor: %s"
 | 
					msgstr "Produciuse un fallo ao tentar obter información do servidor: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:224 src/utils/pactl.c:236
 | 
					#: src/utils/pactl.c:224 src/utils/pactl.c:236
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "%s\n"
 | 
					msgid "%s\n"
 | 
				
			||||||
msgstr "%s\n"
 | 
					msgstr "%s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2472,18 +2473,22 @@ msgid "Earpiece"
 | 
				
			||||||
msgstr "Auricular"
 | 
					msgstr "Auricular"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:340
 | 
					#: src/utils/pactl.c:340
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "SPDIF"
 | 
					msgid "SPDIF"
 | 
				
			||||||
msgstr "SPDIF"
 | 
					msgstr "SPDIF"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:341
 | 
					#: src/utils/pactl.c:341
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "HDMI"
 | 
					msgid "HDMI"
 | 
				
			||||||
msgstr "HDMI"
 | 
					msgstr "HDMI"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:342
 | 
					#: src/utils/pactl.c:342
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "TV"
 | 
					msgid "TV"
 | 
				
			||||||
msgstr "TV"
 | 
					msgstr "TV"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:345
 | 
					#: src/utils/pactl.c:345
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "USB"
 | 
					msgid "USB"
 | 
				
			||||||
msgstr "USB"
 | 
					msgstr "USB"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2863,18 +2868,15 @@ msgstr "Produciuse un fallo no mensaxe list-handlers: %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 ""
 | 
					msgstr ""
 | 
				
			||||||
"Non foi posíbel analizar correctamente a resposta da mensaxe de list-handlers"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 respostaa da mensaxe de list-handlers non é unha matriz de JSON"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1729
 | 
					#: src/utils/pactl.c:1729
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "list-handlers message response array element %d is not a JSON object"
 | 
					msgid "list-handlers message response array element %d is not a JSON object"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"O elemento %d da matriz de resposta da mensaxe de list-handlers non é un "
 | 
					 | 
				
			||||||
"obxecto JSON"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1800
 | 
					#: src/utils/pactl.c:1800
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3038,7 +3040,7 @@ msgstr ""
 | 
				
			||||||
"poden usarse para especificar o destino, orixe e monitor predeterminados.\n"
 | 
					"poden usarse para especificar o destino, orixe e monitor predeterminados.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2664
 | 
					#: src/utils/pactl.c:2664
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -h, --help                            Show this help\n"
 | 
					"  -h, --help                            Show this help\n"
 | 
				
			||||||
| 
						 | 
					@ -3054,9 +3056,6 @@ msgstr ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -h, --help                            Mostra esta axuda\n"
 | 
					"  -h, --help                            Mostra esta axuda\n"
 | 
				
			||||||
"      --version                         Mostra a versión\n"
 | 
					"      --version                         Mostra a versión\n"
 | 
				
			||||||
"\n"
 | 
					 | 
				
			||||||
"  -f, --format=FORMAT                   O formato da saída. Puede ser "
 | 
					 | 
				
			||||||
"«normal» o «json»\n"
 | 
					 | 
				
			||||||
"  -s, --server=SERVIDOR                 O nome do servidor co que conectar\n"
 | 
					"  -s, --server=SERVIDOR                 O nome do servidor co que conectar\n"
 | 
				
			||||||
"  -n, --client-name=NOME                Como chamar a este cliente no "
 | 
					"  -n, --client-name=NOME                Como chamar a este cliente no "
 | 
				
			||||||
"servidor\n"
 | 
					"servidor\n"
 | 
				
			||||||
| 
						 | 
					@ -3073,9 +3072,9 @@ msgstr ""
 | 
				
			||||||
"Vinculado con libpulse %s\n"
 | 
					"Vinculado con libpulse %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2751
 | 
					#: src/utils/pactl.c:2751
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "Invalid format value '%s'"
 | 
					msgid "Invalid format value '%s'"
 | 
				
			||||||
msgstr "Formato do valor «%s» incorrecto"
 | 
					msgstr "Nome do fluxo «%s» incorrecto"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2778
 | 
					#: src/utils/pactl.c:2778
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3160,16 +3159,18 @@ msgid "You have to specify a source name"
 | 
				
			||||||
msgstr "Ten que especificar un nome para a fonte"
 | 
					msgstr "Ten que especificar un nome para a fonte"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2998 src/utils/pactl.c:3076
 | 
					#: src/utils/pactl.c:2998 src/utils/pactl.c:3076
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify a sink name/index"
 | 
					msgid "You have to specify a sink name/index"
 | 
				
			||||||
msgstr "Ten que especificar un nome/índice de destino"
 | 
					msgstr "Ten que especificar un nome de destino"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3008
 | 
					#: src/utils/pactl.c:3008
 | 
				
			||||||
msgid "You have to specify a sink name/index and a volume"
 | 
					msgid "You have to specify a sink name/index and a volume"
 | 
				
			||||||
msgstr "Debe especificar un nome/índice de destino e un volume"
 | 
					msgstr "Debe especificar un nome/índice de destino e un volume"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
					#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify a source name/index"
 | 
					msgid "You have to specify a source name/index"
 | 
				
			||||||
msgstr "Ten que especificar un nome/índice de fonte"
 | 
					msgstr "Ten que especificar un nome para a fonte"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3031
 | 
					#: src/utils/pactl.c:3031
 | 
				
			||||||
msgid "You have to specify a source name/index and a volume"
 | 
					msgid "You have to specify a source name/index and a volume"
 | 
				
			||||||
| 
						 | 
					@ -3234,18 +3235,15 @@ msgid "Invalid source output index specification"
 | 
				
			||||||
msgstr "Especificación de índice de saída de orixe non válida"
 | 
					msgstr "Especificación de índice de saída de orixe non válida"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3162
 | 
					#: src/utils/pactl.c:3162
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify at least an object path and a message name"
 | 
					msgid "You have to specify at least an object path and a message name"
 | 
				
			||||||
msgstr ""
 | 
					msgstr "Debe especificar un nome/índice de destino e un nome de porto"
 | 
				
			||||||
"Debe especificar cando menos unha ruta de acceso ao obxecto e un nome de "
 | 
					 | 
				
			||||||
"mensaxe"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3172
 | 
					#: src/utils/pactl.c:3172
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Excess arguments given, they will be ignored. Note that all message "
 | 
					"Excess arguments given, they will be ignored. Note that all message "
 | 
				
			||||||
"parameters must be given as a single string."
 | 
					"parameters must be given as a single string."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Fornecéronse argumentos de máis, serán ignorados. Teña en conta que todos os "
 | 
					 | 
				
			||||||
"parámetros de mensaxe deben ingresarse como unha única cadea."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3182
 | 
					#: src/utils/pactl.c:3182
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -3310,7 +3308,7 @@ msgid "WARNING: Child process terminated by signal %u\n"
 | 
				
			||||||
msgstr "AVISO: o proceso fillo foi rematado polo sinal %u\n"
 | 
					msgstr "AVISO: o proceso fillo foi rematado polo sinal %u\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pasuspender.c:228
 | 
					#: src/utils/pasuspender.c:228
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options] -- PROGRAM [ARGUMENTS ...]\n"
 | 
					"%s [options] -- PROGRAM [ARGUMENTS ...]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -3322,9 +3320,7 @@ msgid ""
 | 
				
			||||||
"to\n"
 | 
					"to\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"%s [opcións] --PROGRAMA [ARGUMENTOS ...]... \n"
 | 
					"%s [opcións] ... \n"
 | 
				
			||||||
"\n"
 | 
					 | 
				
			||||||
"Suspende temporalmente PulseAudio mentres se executa o PROGRAMA.\n"
 | 
					 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -h, --help                            Mostra esta axuda\n"
 | 
					"  -h, --help                            Mostra esta axuda\n"
 | 
				
			||||||
"      --version                         Mostra a versión\n"
 | 
					"      --version                         Mostra a versión\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/gu.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/gu.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PulseAudio\n"
 | 
					"Project-Id-Version: PulseAudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:53+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:53+0000\n"
 | 
				
			||||||
"Last-Translator: Sweta Kothari <swkothar@redhat.com>\n"
 | 
					"Last-Translator: Sweta Kothari <swkothar@redhat.com>\n"
 | 
				
			||||||
"Language-Team: Gujarati\n"
 | 
					"Language-Team: Gujarati\n"
 | 
				
			||||||
| 
						 | 
					@ -1147,8 +1147,8 @@ msgstr ""
 | 
				
			||||||
"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
					"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
				
			||||||
"input control values>"
 | 
					"input control values>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1211,14 +1211,14 @@ msgstr "@HOSTNAME@ પર ઓડિયો"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1569,11 +1569,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] અયોગ્ય લોગ લક્ષ્ય '%s'."
 | 
					msgstr "[%s:%u] અયોગ્ય લોગ લક્ષ્ય '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "આંતરિક ઓડિયો"
 | 
					msgstr "આંતરિક ઓડિયો"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "મોડેમ"
 | 
					msgstr "મોડેમ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/he.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/he.po
									
										
									
									
									
								
							| 
						 | 
					@ -6,7 +6,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2021-05-12 11:02+0000\n"
 | 
					"PO-Revision-Date: 2021-05-12 11:02+0000\n"
 | 
				
			||||||
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
 | 
					"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Hebrew <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Hebrew <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -980,8 +980,8 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1038,14 +1038,14 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1382,11 +1382,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "צליל פנימי"
 | 
					msgstr "צליל פנימי"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "מודם"
 | 
					msgstr "מודם"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										32
									
								
								po/hr.po
									
										
									
									
									
								
							
							
						
						
									
										32
									
								
								po/hr.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-03-28 19:10+0000\n"
 | 
					"PO-Revision-Date: 2022-03-28 19:10+0000\n"
 | 
				
			||||||
"Last-Translator: Gogo Gogsi <linux.hr@protonmail.com>\n"
 | 
					"Last-Translator: Gogo Gogsi <linux.hr@protonmail.com>\n"
 | 
				
			||||||
"Language-Team: Croatian <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Croatian <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -1160,8 +1160,6 @@ msgstr ""
 | 
				
			||||||
"autoloaded=<postavi ako se ovaj modul učitava automatski> "
 | 
					"autoloaded=<postavi ako se ovaj modul učitava automatski> "
 | 
				
			||||||
"use_volume_sharing=<da ili ne> "
 | 
					"use_volume_sharing=<da ili ne> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1094
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1217
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -1229,16 +1227,12 @@ msgstr "Zvuk na @NAZIVRAČUNALA@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:356
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:342
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunel za %s@%s"
 | 
					msgstr "Tunel za %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:697
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:668
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -1589,11 +1583,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Neispravno odredište zapisa."
 | 
					msgstr "Neispravno odredište zapisa."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609 src/pulsecore/sink.c:3600
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Ugrađeni zvuk"
 | 
					msgstr "Ugrađeni zvuk"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614 src/pulsecore/sink.c:3605
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1910,7 +1904,7 @@ msgid "pa_stream_update_timing_info() failed: %s"
 | 
				
			||||||
msgstr "pa_stream_update_timing_info() neuspjelo: %s"
 | 
					msgstr "pa_stream_update_timing_info() neuspjelo: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:676
 | 
					#: src/utils/pacat.c:676
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"%s\n"
 | 
					"%s\n"
 | 
				
			||||||
| 
						 | 
					@ -1991,9 +1985,7 @@ msgstr ""
 | 
				
			||||||
"  -s, --server=POSLUŽITELJ                   Naziv poslužitelja za "
 | 
					"  -s, --server=POSLUŽITELJ                   Naziv poslužitelja za "
 | 
				
			||||||
"povezivanje\n"
 | 
					"povezivanje\n"
 | 
				
			||||||
"  -d, --device=UREĐAJ                   Naziv slivnika/izvora za "
 | 
					"  -d, --device=UREĐAJ                   Naziv slivnika/izvora za "
 | 
				
			||||||
"povezivanje. Posebni nazivi @DEFAULT_SINK@, @DEFAULT_SOURCE@ i "
 | 
					"povezivanje\n"
 | 
				
			||||||
"@DEFAULT_MONITOR@ mogu se koristiti za određivanje zadanog slivnika, izvora "
 | 
					 | 
				
			||||||
"i nadgledanja.\n"
 | 
					 | 
				
			||||||
"  -n, --client-name=NAZIV                Naziv klijenta na poslužitelju\n"
 | 
					"  -n, --client-name=NAZIV                Naziv klijenta na poslužitelju\n"
 | 
				
			||||||
"      --stream-name=NAZIV                Naziv strujanja na poslužitelju\n"
 | 
					"      --stream-name=NAZIV                Naziv strujanja na poslužitelju\n"
 | 
				
			||||||
"      --volume=GLASNOĆA ZVUKA                   Određuje početnu (linearnu) "
 | 
					"      --volume=GLASNOĆA ZVUKA                   Određuje početnu (linearnu) "
 | 
				
			||||||
| 
						 | 
					@ -2002,7 +1994,7 @@ msgstr ""
 | 
				
			||||||
"      --format=FORMAT UZORKA             Vrsta uzorka, pogledajte\n"
 | 
					"      --format=FORMAT UZORKA             Vrsta uzorka, pogledajte\n"
 | 
				
			||||||
"                                        https://www.freedesktop.org/wiki/"
 | 
					"                                        https://www.freedesktop.org/wiki/"
 | 
				
			||||||
"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
					"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
				
			||||||
"                                        za moguće vrijednosti (zadano je "
 | 
					"                                        za moguće vrijenosti (zadano je "
 | 
				
			||||||
"s16ne)\n"
 | 
					"s16ne)\n"
 | 
				
			||||||
"      --channels=KANALI               Broj kanala, 1 za mono, 2 za stereo\n"
 | 
					"      --channels=KANALI               Broj kanala, 1 za mono, 2 za stereo\n"
 | 
				
			||||||
"                                        (zadano 2)\n"
 | 
					"                                        (zadano 2)\n"
 | 
				
			||||||
| 
						 | 
					@ -2010,14 +2002,14 @@ msgstr ""
 | 
				
			||||||
"umjesto zadanog\n"
 | 
					"umjesto zadanog\n"
 | 
				
			||||||
"      --fix-format                      Uzima uzorak formata iz slivnika/"
 | 
					"      --fix-format                      Uzima uzorak formata iz slivnika/"
 | 
				
			||||||
"izvora s kojim\n"
 | 
					"izvora s kojim\n"
 | 
				
			||||||
"                                        je strujanje povezano.\n"
 | 
					"                                        je tok povezan.\n"
 | 
				
			||||||
"      --fix-rate                        Uzima frekvenciju iz slivnika/izvora "
 | 
					"      --fix-rate                        Uzima frekvenciju iz slivnika/izvora "
 | 
				
			||||||
"s kojim\n"
 | 
					"s kojim\n"
 | 
				
			||||||
"                                        je strujanje povezano.\n"
 | 
					"                                        je tok povezan.\n"
 | 
				
			||||||
"      --fix-channels                    Uzima broj kanala i mapiranje "
 | 
					"      --fix-channels                    Uzima broj kanala i mapiranje "
 | 
				
			||||||
"kanala\n"
 | 
					"kanala\n"
 | 
				
			||||||
"                                        iz slivnika/izvora s kojim je "
 | 
					"                                        iz slivnika/izvora s kojim je tok "
 | 
				
			||||||
"strujanje povezano.\n"
 | 
					"povezan.\n"
 | 
				
			||||||
"      --no-remix                        Ne smanjuj ili pojačavaj kanale.\n"
 | 
					"      --no-remix                        Ne smanjuj ili pojačavaj kanale.\n"
 | 
				
			||||||
"      --no-remap                        Mapiraj kanale prema sadržaju "
 | 
					"      --no-remap                        Mapiraj kanale prema sadržaju "
 | 
				
			||||||
"umjesto nazivu.\n"
 | 
					"umjesto nazivu.\n"
 | 
				
			||||||
| 
						 | 
					@ -2029,8 +2021,8 @@ msgstr ""
 | 
				
			||||||
"msek.\n"
 | 
					"msek.\n"
 | 
				
			||||||
"      --process-time-msec=MSEK          Zahtijevaj određeno vrijeme procesa "
 | 
					"      --process-time-msec=MSEK          Zahtijevaj određeno vrijeme procesa "
 | 
				
			||||||
"po zahtjevu u msek.\n"
 | 
					"po zahtjevu u msek.\n"
 | 
				
			||||||
"      --property=SVOJSTVO=VRIJEDNOST         Postavi određeno svojstvo za "
 | 
					"      --property=VLASNIŠTVO=VRIJEDNOST         Postavi određeno vlasništvo "
 | 
				
			||||||
"određenu vrijednost.\n"
 | 
					"za određenu vrijednost.\n"
 | 
				
			||||||
"      --raw                             Snimaj/Reproduciraj osnovne PCM "
 | 
					"      --raw                             Snimaj/Reproduciraj osnovne PCM "
 | 
				
			||||||
"podatke.\n"
 | 
					"podatke.\n"
 | 
				
			||||||
"      --passthrough                     Prolaz podataka.\n"
 | 
					"      --passthrough                     Prolaz podataka.\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										90
									
								
								po/hu.po
									
										
									
									
									
								
							
							
						
						
									
										90
									
								
								po/hu.po
									
										
									
									
									
								
							| 
						 | 
					@ -10,9 +10,9 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PulseAudio master\n"
 | 
					"Project-Id-Version: PulseAudio master\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-08-09 21:19+0000\n"
 | 
					"PO-Revision-Date: 2021-11-21 13:16+0000\n"
 | 
				
			||||||
"Last-Translator: Balázs Meskó <meskobalazs@mailbox.org>\n"
 | 
					"Last-Translator: . Ovari <ovari123@zoho.com>\n"
 | 
				
			||||||
"Language-Team: Hungarian <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Hungarian <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
"pulseaudio/pulseaudio/hu/>\n"
 | 
					"pulseaudio/pulseaudio/hu/>\n"
 | 
				
			||||||
"Language: hu\n"
 | 
					"Language: hu\n"
 | 
				
			||||||
| 
						 | 
					@ -20,13 +20,13 @@ 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.13\n"
 | 
					"X-Generator: Weblate 4.9\n"
 | 
				
			||||||
"X-Poedit-Language: Hungarian\n"
 | 
					"X-Poedit-Language: Hungarian\n"
 | 
				
			||||||
"X-Poedit-Country: HUNGARY\n"
 | 
					"X-Poedit-Country: HUNGARY\n"
 | 
				
			||||||
"X-Poedit-SourceCharset: utf-8\n"
 | 
					"X-Poedit-SourceCharset: utf-8\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -187,6 +187,7 @@ msgid "--fail expects boolean argument"
 | 
				
			||||||
msgstr "a --fail paraméter logikai értéket vár"
 | 
					msgstr "a --fail paraméter logikai értéket vár"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:265
 | 
					#: src/daemon/cmdline.c:265
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					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)."
 | 
				
			||||||
| 
						 | 
					@ -215,13 +216,14 @@ msgid "--use-pid-file expects boolean argument"
 | 
				
			||||||
msgstr "a --use-pid-file paraméter logikai értéket vár"
 | 
					msgstr "a --use-pid-file paraméter logikai értéket vár"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:328
 | 
					#: src/daemon/cmdline.c:328
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Invalid log target: use either 'syslog', 'journal', 'stderr' or 'auto' or a "
 | 
					"Invalid log target: use either 'syslog', 'journal', 'stderr' or 'auto' or a "
 | 
				
			||||||
"valid file name 'file:<path>', 'newfile:<path>'."
 | 
					"valid file name 'file:<path>', 'newfile:<path>'."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Érvénytelen naplózási cél: használja a „syslog”, „journal”, „stderr” vagy az "
 | 
					"Érvénytelen naplózási cél: használja a „syslog”, „journal”, „stderr” vagy az "
 | 
				
			||||||
"„auto” egyikét, vagy egy érvényes fájlnevet: „file:<útvonal>”, "
 | 
					"„auto” egyikét, vagy egy érvényes fájlnevet: „file:<útvonal>”, „newfile:"
 | 
				
			||||||
"„newfile:<útvonal>”."
 | 
					"<útvonal>”."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:330
 | 
					#: src/daemon/cmdline.c:330
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -958,7 +960,7 @@ msgstr ""
 | 
				
			||||||
"más érték volt."
 | 
					"más érték volt."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-util.c:1183 src/modules/alsa/alsa-util.c:1277
 | 
					#: src/modules/alsa/alsa-util.c:1183 src/modules/alsa/alsa-util.c:1277
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"snd_pcm_avail() returned a value that is exceptionally large: %lu byte (%lu "
 | 
					"snd_pcm_avail() returned a value that is exceptionally large: %lu byte (%lu "
 | 
				
			||||||
"ms).\n"
 | 
					"ms).\n"
 | 
				
			||||||
| 
						 | 
					@ -981,7 +983,7 @@ msgstr[1] ""
 | 
				
			||||||
"ezt a problémát az ALSA fejlesztői felé."
 | 
					"ezt a problémát az ALSA fejlesztői felé."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-util.c:1249
 | 
					#: src/modules/alsa/alsa-util.c:1249
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"snd_pcm_delay() returned a value that is exceptionally large: %li byte (%s"
 | 
					"snd_pcm_delay() returned a value that is exceptionally large: %li byte (%s"
 | 
				
			||||||
"%lu ms).\n"
 | 
					"%lu ms).\n"
 | 
				
			||||||
| 
						 | 
					@ -1017,7 +1019,7 @@ msgstr ""
 | 
				
			||||||
"ezt a problémát az ALSA fejlesztői felé."
 | 
					"ezt a problémát az ALSA fejlesztői felé."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-util.c:1339
 | 
					#: src/modules/alsa/alsa-util.c:1339
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu byte "
 | 
					"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu byte "
 | 
				
			||||||
"(%lu ms).\n"
 | 
					"(%lu ms).\n"
 | 
				
			||||||
| 
						 | 
					@ -1161,8 +1163,8 @@ msgstr ""
 | 
				
			||||||
"channel_map=<csatornaleképzés> autoloaded=<beállítva, ha ez a modul "
 | 
					"channel_map=<csatornaleképzés> autoloaded=<beállítva, ha ez a modul "
 | 
				
			||||||
"automatikusan betöltődik> use_volume_sharing=<igen vagy nem> "
 | 
					"automatikusan betöltődik> use_volume_sharing=<igen vagy nem> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "FFT alapú hangszínszabályzó ezen: %s"
 | 
					msgstr "FFT alapú hangszínszabályzó ezen: %s"
 | 
				
			||||||
| 
						 | 
					@ -1176,6 +1178,7 @@ msgid "Virtual LADSPA sink"
 | 
				
			||||||
msgstr "Látszólagos LADSPA nyelő"
 | 
					msgstr "Látszólagos LADSPA nyelő"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-ladspa-sink.c:54
 | 
					#: src/modules/module-ladspa-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> "
 | 
				
			||||||
"sink_input_properties=<properties for the sink input> master=<name of sink "
 | 
					"sink_input_properties=<properties for the sink input> master=<name of sink "
 | 
				
			||||||
| 
						 | 
					@ -1194,8 +1197,7 @@ msgstr ""
 | 
				
			||||||
"control=<bemenetszabályzó értékek vesszővel elválasztott listája> "
 | 
					"control=<bemenetszabályzó értékek vesszővel elválasztott listája> "
 | 
				
			||||||
"input_ladspaport_map=<bemeneti LADSPA portnevek vesszővel elválasztott "
 | 
					"input_ladspaport_map=<bemeneti LADSPA portnevek vesszővel elválasztott "
 | 
				
			||||||
"listája> output_ladspaport_map=<kimeneti LADSPA portnevek vesszővel "
 | 
					"listája> output_ladspaport_map=<kimeneti LADSPA portnevek vesszővel "
 | 
				
			||||||
"elválasztott listája> autoloaded=<állítsa be ha a modul automatikusan "
 | 
					"elválasztott listája> "
 | 
				
			||||||
"töltődik be> "
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-null-sink.c:46
 | 
					#: src/modules/module-null-sink.c:46
 | 
				
			||||||
msgid "Clocked NULL sink"
 | 
					msgid "Clocked NULL sink"
 | 
				
			||||||
| 
						 | 
					@ -1228,14 +1230,14 @@ msgstr "Hangok ezen a számítógépen: @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Alagút ennek: %s@%s"
 | 
					msgstr "Alagút ennek: %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Alagút ehhez: %s/%s"
 | 
					msgstr "Alagút ehhez: %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1245,6 +1247,7 @@ msgid "Virtual surround sink"
 | 
				
			||||||
msgstr "Virtuális térhatású nyelő"
 | 
					msgstr "Virtuális térhatású nyelő"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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> "
 | 
				
			||||||
| 
						 | 
					@ -1259,7 +1262,6 @@ msgstr ""
 | 
				
			||||||
"rate=<mintavételezési gyakoriság> channels=<csatornák száma> "
 | 
					"rate=<mintavételezési gyakoriság> channels=<csatornák száma> "
 | 
				
			||||||
"channel_map=<csatornaleképzés> use_volume_sharing=<igen vag nem> "
 | 
					"channel_map=<csatornaleképzés> use_volume_sharing=<igen vag nem> "
 | 
				
			||||||
"force_flat_volume=<igen vag nem> hrir=/útvonal/left_hrir.wav "
 | 
					"force_flat_volume=<igen vag nem> hrir=/útvonal/left_hrir.wav "
 | 
				
			||||||
"autoloaded=<állítsa be ha a modul automatikusan töltődik be> "
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/raop/module-raop-discover.c:295
 | 
					#: src/modules/raop/module-raop-discover.c:295
 | 
				
			||||||
msgid "Unknown device model"
 | 
					msgid "Unknown device model"
 | 
				
			||||||
| 
						 | 
					@ -1544,7 +1546,7 @@ msgid "invalid"
 | 
				
			||||||
msgstr "érvénytelen"
 | 
					msgstr "érvénytelen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/core-util.c:1790
 | 
					#: src/pulsecore/core-util.c:1790
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"XDG_RUNTIME_DIR (%s) is not owned by us (uid %d), but by uid %d! (This could "
 | 
					"XDG_RUNTIME_DIR (%s) is not owned by us (uid %d), but by uid %d! (This could "
 | 
				
			||||||
"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, "
 | 
				
			||||||
| 
						 | 
					@ -1552,7 +1554,7 @@ msgid ""
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Az XDG_RUNTIME_DIR (%s) tulajdonosa nem a PulseAudio (uid %d), hanem ez az "
 | 
					"Az XDG_RUNTIME_DIR (%s) tulajdonosa nem a PulseAudio (uid %d), hanem ez az "
 | 
				
			||||||
"uid: %d! (Ez például akkor fordulhat elő, ha egy nem rootként futó "
 | 
					"uid: %d! (Ez például akkor fordulhat elő, ha egy nem rootként futó "
 | 
				
			||||||
"PulseAudióhoz root felhasználóként próbál csatlakozni a natív protokollon. "
 | 
					"PulseAudio-hoz root felhasználóként próbál csatlakozni a natív protokollon. "
 | 
				
			||||||
"Ne tegye.)"
 | 
					"Ne tegye.)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/core-util.h:97
 | 
					#: src/pulsecore/core-util.h:97
 | 
				
			||||||
| 
						 | 
					@ -1584,11 +1586,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Érvénytelen naplózási cél."
 | 
					msgstr "Érvénytelen naplózási cél."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Belső hangforrás"
 | 
					msgstr "Belső hangforrás"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1908,7 +1910,7 @@ msgid "pa_stream_update_timing_info() failed: %s"
 | 
				
			||||||
msgstr "A „pa_stream_update_timing_info()” függvényhívás meghiúsult: %s"
 | 
					msgstr "A „pa_stream_update_timing_info()” függvényhívás meghiúsult: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:676
 | 
					#: src/utils/pacat.c:676
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"%s\n"
 | 
					"%s\n"
 | 
				
			||||||
| 
						 | 
					@ -1975,7 +1977,7 @@ msgid ""
 | 
				
			||||||
"      --monitor-stream=INDEX            Record from the sink input with "
 | 
					"      --monitor-stream=INDEX            Record from the sink input with "
 | 
				
			||||||
"index INDEX.\n"
 | 
					"index INDEX.\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"%s [KAPCSOLÓK]\n"
 | 
					"%s [KAPCSOLÓ]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"%s\n"
 | 
					"%s\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -2018,8 +2020,8 @@ msgstr ""
 | 
				
			||||||
"      --fix-channels                    A csatornaszám és a csatornaleképzés "
 | 
					"      --fix-channels                    A csatornaszám és a csatornaleképzés "
 | 
				
			||||||
"átvétele a nyelőtől/forrástól,\n"
 | 
					"átvétele a nyelőtől/forrástól,\n"
 | 
				
			||||||
"                                        amelyhez az adatfolyam csatlakozik.\n"
 | 
					"                                        amelyhez az adatfolyam csatlakozik.\n"
 | 
				
			||||||
"      --no-remix                        Ne keverjen fel vagy le csatornákat."
 | 
					"      --no-remix                        Ne keverjen fel vagy le "
 | 
				
			||||||
"\n"
 | 
					"csatornákat.\n"
 | 
				
			||||||
"      --no-remap                        Csatornák leképezése index és nem "
 | 
					"      --no-remap                        Csatornák leképezése index és nem "
 | 
				
			||||||
"név szerint.\n"
 | 
					"név szerint.\n"
 | 
				
			||||||
"      --latency=BÁJT                    A bájtokban megadott késleltetés "
 | 
					"      --latency=BÁJT                    A bájtokban megadott késleltetés "
 | 
				
			||||||
| 
						 | 
					@ -2374,14 +2376,14 @@ msgid "Failed to get statistics: %s"
 | 
				
			||||||
msgstr "Nem sikerült a statisztika lekérdezése: %s"
 | 
					msgstr "Nem sikerült a statisztika lekérdezése: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:199
 | 
					#: src/utils/pactl.c:199
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, 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] "Jelenleg használt: %u blokk, összesen %s bájt tartalommal.\n"
 | 
					msgstr[0] "Jelenleg használt: %u blokk, összesen %s bájt tartalommal.\n"
 | 
				
			||||||
msgstr[1] "Jelenleg használt: %u blokk, összesen %s bájt tartalommal.\n"
 | 
					msgstr[1] "Jelenleg használt: %u blokk, összesen %s bájt tartalommal.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:205
 | 
					#: src/utils/pactl.c:205
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "Allocated during whole lifetime: %u block containing %s bytes total.\n"
 | 
					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"
 | 
				
			||||||
| 
						 | 
					@ -2560,9 +2562,9 @@ msgid "\tPorts:\n"
 | 
				
			||||||
msgstr "\tPortok:\n"
 | 
					msgstr "\tPortok:\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
					#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "\t\t%s: %s (type: %s, priority: %u%s%s, %s)\n"
 | 
					msgid "\t\t%s: %s (type: %s, priority: %u%s%s, %s)\n"
 | 
				
			||||||
msgstr "\t\t%s: %s (típus: %s, prioritás: %u%s%s, %s)\n"
 | 
					msgstr "\t\t%s: %s (nyelők: %u, források: %u, prioritás: %u, elérhető: %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
 | 
				
			||||||
msgid ", availability group: "
 | 
					msgid ", availability group: "
 | 
				
			||||||
| 
						 | 
					@ -2715,8 +2717,6 @@ msgstr "\tAktív profil: %s\n"
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\t\t%s: %s (type: %s, priority: %u, latency offset: %<PRId64> usec%s%s, %s)\n"
 | 
					"\t\t%s: %s (type: %s, priority: %u, latency offset: %<PRId64> usec%s%s, %s)\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"\t\t%s: %s (típus: %s, prioritás: %u, késleltetési eltolás: %<PRId64> "
 | 
					 | 
				
			||||||
"usec%s%s, %s)\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1261
 | 
					#: src/utils/pactl.c:1261
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2888,7 +2888,7 @@ msgid "Failed to unload module: Module %s not loaded"
 | 
				
			||||||
msgstr "Nem sikerült eltávolítani a modult: nincs betöltve %s nevű modul"
 | 
					msgstr "Nem sikerült eltávolítani a modult: nincs betöltve %s nevű modul"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1818
 | 
					#: src/utils/pactl.c:1818
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Failed to set volume: You tried to set volumes for %d channel, whereas "
 | 
					"Failed to set volume: You tried to set volumes for %d channel, whereas "
 | 
				
			||||||
"channel(s) supported = %d\n"
 | 
					"channel(s) supported = %d\n"
 | 
				
			||||||
| 
						 | 
					@ -3044,7 +3044,7 @@ msgstr ""
 | 
				
			||||||
"használhatók az alapértelmezett nyelő, forrás és megfigyelő megadására.\n"
 | 
					"használhatók az alapértelmezett nyelő, forrás és megfigyelő megadására.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2664
 | 
					#: src/utils/pactl.c:2664
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -h, --help                            Show this help\n"
 | 
					"  -h, --help                            Show this help\n"
 | 
				
			||||||
| 
						 | 
					@ -3061,8 +3061,6 @@ msgstr ""
 | 
				
			||||||
"  -h, --help                            Ezen súgó megjelenítése\n"
 | 
					"  -h, --help                            Ezen súgó megjelenítése\n"
 | 
				
			||||||
"      --version                         Verziószám megjelenítése\n"
 | 
					"      --version                         Verziószám megjelenítése\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -f, --format=FORMAT                   A kimenet formátuma. „normal” vagy "
 | 
					 | 
				
			||||||
"„json”.\n"
 | 
					 | 
				
			||||||
"  -s, --server=KISZOLGÁLÓ               Csatlakozás ehhez a kiszolgálóhoz\n"
 | 
					"  -s, --server=KISZOLGÁLÓ               Csatlakozás ehhez a kiszolgálóhoz\n"
 | 
				
			||||||
"  -n, --client-name=NÉV                 A kliens neve a kiszolgálón\n"
 | 
					"  -n, --client-name=NÉV                 A kliens neve a kiszolgálón\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3161,16 +3159,18 @@ msgid "You have to specify a source name"
 | 
				
			||||||
msgstr "Meg kell adnia egy forrás nevét"
 | 
					msgstr "Meg kell adnia egy forrás nevét"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2998 src/utils/pactl.c:3076
 | 
					#: src/utils/pactl.c:2998 src/utils/pactl.c:3076
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify a sink name/index"
 | 
					msgid "You have to specify a sink name/index"
 | 
				
			||||||
msgstr "Meg kell adnia egy nyelő nevét/indexét"
 | 
					msgstr "Meg kell adnia egy nyelő nevét"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3008
 | 
					#: src/utils/pactl.c:3008
 | 
				
			||||||
msgid "You have to specify a sink name/index and a volume"
 | 
					msgid "You have to specify a sink name/index and a volume"
 | 
				
			||||||
msgstr "Meg kell adnia egy nyelő nevét vagy indexét és egy hangerőt"
 | 
					msgstr "Meg kell adnia egy nyelő nevét vagy indexét és egy hangerőt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
					#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify a source name/index"
 | 
					msgid "You have to specify a source name/index"
 | 
				
			||||||
msgstr "Meg kell adnia egy forrás nevét/indexét"
 | 
					msgstr "Meg kell adnia egy forrás nevét"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3031
 | 
					#: src/utils/pactl.c:3031
 | 
				
			||||||
msgid "You have to specify a source name/index and a volume"
 | 
					msgid "You have to specify a source name/index and a volume"
 | 
				
			||||||
| 
						 | 
					@ -3235,17 +3235,15 @@ msgid "Invalid source output index specification"
 | 
				
			||||||
msgstr "A forrás bemeneti indexének megadása érvénytelen"
 | 
					msgstr "A forrás bemeneti indexének megadása érvénytelen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3162
 | 
					#: src/utils/pactl.c:3162
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify at least an object path and a message name"
 | 
					msgid "You have to specify at least an object path and a message name"
 | 
				
			||||||
msgstr "Meg kell adnia legalább egy objektumútvonalat és egy üzenetnevet"
 | 
					msgstr "Meg kell adnia a nyelő nevét vagy indexét, és egy port nevét"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3172
 | 
					#: src/utils/pactl.c:3172
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Excess arguments given, they will be ignored. Note that all message "
 | 
					"Excess arguments given, they will be ignored. Note that all message "
 | 
				
			||||||
"parameters must be given as a single string."
 | 
					"parameters must be given as a single string."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Túl sok argumentum lett megadva, figyelmen kívül lesznek hagyva. Vegye "
 | 
					 | 
				
			||||||
"figyelembe, hogy az üzenetparamétereket egyetlen karakterláncban kell "
 | 
					 | 
				
			||||||
"megadni."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3182
 | 
					#: src/utils/pactl.c:3182
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -3311,7 +3309,7 @@ msgstr ""
 | 
				
			||||||
"FIGYELMEZTETÉS: A gyermek folyamat a következő szignállal fejeződött be: %u\n"
 | 
					"FIGYELMEZTETÉS: A gyermek folyamat a következő szignállal fejeződött be: %u\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pasuspender.c:228
 | 
					#: src/utils/pasuspender.c:228
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options] -- PROGRAM [ARGUMENTS ...]\n"
 | 
					"%s [options] -- PROGRAM [ARGUMENTS ...]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -3323,9 +3321,7 @@ msgid ""
 | 
				
			||||||
"to\n"
 | 
					"to\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"%s [KAPCSOLÓK] -- PROGRAM [ARGUMENTUMOK …]\n"
 | 
					"%s [KAPCSOLÓK] ... \n"
 | 
				
			||||||
"\n"
 | 
					 | 
				
			||||||
"A PulseAudio ideiglenes felfüggesztése, amíg a PROGRAM fut.\n"
 | 
					 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -h, --help                            Ezen súgó megjelenítése\n"
 | 
					"  -h, --help                            Ezen súgó megjelenítése\n"
 | 
				
			||||||
"      --version                         Verziószám megjelenítése\n"
 | 
					"      --version                         Verziószám megjelenítése\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										176
									
								
								po/id.po
									
										
									
									
									
								
							
							
						
						
									
										176
									
								
								po/id.po
									
										
									
									
									
								
							| 
						 | 
					@ -9,8 +9,8 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PulseAudio master\n"
 | 
					"Project-Id-Version: PulseAudio master\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2024-11-03 10:40+0000\n"
 | 
					"PO-Revision-Date: 2021-09-24 12:05+0000\n"
 | 
				
			||||||
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
 | 
					"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Indonesian <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Indonesian <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
"pulseaudio/pulseaudio/id/>\n"
 | 
					"pulseaudio/pulseaudio/id/>\n"
 | 
				
			||||||
| 
						 | 
					@ -19,10 +19,10 @@ 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.8.2\n"
 | 
					"X-Generator: Weblate 4.8\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -113,8 +113,8 @@ msgstr ""
 | 
				
			||||||
"OPSI:\n"
 | 
					"OPSI:\n"
 | 
				
			||||||
"      --system[=BOOL]                   Jalankan sebagai instansi seluruh "
 | 
					"      --system[=BOOL]                   Jalankan sebagai instansi seluruh "
 | 
				
			||||||
"sistem\n"
 | 
					"sistem\n"
 | 
				
			||||||
"  -D, --daemonize[=BOOL]                Jadikan daemon setelah awal mula\n"
 | 
					"  -D, --daemonize[=BOOL]                Jadikan daemon setelah awalan\n"
 | 
				
			||||||
"      --fail[=BOOL]                     Keluar ketika awal mula gagal\n"
 | 
					"      --fail[=BOOL]                     Keluar ketika awalan gagal\n"
 | 
				
			||||||
"      --high-priority[=BOOL]            Coba tata ke aras nice tinggi\n"
 | 
					"      --high-priority[=BOOL]            Coba tata ke aras nice tinggi\n"
 | 
				
			||||||
"                                        (hanya tersedia sebagai root, ketika "
 | 
					"                                        (hanya tersedia sebagai root, ketika "
 | 
				
			||||||
"SUID\n"
 | 
					"SUID\n"
 | 
				
			||||||
| 
						 | 
					@ -126,19 +126,21 @@ msgstr ""
 | 
				
			||||||
"                                        atau RLIMIT_RTPRIO yang dinaikkan)\n"
 | 
					"                                        atau RLIMIT_RTPRIO yang dinaikkan)\n"
 | 
				
			||||||
"      --disallow-module-loading[=BOOL]  Larang muat/bongkar modul yang "
 | 
					"      --disallow-module-loading[=BOOL]  Larang muat/bongkar modul yang "
 | 
				
			||||||
"diminta\n"
 | 
					"diminta\n"
 | 
				
			||||||
"                                        pengguna setelah awal mula\n"
 | 
					"                                        pengguna setelah awalan\n"
 | 
				
			||||||
"      --disallow-exit[=BOOL]            Larang permintaan keluar dari "
 | 
					"      --disallow-exit[=BOOL]            Larang permintaan keluar dari "
 | 
				
			||||||
"pengguna\n"
 | 
					"pengguna\n"
 | 
				
			||||||
"      --exit-idle-time=SECS             Matikan daemon ketika menganggur "
 | 
					"      --exit-idle-time=SECS             Matikan daemon ketika menganggur "
 | 
				
			||||||
"dan\n"
 | 
					"dan\n"
 | 
				
			||||||
"                                        waktu ini berlalu\n"
 | 
					"                                        waktu ini habis\n"
 | 
				
			||||||
 | 
					"      --module-idle-time=SECS           Bongkar modul yang dimuat sendiri "
 | 
				
			||||||
 | 
					"ketika\n"
 | 
				
			||||||
 | 
					"                                        menganggur dan waktu ini habis\n"
 | 
				
			||||||
"      --scache-idle-time=SECS           Bongkar contoh yang dimuat sendiri "
 | 
					"      --scache-idle-time=SECS           Bongkar contoh yang dimuat sendiri "
 | 
				
			||||||
"ketika\n"
 | 
					"ketika\n"
 | 
				
			||||||
"                                        menganggur dan waktu ini berlalu\n"
 | 
					"                                        menganggur dan waktu ini habis\n"
 | 
				
			||||||
"      --log-level[=LEVEL]               Naikkan atau tata aras kerincian\n"
 | 
					"      --log-level[=LEVEL]               Naikkan atau tata aras kerincian\n"
 | 
				
			||||||
"  -v  --verbose                         Naikkan aras kerincian\n"
 | 
					"  -v                                    Naikkan aras kerincian\n"
 | 
				
			||||||
"      --log-target={auto,syslog,stderr,file:PATH,newfile:PATH} \n"
 | 
					"      --log-target={auto,syslog,stderr} Nyatakan target log\n"
 | 
				
			||||||
"                                        Nyatakan target log\n"
 | 
					 | 
				
			||||||
"      --log-meta[=BOOL]                 Sertakan lokasi kode dalam pesan "
 | 
					"      --log-meta[=BOOL]                 Sertakan lokasi kode dalam pesan "
 | 
				
			||||||
"log\n"
 | 
					"log\n"
 | 
				
			||||||
"      --log-time[=BOOL]                 Sertakan penanda waktu dalam pesan "
 | 
					"      --log-time[=BOOL]                 Sertakan penanda waktu dalam pesan "
 | 
				
			||||||
| 
						 | 
					@ -157,10 +159,8 @@ msgstr ""
 | 
				
			||||||
"      --no-cpu-limit[=BOOL]             Jangan pasang pembatas beban CPU\n"
 | 
					"      --no-cpu-limit[=BOOL]             Jangan pasang pembatas beban CPU\n"
 | 
				
			||||||
"                                        pada platform yang mendukungannya.\n"
 | 
					"                                        pada platform yang mendukungannya.\n"
 | 
				
			||||||
"      --disable-shm[=BOOL]              Matikan dukungan memori bersama.\n"
 | 
					"      --disable-shm[=BOOL]              Matikan dukungan memori bersama.\n"
 | 
				
			||||||
"      --enable-memfd[=BOOL]             Fungsikan dukungan memori bersama "
 | 
					 | 
				
			||||||
"memfd.\n"
 | 
					 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"SKRIP AWAL MULA:\n"
 | 
					"SKRIP AWALAN:\n"
 | 
				
			||||||
"  -L, --load=\"ARGUMEN MODUL\"            Muat modul plugin yang dinyatakan\n"
 | 
					"  -L, --load=\"ARGUMEN MODUL\"            Muat modul plugin yang dinyatakan\n"
 | 
				
			||||||
"                                        dengan argumen yang disertakan\n"
 | 
					"                                        dengan argumen yang disertakan\n"
 | 
				
			||||||
"  -F, --file=NAMABERKAS                 Jalankan skrip yang dinyatakan\n"
 | 
					"  -F, --file=NAMABERKAS                 Jalankan skrip yang dinyatakan\n"
 | 
				
			||||||
| 
						 | 
					@ -179,12 +179,13 @@ msgid "--fail expects boolean argument"
 | 
				
			||||||
msgstr "--fail mengharapkan argumen bool"
 | 
					msgstr "--fail mengharapkan argumen bool"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:265
 | 
					#: src/daemon/cmdline.c:265
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					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 mengharapkan argumen aras log (bisa berupa angka 0..4 atau salah "
 | 
					"--log-level mengharapkan argumen aras log (bisa berupa angka 0..4 atau salah "
 | 
				
			||||||
"satu dari error, warn, notice, info, debug)."
 | 
					"satu dari debug, info, notice, warn, error)."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:277
 | 
					#: src/daemon/cmdline.c:277
 | 
				
			||||||
msgid "--high-priority expects boolean argument"
 | 
					msgid "--high-priority expects boolean argument"
 | 
				
			||||||
| 
						 | 
					@ -590,10 +591,12 @@ msgid "Docking Station Microphone"
 | 
				
			||||||
msgstr "Mikrofon Docking Station"
 | 
					msgstr "Mikrofon Docking Station"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2711
 | 
					#: src/modules/alsa/alsa-mixer.c:2711
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Docking Station Line In"
 | 
					msgid "Docking Station Line In"
 | 
				
			||||||
msgstr "Jalur Masuk Docking Station"
 | 
					msgstr "Jalur Masuk Docking Station"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2712 src/modules/alsa/alsa-mixer.c:2803
 | 
					#: src/modules/alsa/alsa-mixer.c:2712 src/modules/alsa/alsa-mixer.c:2803
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Line In"
 | 
					msgid "Line In"
 | 
				
			||||||
msgstr "Jalur Masuk"
 | 
					msgstr "Jalur Masuk"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -695,6 +698,7 @@ msgid "Headphones Mono Output"
 | 
				
			||||||
msgstr "Keluaran Mono Headphone"
 | 
					msgstr "Keluaran Mono Headphone"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2810
 | 
					#: src/modules/alsa/alsa-mixer.c:2810
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Line Out"
 | 
					msgid "Line Out"
 | 
				
			||||||
msgstr "Jalur Keluar"
 | 
					msgstr "Jalur Keluar"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -727,8 +731,9 @@ msgid "Multichannel Output"
 | 
				
			||||||
msgstr "Keluaran Multikanal"
 | 
					msgstr "Keluaran Multikanal"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2818
 | 
					#: src/modules/alsa/alsa-mixer.c:2818
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Game Output"
 | 
					msgid "Game Output"
 | 
				
			||||||
msgstr "Keluaran Game"
 | 
					msgstr "Keluaran %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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"
 | 
				
			||||||
| 
						 | 
					@ -936,7 +941,7 @@ msgstr ""
 | 
				
			||||||
"mengembalikan 0 atau nilai lain < min_avail."
 | 
					"mengembalikan 0 atau nilai lain < min_avail."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-util.c:1183 src/modules/alsa/alsa-util.c:1277
 | 
					#: src/modules/alsa/alsa-util.c:1183 src/modules/alsa/alsa-util.c:1277
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"snd_pcm_avail() returned a value that is exceptionally large: %lu byte (%lu "
 | 
					"snd_pcm_avail() returned a value that is exceptionally large: %lu byte (%lu "
 | 
				
			||||||
"ms).\n"
 | 
					"ms).\n"
 | 
				
			||||||
| 
						 | 
					@ -948,13 +953,13 @@ msgid_plural ""
 | 
				
			||||||
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
 | 
					"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
 | 
				
			||||||
"to the ALSA developers."
 | 
					"to the ALSA developers."
 | 
				
			||||||
msgstr[0] ""
 | 
					msgstr[0] ""
 | 
				
			||||||
"snd_pcm_avail() mengembalikan nilai yang luar biasa besar: %lu byte (%lu ms)."
 | 
					"snd_pcm_avail() mengembalikan nilai yang luar biasa besar: %lu byte (%lu "
 | 
				
			||||||
"\n"
 | 
					"ms).\n"
 | 
				
			||||||
"Sangat mungkin ini adalah kutu pada driver ALSA '%s'. Silakan laporkan hal "
 | 
					"Sangat mungkin ini adalah kutu pada driver ALSA '%s'. Silakan laporkan hal "
 | 
				
			||||||
"ini ke para pengembang ALSA."
 | 
					"ini ke para pengembang ALSA."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-util.c:1249
 | 
					#: src/modules/alsa/alsa-util.c:1249
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"snd_pcm_delay() returned a value that is exceptionally large: %li byte (%s"
 | 
					"snd_pcm_delay() returned a value that is exceptionally large: %li byte (%s"
 | 
				
			||||||
"%lu ms).\n"
 | 
					"%lu ms).\n"
 | 
				
			||||||
| 
						 | 
					@ -985,7 +990,7 @@ msgstr ""
 | 
				
			||||||
"kasus ini ke para pengembang ALSA."
 | 
					"kasus ini ke para pengembang ALSA."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-util.c:1339
 | 
					#: src/modules/alsa/alsa-util.c:1339
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu byte "
 | 
					"snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu byte "
 | 
				
			||||||
"(%lu ms).\n"
 | 
					"(%lu ms).\n"
 | 
				
			||||||
| 
						 | 
					@ -997,8 +1002,8 @@ msgid_plural ""
 | 
				
			||||||
"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
 | 
					"Most likely this is a bug in the ALSA driver '%s'. Please report this issue "
 | 
				
			||||||
"to the ALSA developers."
 | 
					"to the ALSA developers."
 | 
				
			||||||
msgstr[0] ""
 | 
					msgstr[0] ""
 | 
				
			||||||
"snd_pcm_mmap_begin() mengembalikan nilai yang luar biasa besar: %lu byte ("
 | 
					"snd_pcm_mmap_begin() mengembalikan nilai yang luar biasa besar: %lu byte "
 | 
				
			||||||
"%lu ms).\n"
 | 
					"(%lu ms).\n"
 | 
				
			||||||
"Sangat mungkin ini adalah kutu pada driver ALSA '%s'. Silakan laporkan hal "
 | 
					"Sangat mungkin ini adalah kutu pada driver ALSA '%s'. Silakan laporkan hal "
 | 
				
			||||||
"ini ke para pengembang ALSA."
 | 
					"ini ke para pengembang ALSA."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1038,30 +1043,37 @@ msgid "Phone"
 | 
				
			||||||
msgstr "Telepon"
 | 
					msgstr "Telepon"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2042
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2042
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "High Fidelity Playback (A2DP Sink)"
 | 
					msgid "High Fidelity Playback (A2DP Sink)"
 | 
				
			||||||
msgstr "Putar High Fidelity (Muara A2DP)"
 | 
					msgstr "High Fidelity Playback (Muara A2DP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2054
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2054
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "High Fidelity Capture (A2DP Source)"
 | 
					msgid "High Fidelity Capture (A2DP Source)"
 | 
				
			||||||
msgstr "Penangkapan High Fidelity (Sumber A2DP)"
 | 
					msgstr "High Fidelity Capture (Sumber A2DP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2066
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2066
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Headset Head Unit (HSP)"
 | 
					msgid "Headset Head Unit (HSP)"
 | 
				
			||||||
msgstr "Headset Head Unit (HSP/HFP)"
 | 
					msgstr "Headset Head Unit (HSP/HFP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2079
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2079
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Headset Audio Gateway (HSP)"
 | 
					msgid "Headset Audio Gateway (HSP)"
 | 
				
			||||||
msgstr "Gateway Audio Headset (HSP/HFP)"
 | 
					msgstr "Headset Audio Gateway (HSP/HFP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2092
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2092
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Handsfree Head Unit (HFP)"
 | 
					msgid "Handsfree Head Unit (HFP)"
 | 
				
			||||||
msgstr "Unit Kepala Handsfree (HFP)"
 | 
					msgstr "Headset Head Unit (HSP/HFP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2105
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2105
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Handsfree Audio Gateway (HFP)"
 | 
					msgid "Handsfree Audio Gateway (HFP)"
 | 
				
			||||||
msgstr "Gateway Audio Handsfree (HSP/HFP)"
 | 
					msgstr "Headset Audio Gateway (HSP/HFP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/echo-cancel/module-echo-cancel.c:59
 | 
					#: src/modules/echo-cancel/module-echo-cancel.c:59
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"source_name=<name for the source> source_properties=<properties for the "
 | 
					"source_name=<name for the source> source_properties=<properties for the "
 | 
				
			||||||
"source> source_master=<name of source to filter> sink_name=<name for the "
 | 
					"source> source_master=<name of source to filter> sink_name=<name for the "
 | 
				
			||||||
| 
						 | 
					@ -1074,16 +1086,16 @@ msgid ""
 | 
				
			||||||
"loaded automatically> use_volume_sharing=<yes or no> use_master_format=<yes "
 | 
					"loaded automatically> use_volume_sharing=<yes or no> use_master_format=<yes "
 | 
				
			||||||
"or no> "
 | 
					"or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"source_name=<nama sumber> source_properties=<properti sumber> "
 | 
					"source_name=<name for the source> source_properties=<properties for the "
 | 
				
			||||||
"source_master=<nama sumber untuk disaring> sink_name=<nama muara> "
 | 
					"source> source_master=<name of source to filter> sink_name=<name for the "
 | 
				
			||||||
"sink_properties=<properti muara> sink_master=<nama muara untuk disaraing> "
 | 
					"sink> sink_properties=<properties for the sink> sink_master=<name of sink to "
 | 
				
			||||||
"adjust_time=<seberapa sering menyetel ulang laju dalam detik> "
 | 
					"filter> adjust_time=<how often to readjust rates in s> adjust_threshold=<how "
 | 
				
			||||||
"adjust_threshold=<seberapa banyak drift disetel ulang setelahnya dalam mili "
 | 
					"much drift to readjust after in ms> format=<sample format> rate=<sample "
 | 
				
			||||||
"detik> format=<format cuplikan> rate=<laju cuplikan> channels=<cacah kanal> "
 | 
					"rate> channels=<number of channels> channel_map=<channel map> "
 | 
				
			||||||
"channel_map=<peta kanal> aec_method=<implementasi yang dipakai> "
 | 
					"aec_method=<implementation to use> aec_args=<parameters for the AEC engine> "
 | 
				
			||||||
"aec_args=<parameter bagi mesin AEC> save_aec=<simpan data AEC dalam /tmp> "
 | 
					"save_aec=<save AEC data in /tmp> autoloaded=<set if this module is being "
 | 
				
			||||||
"autoloaded=<tata apakah modul ini dimuat secara otomatis> "
 | 
					"loaded automatically> use_volume_sharing=<yes or no> use_master_format=<yes "
 | 
				
			||||||
"use_volume_sharing=<yes atau no> use_master_format=<yes atau no> "
 | 
					"or no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. add on profile
 | 
					#. add on profile
 | 
				
			||||||
#: src/modules/macosx/module-coreaudio-device.c:825
 | 
					#: src/modules/macosx/module-coreaudio-device.c:825
 | 
				
			||||||
| 
						 | 
					@ -1104,6 +1116,7 @@ msgid "Always keeps at least one source loaded even if it's a null one"
 | 
				
			||||||
msgstr "Selalu jaga paling tidak satu muara bermuatan bahkan jika berupa null"
 | 
					msgstr "Selalu jaga paling tidak satu muara bermuatan bahkan jika berupa null"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:68
 | 
					#: src/modules/module-equalizer-sink.c:68
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "General Purpose Equalizer"
 | 
					msgid "General Purpose Equalizer"
 | 
				
			||||||
msgstr "Equalizer Tujuan Umum"
 | 
					msgstr "Equalizer Tujuan Umum"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1119,8 +1132,8 @@ msgstr ""
 | 
				
			||||||
"channels=<cacah kanal> channel_map=<peta kanal> autoloaded=<tata bila modul "
 | 
					"channels=<cacah kanal> channel_map=<peta kanal> autoloaded=<tata bila modul "
 | 
				
			||||||
"ini dimuat secara otomatis> use_volume_sharing=<yes atau no> "
 | 
					"ini dimuat secara otomatis> use_volume_sharing=<yes atau no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "Ekualiser berbasis FFT pada %s"
 | 
					msgstr "Ekualiser berbasis FFT pada %s"
 | 
				
			||||||
| 
						 | 
					@ -1134,6 +1147,7 @@ msgid "Virtual LADSPA sink"
 | 
				
			||||||
msgstr "Muara virtual LADSPA"
 | 
					msgstr "Muara virtual LADSPA"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-ladspa-sink.c:54
 | 
					#: src/modules/module-ladspa-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> "
 | 
				
			||||||
"sink_input_properties=<properties for the sink input> master=<name of sink "
 | 
					"sink_input_properties=<properties for the sink input> master=<name of sink "
 | 
				
			||||||
| 
						 | 
					@ -1145,15 +1159,15 @@ msgid ""
 | 
				
			||||||
"separated list of output LADSPA port names> autoloaded=<set if this module "
 | 
					"separated list of output LADSPA port names> autoloaded=<set if this module "
 | 
				
			||||||
"is being loaded automatically> "
 | 
					"is being loaded automatically> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"sink_name=<nama muara> sink_properties=<properti muara> "
 | 
					"sink_name=<nama bagi muara> sink_properties=<properti bagi muara> "
 | 
				
			||||||
"sink_input_properties=<properti masukan muara> master=<nama muara untuk "
 | 
					"sink_input_properties=<properti bagi masukan muara> master=<nama muara untuk "
 | 
				
			||||||
"disaring> sink_master=<nama muara yang akan disaring> format=<format "
 | 
					"disaring> sink_master=<nama muara yang akan disaring> format=<format "
 | 
				
			||||||
"cuplikan> rate=<laju cuplikan> channels=<cacah kanal> channel_map=<peta "
 | 
					"cuplikan> rate=<laju cuplikan> channels=<cacah kanal> channel_map=<peta "
 | 
				
			||||||
"kanal> plugin=<nama plugin ladspa> label=<label plugin ladspa> "
 | 
					"kanal> plugin=<nama plugin ladspa> label=<label plugin ladspa> "
 | 
				
			||||||
"control=<daftar nilai kendali masukan yang dipisah koma> "
 | 
					"control=<daftar nilai kendali masukan yang dipisahkan dengan koma> \n"
 | 
				
			||||||
"input_ladspaport_map=<daftar dipisah koma dari nama port masukan LADSPA> "
 | 
					"input_ladspaport_map=<comma separated list of input LADSPA port names> "
 | 
				
			||||||
"output_ladspaport_map=<daftar dipisah koma dari nama port keluaran LADSPA> "
 | 
					"output_ladspaport_map=<comma separated list of output LADSPA port names> "
 | 
				
			||||||
"autoloaded=<tata apakah modul dimuat secara otomatis> "
 | 
					"autoloaded=<set if this module is being loaded automatically> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-null-sink.c:46
 | 
					#: src/modules/module-null-sink.c:46
 | 
				
			||||||
msgid "Clocked NULL sink"
 | 
					msgid "Clocked NULL sink"
 | 
				
			||||||
| 
						 | 
					@ -1186,14 +1200,14 @@ msgstr "Audio pada @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunnel untuk %s@%s"
 | 
					msgstr "Tunnel untuk %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunnel ke %s/%s"
 | 
					msgstr "Tunnel ke %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1543,11 +1557,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Target log tidak valid."
 | 
					msgstr "Target log tidak valid."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Audio Bawaan"
 | 
					msgstr "Audio Bawaan"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1862,7 +1876,7 @@ msgid "pa_stream_update_timing_info() failed: %s"
 | 
				
			||||||
msgstr "pa_stream_update_timing_info() gagal: %s"
 | 
					msgstr "pa_stream_update_timing_info() gagal: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:676
 | 
					#: src/utils/pacat.c:676
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"%s\n"
 | 
					"%s\n"
 | 
				
			||||||
| 
						 | 
					@ -1941,9 +1955,7 @@ msgstr ""
 | 
				
			||||||
"  -v, --verbose                         Aktifkan operasi cerewet\n"
 | 
					"  -v, --verbose                         Aktifkan operasi cerewet\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -s, --server=SERVER                   Nama server untuk dihubungi\n"
 | 
					"  -s, --server=SERVER                   Nama server untuk dihubungi\n"
 | 
				
			||||||
"  -d, --device=DEVICE                   Nama muara/sumber untuk dihubungi. "
 | 
					"  -d, --device=DEVICE                   Nama muara/sumber untuk dihubungi\n"
 | 
				
			||||||
"Nama khusus @DEFAULT_SINK@, @DEFAULT_SOURCE@, dan @DEFAULT_MONITOR@ masing-"
 | 
					 | 
				
			||||||
"masing dapat dipakai untuk menyatakan muara, sumber, dan monitor.\n"
 | 
					 | 
				
			||||||
"  -n, --client-name=NAME                Bagaimana memanggil klien ini di "
 | 
					"  -n, --client-name=NAME                Bagaimana memanggil klien ini di "
 | 
				
			||||||
"server\n"
 | 
					"server\n"
 | 
				
			||||||
"      --stream-name=NAME                Bagaimana memanggil stream ini di "
 | 
					"      --stream-name=NAME                Bagaimana memanggil stream ini di "
 | 
				
			||||||
| 
						 | 
					@ -1952,34 +1964,35 @@ msgstr ""
 | 
				
			||||||
"jangkauan 0...65536\n"
 | 
					"jangkauan 0...65536\n"
 | 
				
			||||||
"      --rate=SAMPLERATE                 Laju cuplikan dalam Hz (nilai baku "
 | 
					"      --rate=SAMPLERATE                 Laju cuplikan dalam Hz (nilai baku "
 | 
				
			||||||
"44100)\n"
 | 
					"44100)\n"
 | 
				
			||||||
"      --format=SAMPLEFORMAT             Format cuplikan, lihat\n"
 | 
					"      --format=SAMPLEFORMAT             Jenis cuplikan, salah satu dari "
 | 
				
			||||||
"                                        https://www.freedesktop.org/wiki/"
 | 
					"s16le, s16be, u8, float32le,\n"
 | 
				
			||||||
"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
					"                                        float32be, ulaw, alaw, s32le, s32be, "
 | 
				
			||||||
"                                        untuk nilai-nilai yang mungkin ("
 | 
					"s24le, s24be,\n"
 | 
				
			||||||
"nilai baku s16ne)\n"
 | 
					"                                        s24-32le, s24-32be (nilai baku "
 | 
				
			||||||
 | 
					"s16ne)\n"
 | 
				
			||||||
"      --channels=CHANNELS               Cacah kanal, 1 untuk mono, 2 untuk "
 | 
					"      --channels=CHANNELS               Cacah kanal, 1 untuk mono, 2 untuk "
 | 
				
			||||||
"stereo\n"
 | 
					"stereo\n"
 | 
				
			||||||
"                                        (nilai baku 2)\n"
 | 
					"                                        (nilai baku 2)\n"
 | 
				
			||||||
"      --channel-map=CHANNELMAP          Peta kanal yang dipakai sebagai "
 | 
					"      --channel-map=CHANNELMAP          Peta kanal yang dipakai sebagai "
 | 
				
			||||||
"pengganti baku\n"
 | 
					"pengganti baku\n"
 | 
				
			||||||
"      --fix-format                      Ambil format cuplikan dari muara/"
 | 
					"      --fix-format                      Ambil format cuplikan dari muara "
 | 
				
			||||||
"sumber stream\n"
 | 
					"stream\n"
 | 
				
			||||||
"                                        yang sedang tersambung.\n"
 | 
					"                                        yang sedang tersambung.\n"
 | 
				
			||||||
"      --fix-rate                        Ambil laju cuplikan dari muara/"
 | 
					"      --fix-rate                        Ambil laju cuplikan dari muara "
 | 
				
			||||||
"sumber stream\n"
 | 
					"stream\n"
 | 
				
			||||||
"                                        yang sedang tersambung.\n"
 | 
					"                                        yang sedang tersambung.\n"
 | 
				
			||||||
"      --fix-channels                    Ambil cacah kanal dan peta kanal "
 | 
					"      --fix-channels                    Ambil cacah kanal dan peta kanal "
 | 
				
			||||||
"dari muara/sumber stream\n"
 | 
					"dari muara stream\n"
 | 
				
			||||||
"                                        yang sedang tersambung.\n"
 | 
					"                                        yang sedang tersambung.\n"
 | 
				
			||||||
"      --no-remix                        Jangan upmix atau downmix kanal.\n"
 | 
					"      --no-remix                        Jangan upmix atau downmix kanal.\n"
 | 
				
			||||||
"      --no-remap                        Petakan kanal berdasar indeks bukan "
 | 
					"      --no-remap                        Petakan kanal berdasar indeks bukan "
 | 
				
			||||||
"nama.\n"
 | 
					"nama.\n"
 | 
				
			||||||
"      --latency=BYTE                    Minta latensi yang dinyatakan dalam "
 | 
					"      --latency=BYTE                    Minta latensi yang dinyatakan, dalam "
 | 
				
			||||||
"byte.\n"
 | 
					"byte.\n"
 | 
				
			||||||
"      --process-time=BYTE               Minta waktu proses yang dinyatakan "
 | 
					"      --process-time=BYTE               Minta waktu proses yang dinyatakan "
 | 
				
			||||||
"bagi tiap permintaan\n"
 | 
					"bagi tiap permintaan\n"
 | 
				
			||||||
"                                        dalam byte.\n"
 | 
					"                                        dalam byte.\n"
 | 
				
			||||||
"      --latency-msec=MSEC               Minta latensi yang dinyatakan dalam "
 | 
					"      --latency-msec=MSEC               Minta latensi yang dinyatakan, dalam "
 | 
				
			||||||
"milidetik.\n"
 | 
					"milidetik.\n"
 | 
				
			||||||
"      --process-time-msec=MSEC          Minta waktu proses yang dinyatakan "
 | 
					"      --process-time-msec=MSEC          Minta waktu proses yang dinyatakan "
 | 
				
			||||||
"bagi tiap permintaan\n"
 | 
					"bagi tiap permintaan\n"
 | 
				
			||||||
| 
						 | 
					@ -2249,10 +2262,12 @@ msgid "TARGET"
 | 
				
			||||||
msgstr "TARGET"
 | 
					msgstr "TARGET"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:76
 | 
					#: src/utils/pacmd.c:76
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "NUMERIC-LEVEL"
 | 
					msgid "NUMERIC-LEVEL"
 | 
				
			||||||
msgstr "ARAS-NUMERIK"
 | 
					msgstr "NUMERIC-LEVEL"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:79
 | 
					#: src/utils/pacmd.c:79
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "FRAMES"
 | 
					msgid "FRAMES"
 | 
				
			||||||
msgstr "BINGKAI"
 | 
					msgstr "BINGKAI"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2419,8 +2434,9 @@ msgid "Aux"
 | 
				
			||||||
msgstr "Aux"
 | 
					msgstr "Aux"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:335
 | 
					#: src/utils/pactl.c:335
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Line"
 | 
					msgid "Line"
 | 
				
			||||||
msgstr "Jalur"
 | 
					msgstr "Jalur Masuk"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:336
 | 
					#: src/utils/pactl.c:336
 | 
				
			||||||
msgid "Mic"
 | 
					msgid "Mic"
 | 
				
			||||||
| 
						 | 
					@ -2510,7 +2526,7 @@ msgstr ""
 | 
				
			||||||
#: src/utils/pactl.c:706 src/utils/pactl.c:890 src/utils/pactl.c:1251
 | 
					#: src/utils/pactl.c:706 src/utils/pactl.c:890 src/utils/pactl.c:1251
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "\tPorts:\n"
 | 
					msgid "\tPorts:\n"
 | 
				
			||||||
msgstr "\tPort:\n"
 | 
					msgstr "»Port:\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
					#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2524,7 +2540,7 @@ msgstr ", grup ketersediaan: "
 | 
				
			||||||
#: src/utils/pactl.c:715 src/utils/pactl.c:899
 | 
					#: src/utils/pactl.c:715 src/utils/pactl.c:899
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "\tActive Port: %s\n"
 | 
					msgid "\tActive Port: %s\n"
 | 
				
			||||||
msgstr "\tPort Aktif: %s\n"
 | 
					msgstr "»Port Aktif: %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:721 src/utils/pactl.c:905
 | 
					#: src/utils/pactl.c:721 src/utils/pactl.c:905
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2993,7 +3009,7 @@ msgstr ""
 | 
				
			||||||
"dapat dipakai untuk menyatakan muara, sumber, dan pemantau baku.\n"
 | 
					"dapat dipakai untuk menyatakan muara, sumber, dan pemantau baku.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2664
 | 
					#: src/utils/pactl.c:2664
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -h, --help                            Show this help\n"
 | 
					"  -h, --help                            Show this help\n"
 | 
				
			||||||
| 
						 | 
					@ -3010,8 +3026,6 @@ msgstr ""
 | 
				
			||||||
"  -h, --help                            Tampilkan bantuan ini\n"
 | 
					"  -h, --help                            Tampilkan bantuan ini\n"
 | 
				
			||||||
"      --version                         Tampilkan versi\n"
 | 
					"      --version                         Tampilkan versi\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -f, --format=FORMAT                   Format keluaran. \"normal\" atau "
 | 
					 | 
				
			||||||
"\"json\"\n"
 | 
					 | 
				
			||||||
"  -s, --server=SERVER                   Nama server tujuan koneksi\n"
 | 
					"  -s, --server=SERVER                   Nama server tujuan koneksi\n"
 | 
				
			||||||
"  -n, --client-name=NAMA                Bagaimana memanggil klien ini pada "
 | 
					"  -n, --client-name=NAMA                Bagaimana memanggil klien ini pada "
 | 
				
			||||||
"server\n"
 | 
					"server\n"
 | 
				
			||||||
| 
						 | 
					@ -3028,9 +3042,9 @@ msgstr ""
 | 
				
			||||||
"Ditaut dengan libpulse %s\n"
 | 
					"Ditaut dengan libpulse %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2751
 | 
					#: src/utils/pactl.c:2751
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "Invalid format value '%s'"
 | 
					msgid "Invalid format value '%s'"
 | 
				
			||||||
msgstr "Nilai format '%s' tidak valid"
 | 
					msgstr "Nama stream '%s' tak valid"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2778
 | 
					#: src/utils/pactl.c:2778
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3262,7 +3276,7 @@ msgid "WARNING: Child process terminated by signal %u\n"
 | 
				
			||||||
msgstr "PERINGATAN: Proses anak diakhiri oleh sinyal %u\n"
 | 
					msgstr "PERINGATAN: Proses anak diakhiri oleh sinyal %u\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pasuspender.c:228
 | 
					#: src/utils/pasuspender.c:228
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options] -- PROGRAM [ARGUMENTS ...]\n"
 | 
					"%s [options] -- PROGRAM [ARGUMENTS ...]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -3274,9 +3288,7 @@ msgid ""
 | 
				
			||||||
"to\n"
 | 
					"to\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"%s [opsi] -- PROGRAM [ARGUMEN ...]\n"
 | 
					"%s [opsi] ... \n"
 | 
				
			||||||
"\n"
 | 
					 | 
				
			||||||
"Sementara mensuspensi PulseAudio ketika PROGRAM berjalan.\n"
 | 
					 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -h, --help                            Tampilkan bantuan ini\n"
 | 
					"  -h, --help                            Tampilkan bantuan ini\n"
 | 
				
			||||||
"      --version                         Tampilkan versi\n"
 | 
					"      --version                         Tampilkan versi\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										55
									
								
								po/it.po
									
										
									
									
									
								
							
							
						
						
									
										55
									
								
								po/it.po
									
										
									
									
									
								
							| 
						 | 
					@ -11,9 +11,9 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2025-06-08 14:42+0000\n"
 | 
					"PO-Revision-Date: 2021-04-19 20:02+0000\n"
 | 
				
			||||||
"Last-Translator: Salvatore Cocuzza <info@salvatorecocuzza.it>\n"
 | 
					"Last-Translator: Milo Casagrande <milo@milo.name>\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"
 | 
				
			||||||
"Language: it\n"
 | 
					"Language: 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.4\n"
 | 
					"X-Generator: Weblate 4.6\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# mamma mia che impressione
 | 
					# mamma mia che impressione
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
| 
						 | 
					@ -198,12 +198,14 @@ msgid "--fail expects boolean argument"
 | 
				
			||||||
msgstr "--fail richiede un argomento booleano"
 | 
					msgstr "--fail richiede un argomento booleano"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:265
 | 
					#: src/daemon/cmdline.c:265
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					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 si aspetta un argomento a livello di log (un valore numerico "
 | 
					"--log-level richiede il livello di registro come argomento (sia "
 | 
				
			||||||
"compreso tra 0 e 4 oppure uno tra error, warn, notice, info, debug)."
 | 
					"nell'intervallo numerico 0..4 oppure uno tra debug, info, notice, warn, "
 | 
				
			||||||
 | 
					"error)."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:277
 | 
					#: src/daemon/cmdline.c:277
 | 
				
			||||||
msgid "--high-priority expects boolean argument"
 | 
					msgid "--high-priority expects boolean argument"
 | 
				
			||||||
| 
						 | 
					@ -1161,8 +1163,8 @@ msgstr ""
 | 
				
			||||||
"channel_map=<mappa canali> autoloaded=<imposta se il modulo viene caricato "
 | 
					"channel_map=<mappa canali> autoloaded=<imposta se il modulo viene caricato "
 | 
				
			||||||
"automaticamente> use_volume_sharing=<yes o no> "
 | 
					"automaticamente> use_volume_sharing=<yes o no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "Equalizzatore basato su FFT su %s"
 | 
					msgstr "Equalizzatore basato su FFT su %s"
 | 
				
			||||||
| 
						 | 
					@ -1228,14 +1230,14 @@ msgstr "Audio su @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunnel per %s@%s"
 | 
					msgstr "Tunnel per %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunnel verso %s/%s"
 | 
					msgstr "Tunnel verso %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1245,6 +1247,7 @@ 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> "
 | 
				
			||||||
| 
						 | 
					@ -1587,11 +1590,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Destinazione di registrazione non valida."
 | 
					msgstr "Destinazione di registrazione non valida."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Audio interno"
 | 
					msgstr "Audio interno"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2417,7 +2420,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 "%s\n"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:281
 | 
					#: src/utils/pactl.c:281
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2488,6 +2491,7 @@ 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"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2582,6 +2586,7 @@ 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à: "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2893,7 +2898,7 @@ msgstr "Invia messaggio non riuscito: %s"
 | 
				
			||||||
#: src/utils/pactl.c:1695
 | 
					#: src/utils/pactl.c:1695
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "list-handlers message failed: %s"
 | 
					msgid "list-handlers message failed: %s"
 | 
				
			||||||
msgstr "messaggio list-handlers non riuscito: %s"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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"
 | 
				
			||||||
| 
						 | 
					@ -2907,8 +2912,6 @@ msgstr ""
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "list-handlers message response array element %d is not a JSON object"
 | 
					msgid "list-handlers message response array element %d is not a JSON object"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"l'elemento %d dell'array di risposta al messaggio dei gestori di elenchi non "
 | 
					 | 
				
			||||||
"è un oggetto JSON"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1800
 | 
					#: src/utils/pactl.c:1800
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3107,9 +3110,9 @@ msgstr ""
 | 
				
			||||||
"Link eseguito con libpulse %s\n"
 | 
					"Link eseguito con libpulse %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2751
 | 
					#: src/utils/pactl.c:2751
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "Invalid format value '%s'"
 | 
					msgid "Invalid format value '%s'"
 | 
				
			||||||
msgstr "Formato valore non valido '%s'"
 | 
					msgstr "Nome dello stream «%s» non valido"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2778
 | 
					#: src/utils/pactl.c:2778
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3195,16 +3198,18 @@ msgid "You have to specify a source name"
 | 
				
			||||||
msgstr "È necessario specificare il nome di una sorgente"
 | 
					msgstr "È necessario specificare il nome di una sorgente"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2998 src/utils/pactl.c:3076
 | 
					#: src/utils/pactl.c:2998 src/utils/pactl.c:3076
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify a sink name/index"
 | 
					msgid "You have to specify a sink name/index"
 | 
				
			||||||
msgstr "Devi specificare un nome/indice del sink"
 | 
					msgstr "È necessario specificare un nome di sink"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3008
 | 
					#: src/utils/pactl.c:3008
 | 
				
			||||||
msgid "You have to specify a sink name/index and a volume"
 | 
					msgid "You have to specify a sink name/index and a volume"
 | 
				
			||||||
msgstr "È necessario specificare un nome/indice di sink e un nome di porta"
 | 
					msgstr "È necessario specificare un nome/indice di sink e un nome di porta"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
					#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify a source name/index"
 | 
					msgid "You have to specify a source name/index"
 | 
				
			||||||
msgstr "Devi specificare un nome/indice sorgente"
 | 
					msgstr "È necessario specificare il nome di una sorgente"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3031
 | 
					#: src/utils/pactl.c:3031
 | 
				
			||||||
msgid "You have to specify a source name/index and a volume"
 | 
					msgid "You have to specify a source name/index and a volume"
 | 
				
			||||||
| 
						 | 
					@ -3270,17 +3275,15 @@ msgid "Invalid source output index specification"
 | 
				
			||||||
msgstr "Specifica di indice di uscita per la sorgente non valida"
 | 
					msgstr "Specifica di indice di uscita per la sorgente non valida"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3162
 | 
					#: src/utils/pactl.c:3162
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify at least an object path and a message name"
 | 
					msgid "You have to specify at least an object path and a message name"
 | 
				
			||||||
msgstr ""
 | 
					msgstr "È necessario specificare un nome/indice di sink e un nome di porta"
 | 
				
			||||||
"Devi specificare almeno un percorso dell'oggetto e un nome del messaggio"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3172
 | 
					#: src/utils/pactl.c:3172
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Excess arguments given, they will be ignored. Note that all message "
 | 
					"Excess arguments given, they will be ignored. Note that all message "
 | 
				
			||||||
"parameters must be given as a single string."
 | 
					"parameters must be given as a single string."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Gli argomenti in eccesso verranno ignorati. Si noti che tutti i parametri "
 | 
					 | 
				
			||||||
"del messaggio devono essere specificati come un'unica stringa."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3182
 | 
					#: src/utils/pactl.c:3182
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/ja.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/ja.po
									
										
									
									
									
								
							| 
						 | 
					@ -13,7 +13,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
					"Project-Id-Version: PACKAGE VERSION\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-02-20 03:16+0000\n"
 | 
					"PO-Revision-Date: 2022-02-20 03:16+0000\n"
 | 
				
			||||||
"Last-Translator: Takuro Onoue <kusanaginoturugi@gmail.com>\n"
 | 
					"Last-Translator: Takuro Onoue <kusanaginoturugi@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Japanese <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Japanese <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -1140,8 +1140,8 @@ msgstr ""
 | 
				
			||||||
"ル数> channel_map=<チャンネルマップ> autoloaded=<このモジュールが自動でロード"
 | 
					"ル数> channel_map=<チャンネルマップ> autoloaded=<このモジュールが自動でロード"
 | 
				
			||||||
"されている場合にセット> use_volume_sharing=<yes 又は no> "
 | 
					"されている場合にセット> use_volume_sharing=<yes 又は no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1205,14 +1205,14 @@ msgstr "@HOSTNAME@ 上のオーディオ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "%s@%s のトンネル"
 | 
					msgstr "%s@%s のトンネル"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "%s/%s へのトンネル"
 | 
					msgstr "%s/%s へのトンネル"
 | 
				
			||||||
| 
						 | 
					@ -1560,11 +1560,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "無効なログターゲット。"
 | 
					msgstr "無効なログターゲット。"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "内部オーディオ"
 | 
					msgstr "内部オーディオ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "モデム"
 | 
					msgstr "モデム"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/kk.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/kk.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: \n"
 | 
					"Project-Id-Version: \n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2020-06-30 08:04+0500\n"
 | 
					"PO-Revision-Date: 2020-06-30 08:04+0500\n"
 | 
				
			||||||
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
 | 
					"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
 | 
				
			||||||
"Language-Team: \n"
 | 
					"Language-Team: \n"
 | 
				
			||||||
| 
						 | 
					@ -989,8 +989,8 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1047,14 +1047,14 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1391,11 +1391,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Журнал мақсаты дұрыс емес."
 | 
					msgstr "Журнал мақсаты дұрыс емес."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Құрамындағы аудио"
 | 
					msgstr "Құрамындағы аудио"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Модем"
 | 
					msgstr "Модем"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/kn.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/kn.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx.kn\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx.kn\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:54+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:54+0000\n"
 | 
				
			||||||
"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
 | 
					"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
 | 
				
			||||||
"Language-Team: Kannada <kde-l10n-kn@kde.org>\n"
 | 
					"Language-Team: Kannada <kde-l10n-kn@kde.org>\n"
 | 
				
			||||||
| 
						 | 
					@ -1153,8 +1153,8 @@ msgstr ""
 | 
				
			||||||
"label=<ladspa ಪ್ಲಗ್ಇನ್ ಹೆಸರು> control=<ವಿರಾಮ ಚಿಹ್ನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇನ್ಪುಟ್ ನಿಯಂತ್ರಣ "
 | 
					"label=<ladspa ಪ್ಲಗ್ಇನ್ ಹೆಸರು> control=<ವಿರಾಮ ಚಿಹ್ನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇನ್ಪುಟ್ ನಿಯಂತ್ರಣ "
 | 
				
			||||||
"ಮೌಲ್ಯಗಳ ಪಟ್ಟಿ>"
 | 
					"ಮೌಲ್ಯಗಳ ಪಟ್ಟಿ>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1217,14 +1217,14 @@ msgstr "@HOSTNAME@ ನಲ್ಲಿನ ಆಡಿಯೊ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1575,11 +1575,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] ಅಮಾನ್ಯವಾದ ದಾಖಲೆ ಗುರಿ '%s'."
 | 
					msgstr "[%s:%u] ಅಮಾನ್ಯವಾದ ದಾಖಲೆ ಗುರಿ '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "ಆಂತರಿಕ ಆಡಿಯೊ"
 | 
					msgstr "ಆಂತರಿಕ ಆಡಿಯೊ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "ಮಾಡೆಮ್"
 | 
					msgstr "ಮಾಡೆಮ್"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										221
									
								
								po/ko.po
									
										
									
									
									
								
							
							
						
						
									
										221
									
								
								po/ko.po
									
										
									
									
									
								
							| 
						 | 
					@ -6,8 +6,8 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2025-06-14 13:17+0000\n"
 | 
					"PO-Revision-Date: 2022-05-20 18:18+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.11.4\n"
 | 
					"X-Generator: Weblate 4.12.2\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -94,23 +94,23 @@ msgstr ""
 | 
				
			||||||
"명령:\n"
 | 
					"명령:\n"
 | 
				
			||||||
"  -h, --help                            도움말을 표시\n"
 | 
					"  -h, --help                            도움말을 표시\n"
 | 
				
			||||||
"      --version                         버전을 표시\n"
 | 
					"      --version                         버전을 표시\n"
 | 
				
			||||||
"      --dump-conf                       기본 구성 덤프\n"
 | 
					"      --dump-conf                       기본 구성을 덤프\n"
 | 
				
			||||||
"      --dump-modules                    사용 가능한 모듈의 덤프 목록\n"
 | 
					"      --dump-modules                    사용 가능한 모듈의 목록을 덤프\n"
 | 
				
			||||||
"      --dump-resample-methods            재표본 방법 덤프\n"
 | 
					"      --dump-resample-methods           사용 가능한 재표본 방식으로 덤프\n"
 | 
				
			||||||
"      --cleanup-shm                      오래된 공유 메모리 세그멘트 정리\n"
 | 
					"      --cleanup-shm                      오래된 공유 메모리 세그멘트 정리\n"
 | 
				
			||||||
"      --start                           만약 실행되지 않았으면 데몬을 시작\n"
 | 
					"      --start                           만약 실행되지 않았으면 데몬을 시작\n"
 | 
				
			||||||
"  -k  --kill                            실행 중인 데몬을 제거\n"
 | 
					"  -k  --kill                            실행 중인 데몬을 제거\n"
 | 
				
			||||||
"      --check                           동작 중인 데몬 점검 (종료 코드만 "
 | 
					"      --check                           동작 중인 데몬을 위한 점검 (종료 "
 | 
				
			||||||
"반환)\n"
 | 
					"코드만 반환)\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"옵션:\n"
 | 
					"OPTIONS:\n"
 | 
				
			||||||
"      --system[=BOOL]                   시스템-전반의 인스턴스로 실행\n"
 | 
					"      --system[=BOOL]                   시스템-전반의 인스턴스로 실행\n"
 | 
				
			||||||
"  -D, --daemonize[=BOOL]                시작 후에 데몬화\n"
 | 
					"  -D, --daemonize[=BOOL]                시작 후에 데몬화\n"
 | 
				
			||||||
"      --fail[=BOOL]                     시작이 실패 할 때에 종료\n"
 | 
					"      --fail[=BOOL]                     시작이 실패 할 때에 종료\n"
 | 
				
			||||||
"      --high-priority[=BOOL]            높은 수준으로 설정을 시도\n"
 | 
					"      --high-priority[=BOOL]            높은 수준으로 설정을 시도\n"
 | 
				
			||||||
"                                        (root로만 사용 가능, SUID 또는\n"
 | 
					"                                        (root로만 사용 가능, SUID 또는\n"
 | 
				
			||||||
"                                        높은 RLIMIT_NICE일 때에)\n"
 | 
					"                                        높은 RLIMIT_NICE일 때에)\n"
 | 
				
			||||||
"      --realtime[=BOOL]                 실시간 스케쥴링 활성 시도\n"
 | 
					"      --realtime[=BOOL]                 Try to enable realtime scheduling\n"
 | 
				
			||||||
"                                        (root로만 사용 가능, SUID 또는\n"
 | 
					"                                        (root로만 사용 가능, SUID 또는\n"
 | 
				
			||||||
"                                        높은 RLIMIT_RTPRIO일 때에)\n"
 | 
					"                                        높은 RLIMIT_RTPRIO일 때에)\n"
 | 
				
			||||||
"      --disallow-module-loading[=BOOL]  시작 후 사용자가 요청 모듈을\n"
 | 
					"      --disallow-module-loading[=BOOL]  시작 후 사용자가 요청 모듈을\n"
 | 
				
			||||||
| 
						 | 
					@ -121,7 +121,7 @@ msgstr ""
 | 
				
			||||||
"      --exit-idle-time=SECS             유휴 상태이고 시간이 경과하면\n"
 | 
					"      --exit-idle-time=SECS             유휴 상태이고 시간이 경과하면\n"
 | 
				
			||||||
"                                        데몬을 종료함\n"
 | 
					"                                        데몬을 종료함\n"
 | 
				
			||||||
"      --scache-idle-time=SECS           유휴 상태이고 시간이 경과하면\n"
 | 
					"      --scache-idle-time=SECS           유휴 상태이고 시간이 경과하면\n"
 | 
				
			||||||
"                                        자동 적재된 표본을 내려 놓음\n"
 | 
					"                                        자동 적재된 표뵨을 내려 놓음\n"
 | 
				
			||||||
"      --log-level[=LEVEL]               자세한 표시 수준을 높이거나 설정\n"
 | 
					"      --log-level[=LEVEL]               자세한 표시 수준을 높이거나 설정\n"
 | 
				
			||||||
"  -v  --verbose                         자세한 표시 수준을 높임\n"
 | 
					"  -v  --verbose                         자세한 표시 수준을 높임\n"
 | 
				
			||||||
"      --log-target={auto,syslog,stderr,file:PATH,newfile:PATH}\n"
 | 
					"      --log-target={auto,syslog,stderr,file:PATH,newfile:PATH}\n"
 | 
				
			||||||
| 
						 | 
					@ -132,11 +132,11 @@ msgstr ""
 | 
				
			||||||
"  -p, --dl-search-path=PATH             동적 공유 객체(플러그인)을 위한\n"
 | 
					"  -p, --dl-search-path=PATH             동적 공유 객체(플러그인)을 위한\n"
 | 
				
			||||||
"                                        검색 경로를 설정\n"
 | 
					"                                        검색 경로를 설정\n"
 | 
				
			||||||
"      --resample-method=METHOD          지정한 재표본 방식을 사용\n"
 | 
					"      --resample-method=METHOD          지정한 재표본 방식을 사용\n"
 | 
				
			||||||
"                                        (사용 가능한 값은 --dump-resample-"
 | 
					"                                        (사용 가능한 값을 위해 --dump-"
 | 
				
			||||||
"methods 옵션을\n"
 | 
					"resample-methods을\n"
 | 
				
			||||||
"                                        참조)\n"
 | 
					"                                        참조)\n"
 | 
				
			||||||
"      --use-pid-file[=BOOL]             PID 파일을 생성\n"
 | 
					"      --use-pid-file[=BOOL]             PID 파일을 생성\n"
 | 
				
			||||||
"      --no-cpu-limit[=BOOL]             이를 지원하는 CPU 부하 제한기를\n"
 | 
					"      --no-cpu-limit[=BOOL]             이를 지원하는 CPU 적재 제한기를\n"
 | 
				
			||||||
"                                        설치하지 않음.\n"
 | 
					"                                        설치하지 않음.\n"
 | 
				
			||||||
"      --disable-shm[=BOOL]              공유 메모리 지원을 비활성화.\n"
 | 
					"      --disable-shm[=BOOL]              공유 메모리 지원을 비활성화.\n"
 | 
				
			||||||
"      --enable-memfd[=BOOL]             memfd 공유 메모리 지원을 활성화.\n"
 | 
					"      --enable-memfd[=BOOL]             memfd 공유 메모리 지원을 활성화.\n"
 | 
				
			||||||
| 
						 | 
					@ -145,7 +145,7 @@ msgstr ""
 | 
				
			||||||
"  -L, --load=\"MODULE ARGUMENTS\"         지정된 인수와 함께 지정된 "
 | 
					"  -L, --load=\"MODULE ARGUMENTS\"         지정된 인수와 함께 지정된 "
 | 
				
			||||||
"플러그인\n"
 | 
					"플러그인\n"
 | 
				
			||||||
"                                        모듈을 적재\n"
 | 
					"                                        모듈을 적재\n"
 | 
				
			||||||
"  -F, --file=FILENAME                   지정 스크립트 실행\n"
 | 
					"  -F, --file=FILENAME                   지정된 스크립트를 실행\n"
 | 
				
			||||||
"  -C                                    시작 후에 동작 중인 TTY에서\n"
 | 
					"  -C                                    시작 후에 동작 중인 TTY에서\n"
 | 
				
			||||||
"                                        명령 줄을 엽니다\n"
 | 
					"                                        명령 줄을 엽니다\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -153,39 +153,39 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:246
 | 
					#: src/daemon/cmdline.c:246
 | 
				
			||||||
msgid "--daemonize expects boolean argument"
 | 
					msgid "--daemonize expects boolean argument"
 | 
				
			||||||
msgstr "--daemonize 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--daemonize 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:254
 | 
					#: src/daemon/cmdline.c:254
 | 
				
			||||||
msgid "--fail expects boolean argument"
 | 
					msgid "--fail expects boolean argument"
 | 
				
			||||||
msgstr "--fail 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--fail 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:265
 | 
					#: src/daemon/cmdline.c:265
 | 
				
			||||||
msgid ""
 | 
					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 에는 로그 수준 인자 값이 필요합니다 (0~4 숫자 범위 또는 오류, 경"
 | 
					"--log-level 에는 로그 수준 인수가 필요합니다 (0~4 숫자 범위 또는 오류, 경고, "
 | 
				
			||||||
"고, 알림, 정보, 디버그 중 하나)."
 | 
					"알림, 정보, 디버그 중 하나 )."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:277
 | 
					#: src/daemon/cmdline.c:277
 | 
				
			||||||
msgid "--high-priority expects boolean argument"
 | 
					msgid "--high-priority expects boolean argument"
 | 
				
			||||||
msgstr "--high-priority 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--high-priority 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:285
 | 
					#: src/daemon/cmdline.c:285
 | 
				
			||||||
msgid "--realtime expects boolean argument"
 | 
					msgid "--realtime expects boolean argument"
 | 
				
			||||||
msgstr "--realtime 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--realtime 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:293
 | 
					#: src/daemon/cmdline.c:293
 | 
				
			||||||
msgid "--disallow-module-loading expects boolean argument"
 | 
					msgid "--disallow-module-loading expects boolean argument"
 | 
				
			||||||
msgstr "--disallow-module-loading 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--disallow-module-loading 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:301
 | 
					#: src/daemon/cmdline.c:301
 | 
				
			||||||
msgid "--disallow-exit expects boolean argument"
 | 
					msgid "--disallow-exit expects boolean argument"
 | 
				
			||||||
msgstr "--disallow-exit 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--disallow-exit 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 부울 인자 값이 필요합니다"
 | 
					msgstr "--use-pid-file 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:328
 | 
					#: src/daemon/cmdline.c:328
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -205,32 +205,32 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:338
 | 
					#: src/daemon/cmdline.c:338
 | 
				
			||||||
msgid "--log-time expects boolean argument"
 | 
					msgid "--log-time expects boolean argument"
 | 
				
			||||||
msgstr "--log-time 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--log-time 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:346
 | 
					#: src/daemon/cmdline.c:346
 | 
				
			||||||
msgid "--log-meta expects boolean argument"
 | 
					msgid "--log-meta expects boolean argument"
 | 
				
			||||||
msgstr "--log-meta 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--log-meta 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:366
 | 
					#: src/daemon/cmdline.c:366
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Invalid resample method '%s'."
 | 
					msgid "Invalid resample method '%s'."
 | 
				
			||||||
msgstr "잘못된 리샘플링 방식 '%s'."
 | 
					msgstr "잘못된 리샘플링 방법 '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:373
 | 
					#: src/daemon/cmdline.c:373
 | 
				
			||||||
msgid "--system expects boolean argument"
 | 
					msgid "--system expects boolean argument"
 | 
				
			||||||
msgstr "--system 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--system 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:381
 | 
					#: src/daemon/cmdline.c:381
 | 
				
			||||||
msgid "--no-cpu-limit expects boolean argument"
 | 
					msgid "--no-cpu-limit expects boolean argument"
 | 
				
			||||||
msgstr "--no-cpu-limit 에는 부울 인자 값이 필요합니다"
 | 
					msgstr "--no-cpu-limit 에는 부울 인수가 필요합니다"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:389
 | 
					#: src/daemon/cmdline.c:389
 | 
				
			||||||
msgid "--disable-shm expects boolean argument"
 | 
					msgid "--disable-shm expects boolean argument"
 | 
				
			||||||
msgstr "--disable-shm 에는 부울 인자 값이 필요합니다"
 | 
					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
 | 
				
			||||||
| 
						 | 
					@ -275,12 +275,12 @@ msgstr "[%s:%u] 잘못된 채널 맵 '%s'."
 | 
				
			||||||
#: src/daemon/daemon-conf.c:433
 | 
					#: src/daemon/daemon-conf.c:433
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "[%s:%u] Invalid number of fragments '%s'."
 | 
					msgid "[%s:%u] Invalid number of fragments '%s'."
 | 
				
			||||||
msgstr "[%s:%u] 잘못된 조각 수 '%s'."
 | 
					msgstr "[%s:%u] 잘못된 fragment 수 '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/daemon-conf.c:450
 | 
					#: src/daemon/daemon-conf.c:450
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "[%s:%u] Invalid fragment size '%s'."
 | 
					msgid "[%s:%u] Invalid fragment size '%s'."
 | 
				
			||||||
msgstr "[%s:%u] 잘못된 조각 크기 '%s'."
 | 
					msgstr "[%s:%u] 잘못된 fragment 크기 '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/daemon-conf.c:467
 | 
					#: src/daemon/daemon-conf.c:467
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -302,7 +302,7 @@ msgid ""
 | 
				
			||||||
"The specified default channel map has a different number of channels than "
 | 
					"The specified default channel map has a different number of channels than "
 | 
				
			||||||
"the specified default number of channels."
 | 
					"the specified default number of channels."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"지정 기본 채널 맵은 지정 기본 채널 수와는 다른 채널 수를 가지고 있습니다."
 | 
					"지정된 기본 채널 맵은 지정된 기본 채널 수와는 다른 채널 수를 가지고 있습니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/daemon-conf.c:788
 | 
					#: src/daemon/daemon-conf.c:788
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -342,7 +342,7 @@ msgstr "사용법: %s\n"
 | 
				
			||||||
#: src/daemon/dumpmodules.c:70
 | 
					#: src/daemon/dumpmodules.c:70
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Load Once: %s\n"
 | 
					msgid "Load Once: %s\n"
 | 
				
			||||||
msgstr "한 번 적재하기: %s\n"
 | 
					msgstr "한 번 로딩하기: %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/dumpmodules.c:72
 | 
					#: src/daemon/dumpmodules.c:72
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -365,7 +365,7 @@ msgstr "기존 lt_dlopen 로더를 찾는데 실패했습니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/ltdl-bind-now.c:131
 | 
					#: src/daemon/ltdl-bind-now.c:131
 | 
				
			||||||
msgid "Failed to allocate new dl loader."
 | 
					msgid "Failed to allocate new dl loader."
 | 
				
			||||||
msgstr "새 dl 로더 할당에 실패했습니다."
 | 
					msgstr "새 dl 로더를 할당하는데 실패했습니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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."
 | 
				
			||||||
| 
						 | 
					@ -374,22 +374,22 @@ msgstr "bind-now-loader를 추가하는데 실패했습니다."
 | 
				
			||||||
#: src/daemon/main.c:265
 | 
					#: src/daemon/main.c:265
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to find user '%s'."
 | 
					msgid "Failed to find user '%s'."
 | 
				
			||||||
msgstr "'%s' 사용자를 찾을 수 없습니다."
 | 
					msgstr "사용자 '%s'를 찾을 수 없습니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:270
 | 
					#: src/daemon/main.c:270
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to find group '%s'."
 | 
					msgid "Failed to find group '%s'."
 | 
				
			||||||
msgstr "'%s' 그룹을 찾을 수 없습니다."
 | 
					msgstr "그룹 '%s'를 찾을 수 없습니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:279
 | 
					#: src/daemon/main.c:279
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "GID of user '%s' and of group '%s' don't match."
 | 
					msgid "GID of user '%s' and of group '%s' don't match."
 | 
				
			||||||
msgstr "'%s' 사용자의 GID와 '%s' 그룹 정보가 일치하지 않습니다."
 | 
					msgstr "사용자 '%s'의 GID와 그룹 '%s'가 일치하지 않습니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:284
 | 
					#: src/daemon/main.c:284
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Home directory of user '%s' is not '%s', ignoring."
 | 
					msgid "Home directory of user '%s' is not '%s', ignoring."
 | 
				
			||||||
msgstr "사용자 '%s'의 홈 디렉토리가 '%s' 아니면, 무시합니다."
 | 
					msgstr "사용자 '%s'의 홈 디렉토리가 '%s'가 아닙니다, 무시됨."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:287 src/daemon/main.c:292
 | 
					#: src/daemon/main.c:287 src/daemon/main.c:292
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -413,7 +413,7 @@ msgstr "UID 변경 실패: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:360
 | 
					#: src/daemon/main.c:360
 | 
				
			||||||
msgid "System wide mode unsupported on this platform."
 | 
					msgid "System wide mode unsupported on this platform."
 | 
				
			||||||
msgstr "시스템 전역 모드는 이 기술환경에서 지원하지 않습니다."
 | 
					msgstr "시스템 전역 모드는 이 플랫폼에서 지원되지 않습니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:650
 | 
					#: src/daemon/main.c:650
 | 
				
			||||||
msgid "Failed to parse command line."
 | 
					msgid "Failed to parse command line."
 | 
				
			||||||
| 
						 | 
					@ -423,7 +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 "non-root 사용자에게 시스템 방식이 거부되었습니다. D-Bus 서버 검색 서비스만 "
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"비 root 사용자에 대해 시스템 모드는 거부되었습니다. D-Bus 서버 검색 서비스만 "
 | 
				
			||||||
"시작합니다."
 | 
					"시작합니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:788
 | 
					#: src/daemon/main.c:788
 | 
				
			||||||
| 
						 | 
					@ -435,12 +436,12 @@ 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 "이와 같은 프로그램은 root로 동작하도록 의도되지 않았습니다 (--system 이 "
 | 
					msgstr ""
 | 
				
			||||||
"지정되지 않은 경우)."
 | 
					"프로그램이 root로 실행되지 않습니다. (실행하려면 --system을 명기하십시오)."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:820
 | 
					#: src/daemon/main.c:820
 | 
				
			||||||
msgid "Root privileges required."
 | 
					msgid "Root privileges required."
 | 
				
			||||||
msgstr "루트 권한이 필요합니다."
 | 
					msgstr "Root 권한이 필요합니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:827
 | 
					#: src/daemon/main.c:827
 | 
				
			||||||
msgid "--start not supported for system instances."
 | 
					msgid "--start not supported for system instances."
 | 
				
			||||||
| 
						 | 
					@ -449,22 +450,24 @@ 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에 User-configured 서버, start/autospawn을 거부하고 있습니다."
 | 
					msgstr "%s에서 사용자 설정한 서버, 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에 User-configured 서버, 이는 로컬에 있습니다. 상세히 조사합니다."
 | 
					msgstr "%s에 사용자가 설정한 서버, 이는 로컬에 있습니다. 상세히 조사합니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 "시스템 방식에서 실행 중이지만, --disallow-exit 를 설정하지 않았습니다."
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"시스템 모드에서 실행중입니다. 하지만 --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 "시스템 방식에서 실행 중이지만, --disallow-module-loading 를 설정하지 "
 | 
					msgstr ""
 | 
				
			||||||
"않았습니다."
 | 
					"시스템 모드에서 실행 중입니다. 하지만 --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."
 | 
				
			||||||
| 
						 | 
					@ -656,7 +659,7 @@ msgstr "도킹스테이션 마이크"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2802
 | 
					#: src/modules/alsa/alsa-mixer.c:2802
 | 
				
			||||||
msgid "Headset Microphone"
 | 
					msgid "Headset Microphone"
 | 
				
			||||||
msgstr "헤드셋 마이크"
 | 
					msgstr "후면 마이크"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2806
 | 
					#: src/modules/alsa/alsa-mixer.c:2806
 | 
				
			||||||
msgid "Analog Output"
 | 
					msgid "Analog Output"
 | 
				
			||||||
| 
						 | 
					@ -716,7 +719,7 @@ msgstr "대화 입력"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2822
 | 
					#: src/modules/alsa/alsa-mixer.c:2822
 | 
				
			||||||
msgid "Virtual Surround 7.1"
 | 
					msgid "Virtual Surround 7.1"
 | 
				
			||||||
msgstr "가상 서라운드 7.1"
 | 
					msgstr "가상 서라운드 싱크"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4563
 | 
					#: src/modules/alsa/alsa-mixer.c:4563
 | 
				
			||||||
msgid "Analog Mono"
 | 
					msgid "Analog Mono"
 | 
				
			||||||
| 
						 | 
					@ -860,7 +863,7 @@ msgstr "스테레오 듀플렉스"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4739
 | 
					#: src/modules/alsa/alsa-mixer.c:4739
 | 
				
			||||||
msgid "Mono Chat + 7.1 Surround"
 | 
					msgid "Mono Chat + 7.1 Surround"
 | 
				
			||||||
msgstr "모노 대화 + 7.1 서라운드"
 | 
					msgstr "모노 Chat + 7.1 Surround"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4740 src/modules/alsa/module-alsa-card.c:197
 | 
					#: src/modules/alsa/alsa-mixer.c:4740 src/modules/alsa/module-alsa-card.c:197
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2263
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2263
 | 
				
			||||||
| 
						 | 
					@ -1010,15 +1013,15 @@ 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 "고음질 재생 (A2DP Sink)"
 | 
					msgstr "Hi-Fi 재생 (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 "고음질 캡쳐 (A2DP Source)"
 | 
					msgstr "Hi-Fi 캡쳐 (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)"
 | 
				
			||||||
msgstr "헤드셋 헤드 단위 (HSP)"
 | 
					msgstr "헤드셋 헤드 유닛 (HSP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2079
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2079
 | 
				
			||||||
msgid "Headset Audio Gateway (HSP)"
 | 
					msgid "Headset Audio Gateway (HSP)"
 | 
				
			||||||
| 
						 | 
					@ -1026,7 +1029,7 @@ msgstr "헤드셋 오디오 게이트웨어 (HSP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2092
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2092
 | 
				
			||||||
msgid "Handsfree Head Unit (HFP)"
 | 
					msgid "Handsfree Head Unit (HFP)"
 | 
				
			||||||
msgstr "핸즈프리 헤드 단위 (HFP)"
 | 
					msgstr "핸즈프리 헤드 유닛 (HFP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2105
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2105
 | 
				
			||||||
msgid "Handsfree Audio Gateway (HFP)"
 | 
					msgid "Handsfree Audio Gateway (HFP)"
 | 
				
			||||||
| 
						 | 
					@ -1089,8 +1092,8 @@ msgstr ""
 | 
				
			||||||
"channel_map=<채널 맵> autoloaded=<이 모듈이 자동으로 로드된다면 설정하십시오"
 | 
					"channel_map=<채널 맵> autoloaded=<이 모듈이 자동으로 로드된다면 설정하십시오"
 | 
				
			||||||
"> use_volume_sharing=<yes 또는 no> "
 | 
					"> use_volume_sharing=<yes 또는 no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "고속퓨리에변환 기반 이퀄라이저 동작 %s"
 | 
					msgstr "고속퓨리에변환 기반 이퀄라이저 동작 %s"
 | 
				
			||||||
| 
						 | 
					@ -1154,14 +1157,14 @@ msgstr "호스트 @HOSTNAME@의 오디오"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "%s@%s 위한 터널"
 | 
					msgstr "%s@%s 위한 터널"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "%s/%s가는 터널"
 | 
					msgstr "%s/%s가는 터널"
 | 
				
			||||||
| 
						 | 
					@ -1475,9 +1478,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에 연결을 시도 할 때에 "
 | 
					"통신규약을 통해 비-root가 PluseAudio에 root 사용자로 연결을 시도할 때에 예를 "
 | 
				
			||||||
"예시로 발생 할 수 있습니다. 그렇게 하지 않습니다.)"
 | 
					"들어 발생 할 수 있습니다. 그렇게 하지 않습니다.)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/core-util.h:97
 | 
					#: src/pulsecore/core-util.h:97
 | 
				
			||||||
msgid "yes"
 | 
					msgid "yes"
 | 
				
			||||||
| 
						 | 
					@ -1508,17 +1511,17 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "잘못된 기록 대상."
 | 
					msgstr "잘못된 기록 대상."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "내장 오디오"
 | 
					msgstr "내장 오디오"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "모뎀"
 | 
					msgstr "모뎀"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulse/error.c:38
 | 
					#: src/pulse/error.c:38
 | 
				
			||||||
msgid "OK"
 | 
					msgid "OK"
 | 
				
			||||||
msgstr "확인"
 | 
					msgstr "OK"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulse/error.c:39
 | 
					#: src/pulse/error.c:39
 | 
				
			||||||
msgid "Access denied"
 | 
					msgid "Access denied"
 | 
				
			||||||
| 
						 | 
					@ -1586,7 +1589,7 @@ msgstr "자료 없음"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulse/error.c:55
 | 
					#: src/pulse/error.c:55
 | 
				
			||||||
msgid "Incompatible protocol version"
 | 
					msgid "Incompatible protocol version"
 | 
				
			||||||
msgstr "호환되지 않는 프로토콜 버전"
 | 
					msgstr "호환되지 않는 통신규약 버전"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulse/error.c:56
 | 
					#: src/pulse/error.c:56
 | 
				
			||||||
msgid "Too large"
 | 
					msgid "Too large"
 | 
				
			||||||
| 
						 | 
					@ -1905,11 +1908,11 @@ msgstr ""
 | 
				
			||||||
"  -v, --verbose                         자세한 작업 활성화합니다\n"
 | 
					"  -v, --verbose                         자세한 작업 활성화합니다\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -s, --server=SERVER                   연결하고자 하는 서버의 이름\n"
 | 
					"  -s, --server=SERVER                   연결하고자 하는 서버의 이름\n"
 | 
				
			||||||
"  -d, --device=DEVICE                   연결하고자 하는 싱크/원천의 이름. 특"
 | 
					"  -d, --device=DEVICE                   연결하고자 하는 싱크/원천의 이름. "
 | 
				
			||||||
"별한 이름 @DEFAULT_SINK@, @DEFAULT_SOURCE@과 @DEFAULT_MONITOR@는 각기 기본 싱"
 | 
					"특별한 이름 @DEFAULT_SINK@, @DEFAULT_SOURCE@과 @DEFAULT_MONITOR@는 각기 기본 "
 | 
				
			||||||
"크, 원천과 관리를 지정하는데 사용 될 수 있습니다.\n"
 | 
					"싱크, 원천과 관리를 지정하는데 사용 될 수 있습니다.\n"
 | 
				
			||||||
"  -n, --client-name=NAME                서버에서 이와 같은 클라이언트를 호출"
 | 
					"  -n, --client-name=NAME                서버에서 이와 같은 클라이언트를 "
 | 
				
			||||||
"하는 방법\n"
 | 
					"호출하는 방법\n"
 | 
				
			||||||
"      --stream-name=NAME                서버에서 이와 같은 스트림을 호출하는 "
 | 
					"      --stream-name=NAME                서버에서 이와 같은 스트림을 호출하는 "
 | 
				
			||||||
"방법\n"
 | 
					"방법\n"
 | 
				
			||||||
"      --volume=VOLUME                   범위 0...65536에서 초기(선형) 소리를 "
 | 
					"      --volume=VOLUME                   범위 0...65536에서 초기(선형) 소리를 "
 | 
				
			||||||
| 
						 | 
					@ -1922,29 +1925,29 @@ msgstr ""
 | 
				
			||||||
"      --channels=CHANNELS               채널의 수, 모노 1, 스테레오 2\n"
 | 
					"      --channels=CHANNELS               채널의 수, 모노 1, 스테레오 2\n"
 | 
				
			||||||
"                                        (기본값 2)\n"
 | 
					"                                        (기본값 2)\n"
 | 
				
			||||||
"      --channel-map=CHANNELMAP          기본값 대신에 사용하려는 채널맵\n"
 | 
					"      --channel-map=CHANNELMAP          기본값 대신에 사용하려는 채널맵\n"
 | 
				
			||||||
"      --fix-format                      스트림이 연결되고 있는 싱크/원천에"
 | 
					"      --fix-format                      스트림이 연결되고 있는 싱크/"
 | 
				
			||||||
"서\n"
 | 
					"원천에서\n"
 | 
				
			||||||
"                                        샘플 형식을 가져옵니다.\n"
 | 
					"                                        샘플 형식을 가져옵니다.\n"
 | 
				
			||||||
"      --fix-rate                        스트림이 연결되고 있는 싱크/원천에"
 | 
					"      --fix-rate                        스트림이 연결되고 있는 싱크/"
 | 
				
			||||||
"서\n"
 | 
					"원천에서\n"
 | 
				
			||||||
"                                        샘플 비율을 가져옵니다.\n"
 | 
					"                                        샘플 비율을 가져옵니다.\n"
 | 
				
			||||||
"      --fix-channels                    스트림이 연결되고 있는 싱크/원천에"
 | 
					"      --fix-channels                    스트림이 연결되고 있는 싱크/"
 | 
				
			||||||
"서\n"
 | 
					"원천에서\n"
 | 
				
			||||||
"                                        채널 수와 채널맵을 가져옵니다.\n"
 | 
					"                                        채널 수와 채널맵을 가져옵니다.\n"
 | 
				
			||||||
"      --no-remix                        채널을 언믹스하거나 다운믹스 하지 않"
 | 
					"      --no-remix                        채널을 언믹스하거나 다운믹스 하지 "
 | 
				
			||||||
"습니다.\n"
 | 
					"않습니다.\n"
 | 
				
			||||||
"      --no-remap                        이름 대신에 색인으로 채널을 맵핑합니"
 | 
					"      --no-remap                        이름 대신에 색인으로 채널을 "
 | 
				
			||||||
"다.\n"
 | 
					"맵핑합니다.\n"
 | 
				
			||||||
"      --latency=BYTES                   바이트 단위로 지정된 지연시간을 요청"
 | 
					"      --latency=BYTES                   바이트 단위로 지정된 지연시간을 "
 | 
				
			||||||
"합니다.\n"
 | 
					"요청합니다.\n"
 | 
				
			||||||
"      --process-time=BYTES              바이트 단위로 요청당 지정된 처리시간"
 | 
					"      --process-time=BYTES              바이트 단위로 요청당 지정된 "
 | 
				
			||||||
"을 요청합니다.\n"
 | 
					"처리시간을 요청합니다.\n"
 | 
				
			||||||
"      --latency-msec=MSEC               msec 단위로 지정된 지연시간을 요청합"
 | 
					"      --latency-msec=MSEC               msec 단위로 지정된 지연시간을 "
 | 
				
			||||||
"니다.\n"
 | 
					"요청합니다.\n"
 | 
				
			||||||
"      --process-time-msec=MSEC          msec 단위로 요청당 지정된 처리시간을 "
 | 
					"      --process-time-msec=MSEC          msec 단위로 요청당 지정된 처리시간을 "
 | 
				
			||||||
"요청합니다.\n"
 | 
					"요청합니다.\n"
 | 
				
			||||||
"      --property=PROPERTY=VALUE         지정된 속성을 지정된 값으로 설정합니"
 | 
					"      --property=PROPERTY=VALUE         지정된 속성을 지정된 값으로 "
 | 
				
			||||||
"다.\n"
 | 
					"설정합니다.\n"
 | 
				
			||||||
"      --raw                             raw PCM 자료를 기록하거나/재생.\n"
 | 
					"      --raw                             raw PCM 자료를 기록하거나/재생.\n"
 | 
				
			||||||
"      --passthrough                     통과 자료.\n"
 | 
					"      --passthrough                     통과 자료.\n"
 | 
				
			||||||
"      --file-format[=FFORMAT]           형식화된 PCM 자료 기록/재생.\n"
 | 
					"      --file-format[=FFORMAT]           형식화된 PCM 자료 기록/재생.\n"
 | 
				
			||||||
| 
						 | 
					@ -2438,7 +2441,7 @@ msgid ""
 | 
				
			||||||
"\tProperties:\n"
 | 
					"\tProperties:\n"
 | 
				
			||||||
"\t\t%s\n"
 | 
					"\t\t%s\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Sink #%u\n"
 | 
					"싱크 #%u\n"
 | 
				
			||||||
"\t상태: %s\n"
 | 
					"\t상태: %s\n"
 | 
				
			||||||
"\t이름: %s\n"
 | 
					"\t이름: %s\n"
 | 
				
			||||||
"\t설명: %s\n"
 | 
					"\t설명: %s\n"
 | 
				
			||||||
| 
						 | 
					@ -2447,10 +2450,10 @@ msgstr ""
 | 
				
			||||||
"\t채널 맵: %s\n"
 | 
					"\t채널 맵: %s\n"
 | 
				
			||||||
"\t소유자 모듈: %u\n"
 | 
					"\t소유자 모듈: %u\n"
 | 
				
			||||||
"\t무음: %s\n"
 | 
					"\t무음: %s\n"
 | 
				
			||||||
"\t음량: %s\n"
 | 
					"\t볼륨: %s%s%s\n"
 | 
				
			||||||
"\t        균형 %0.2f\n"
 | 
					"\t균형 %0.2f\n"
 | 
				
			||||||
"\t기본 음량: %s\n"
 | 
					"\t기본 볼륨: %s%s%s\n"
 | 
				
			||||||
"\t모니터 원천: %s\n"
 | 
					"\t모니터 소스: %s\n"
 | 
				
			||||||
"\t지연시간: %0.0f usec, 설정 %0.0f usec\n"
 | 
					"\t지연시간: %0.0f usec, 설정 %0.0f usec\n"
 | 
				
			||||||
"\t플래그: %s%s%s%s%s%s%s\n"
 | 
					"\t플래그: %s%s%s%s%s%s%s\n"
 | 
				
			||||||
"\t속성:\n"
 | 
					"\t속성:\n"
 | 
				
			||||||
| 
						 | 
					@ -2507,7 +2510,7 @@ msgid ""
 | 
				
			||||||
"\tProperties:\n"
 | 
					"\tProperties:\n"
 | 
				
			||||||
"\t\t%s\n"
 | 
					"\t\t%s\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"원천 #%u\n"
 | 
					"소스 #%u\n"
 | 
				
			||||||
"\t상태: %s\n"
 | 
					"\t상태: %s\n"
 | 
				
			||||||
"\t이름: %s\n"
 | 
					"\t이름: %s\n"
 | 
				
			||||||
"\t설명: %s\n"
 | 
					"\t설명: %s\n"
 | 
				
			||||||
| 
						 | 
					@ -2516,11 +2519,11 @@ msgstr ""
 | 
				
			||||||
"\t채널 맵: %s\n"
 | 
					"\t채널 맵: %s\n"
 | 
				
			||||||
"\t소유자 모듈: %u\n"
 | 
					"\t소유자 모듈: %u\n"
 | 
				
			||||||
"\t무음: %s\n"
 | 
					"\t무음: %s\n"
 | 
				
			||||||
"\t볼륨: %s\n"
 | 
					"\t볼륨: %s%s%s\n"
 | 
				
			||||||
"\t        균형 %0.2f\n"
 | 
					"\t        균형 %0.2f\n"
 | 
				
			||||||
"\t기본 볼륨: %s\n"
 | 
					"\t기본 볼륨: %s%s%s\n"
 | 
				
			||||||
"\t싱크 모니터:%s\n"
 | 
					"\t싱크 모니터: %s\n"
 | 
				
			||||||
"\t지연시간:%0.0f usec, 설정 %0.0f usec\n"
 | 
					"\t지연시간: %0.0f usec, 설정 %0.0f usec\n"
 | 
				
			||||||
"\t플래그: %s%s%s%s%s%s\n"
 | 
					"\t플래그: %s%s%s%s%s%s\n"
 | 
				
			||||||
"\t속성:\n"
 | 
					"\t속성:\n"
 | 
				
			||||||
"\t\t%s\n"
 | 
					"\t\t%s\n"
 | 
				
			||||||
| 
						 | 
					@ -2670,7 +2673,8 @@ msgstr ""
 | 
				
			||||||
"\t코르크: %s\n"
 | 
					"\t코르크: %s\n"
 | 
				
			||||||
"\t무음: %s\n"
 | 
					"\t무음: %s\n"
 | 
				
			||||||
"\t볼륨: %s\n"
 | 
					"\t볼륨: %s\n"
 | 
				
			||||||
"\t        균형 %0.2f\n"
 | 
					"\t %s\n"
 | 
				
			||||||
 | 
					"\t균형 %0.2f\n"
 | 
				
			||||||
"\t버퍼 지연 시간: %0.0f usec\n"
 | 
					"\t버퍼 지연 시간: %0.0f usec\n"
 | 
				
			||||||
"\t싱크 지연 시간: %0.0f usec\n"
 | 
					"\t싱크 지연 시간: %0.0f usec\n"
 | 
				
			||||||
"\t리샘플링 방법: %s\n"
 | 
					"\t리샘플링 방법: %s\n"
 | 
				
			||||||
| 
						 | 
					@ -2747,7 +2751,8 @@ msgstr ""
 | 
				
			||||||
"\t샘플 사양: %s\n"
 | 
					"\t샘플 사양: %s\n"
 | 
				
			||||||
"\t채널맵: %s\n"
 | 
					"\t채널맵: %s\n"
 | 
				
			||||||
"\t볼륨: %s\n"
 | 
					"\t볼륨: %s\n"
 | 
				
			||||||
"\t        균형 %0.2f\n"
 | 
					"\t %s\n"
 | 
				
			||||||
 | 
					"\t균형 %0.2f\n"
 | 
				
			||||||
"\t길이: %0.1fs\n"
 | 
					"\t길이: %0.1fs\n"
 | 
				
			||||||
"\t크기: %s\n"
 | 
					"\t크기: %s\n"
 | 
				
			||||||
"\t레이지: %s\n"
 | 
					"\t레이지: %s\n"
 | 
				
			||||||
| 
						 | 
					@ -3131,8 +3136,8 @@ msgid ""
 | 
				
			||||||
"Excess arguments given, they will be ignored. Note that all message "
 | 
					"Excess arguments given, they will be ignored. Note that all message "
 | 
				
			||||||
"parameters must be given as a single string."
 | 
					"parameters must be given as a single string."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"초과 인자 값을 부여하면 무시합니다. 모든 메시지 변수는 단일 문자열로 주어져"
 | 
					"초과 인수가 주어지면, 이들은 무시될 것입니다. 모든 메시지 변수는 단일 문자열"
 | 
				
			||||||
"야 합니다."
 | 
					"로 주어져야 합니다."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3182
 | 
					#: src/utils/pactl.c:3182
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -3206,7 +3211,7 @@ msgid ""
 | 
				
			||||||
"to\n"
 | 
					"to\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"%s [옵션] -- 프로그램 -[ 인자 ...]\n"
 | 
					"%s [옵션] -- 프로그램 -[ 인수 ...]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"프로그램이 동작 할 때에 일시적으로 PulseAudio를 중지합니다.\n"
 | 
					"프로그램이 동작 할 때에 일시적으로 PulseAudio를 중지합니다.\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										107
									
								
								po/lt.po
									
										
									
									
									
								
							
							
						
						
									
										107
									
								
								po/lt.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,18 +8,17 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: \n"
 | 
					"Project-Id-Version: \n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2024-02-15 22:36+0000\n"
 | 
					"PO-Revision-Date: 2019-09-01 16:15+0300\n"
 | 
				
			||||||
"Last-Translator: mooo <hazap@hotmail.com>\n"
 | 
					"Last-Translator: Moo\n"
 | 
				
			||||||
"Language-Team: Lithuanian <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: \n"
 | 
				
			||||||
"pulseaudio/pulseaudio/lt/>\n"
 | 
					 | 
				
			||||||
"Language: lt\n"
 | 
					"Language: lt\n"
 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
"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=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && ("
 | 
					"X-Generator: Poedit 2.2.1\n"
 | 
				
			||||||
"n%100<10 || n%100>=20) ? 1 : 2);\n"
 | 
					"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
 | 
				
			||||||
"X-Generator: Weblate 5.4\n"
 | 
					"%100<10 || n%100>=20) ? 1 : 2);\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -703,8 +702,9 @@ msgid "Analog Output"
 | 
				
			||||||
msgstr "Analoginė išvestis"
 | 
					msgstr "Analoginė išvestis"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2808
 | 
					#: src/modules/alsa/alsa-mixer.c:2808
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Headphones 2"
 | 
					msgid "Headphones 2"
 | 
				
			||||||
msgstr "Ausinės 2"
 | 
					msgstr "Ausinės"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2809
 | 
					#: src/modules/alsa/alsa-mixer.c:2809
 | 
				
			||||||
msgid "Headphones Mono Output"
 | 
					msgid "Headphones Mono Output"
 | 
				
			||||||
| 
						 | 
					@ -751,24 +751,28 @@ msgid "Chat Output"
 | 
				
			||||||
msgstr "Pokalbio išvestis"
 | 
					msgstr "Pokalbio išvestis"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2821
 | 
					#: src/modules/alsa/alsa-mixer.c:2821
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Chat Input"
 | 
					msgid "Chat Input"
 | 
				
			||||||
msgstr "Pokalbio įvestis"
 | 
					msgstr "Pokalbio išvestis"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:2822
 | 
					#: src/modules/alsa/alsa-mixer.c:2822
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Virtual Surround 7.1"
 | 
					msgid "Virtual Surround 7.1"
 | 
				
			||||||
msgstr "Virtuali erdvinė 7.1"
 | 
					msgstr "Virtualus erdvinis rinktuvas"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4563
 | 
					#: src/modules/alsa/alsa-mixer.c:4563
 | 
				
			||||||
msgid "Analog Mono"
 | 
					msgid "Analog Mono"
 | 
				
			||||||
msgstr "Analoginė mono"
 | 
					msgstr "Analoginė mono"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4564
 | 
					#: src/modules/alsa/alsa-mixer.c:4564
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Analog Mono (Left)"
 | 
					msgid "Analog Mono (Left)"
 | 
				
			||||||
msgstr "Analoginė mono (kairioji)"
 | 
					msgstr "Analoginė mono"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4565
 | 
					#: src/modules/alsa/alsa-mixer.c:4565
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Analog Mono (Right)"
 | 
					msgid "Analog Mono (Right)"
 | 
				
			||||||
msgstr "Analoginė mono (dešinioji)"
 | 
					msgstr "Analoginė mono"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. Note: Not translated to "Analog Stereo Input", because the source
 | 
					#. Note: Not translated to "Analog Stereo Input", because the source
 | 
				
			||||||
#. * name gets "Input" appended to it automatically, so adding "Input"
 | 
					#. * name gets "Input" appended to it automatically, so adding "Input"
 | 
				
			||||||
| 
						 | 
					@ -873,11 +877,11 @@ msgstr "Skaitmeninė erdvinė 5.1 (HDMI)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4597
 | 
					#: src/modules/alsa/alsa-mixer.c:4597
 | 
				
			||||||
msgid "Chat"
 | 
					msgid "Chat"
 | 
				
			||||||
msgstr "Pokalbis"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4598
 | 
					#: src/modules/alsa/alsa-mixer.c:4598
 | 
				
			||||||
msgid "Game"
 | 
					msgid "Game"
 | 
				
			||||||
msgstr "Žaidimas"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4732
 | 
					#: src/modules/alsa/alsa-mixer.c:4732
 | 
				
			||||||
msgid "Analog Mono Duplex"
 | 
					msgid "Analog Mono Duplex"
 | 
				
			||||||
| 
						 | 
					@ -901,7 +905,7 @@ msgstr "Dvipusė stereo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4739
 | 
					#: src/modules/alsa/alsa-mixer.c:4739
 | 
				
			||||||
msgid "Mono Chat + 7.1 Surround"
 | 
					msgid "Mono Chat + 7.1 Surround"
 | 
				
			||||||
msgstr "Mono pokalbis + 7.1 erdvinė"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/alsa/alsa-mixer.c:4740 src/modules/alsa/module-alsa-card.c:197
 | 
					#: src/modules/alsa/alsa-mixer.c:4740 src/modules/alsa/module-alsa-card.c:197
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2263
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2263
 | 
				
			||||||
| 
						 | 
					@ -1098,16 +1102,19 @@ msgid "Headset Head Unit (HSP)"
 | 
				
			||||||
msgstr "Ausinių su mikrofonu pagrindinis įtaisas (HSP/HFP)"
 | 
					msgstr "Ausinių su mikrofonu pagrindinis įtaisas (HSP/HFP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2079
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2079
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Headset Audio Gateway (HSP)"
 | 
					msgid "Headset Audio Gateway (HSP)"
 | 
				
			||||||
msgstr "Ausinių su mikrofonu garso tinklų sietuvas (HSP)"
 | 
					msgstr "Ausinių su mikrofonu garso tinklų sietuvas (HSP/HFP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2092
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2092
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Handsfree Head Unit (HFP)"
 | 
					msgid "Handsfree Head Unit (HFP)"
 | 
				
			||||||
msgstr "Laisvų rankų įrangos pagrindinis įtaisas (HFP)"
 | 
					msgstr "Ausinių su mikrofonu pagrindinis įtaisas (HSP/HFP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:2105
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:2105
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Handsfree Audio Gateway (HFP)"
 | 
					msgid "Handsfree Audio Gateway (HFP)"
 | 
				
			||||||
msgstr "Laisvų rankų įrangos garso tinklų sietuvas (HFP)"
 | 
					msgstr "Ausinių su mikrofonu garso tinklų sietuvas (HSP/HFP)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/echo-cancel/module-echo-cancel.c:59
 | 
					#: src/modules/echo-cancel/module-echo-cancel.c:59
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -1169,8 +1176,8 @@ msgstr ""
 | 
				
			||||||
"schema> autoloaded=<nustatyti ar šis modulis bus įkeliamas automatiškai> "
 | 
					"schema> autoloaded=<nustatyti ar šis modulis bus įkeliamas automatiškai> "
 | 
				
			||||||
"use_volume_sharing=<yes arba no> "
 | 
					"use_volume_sharing=<yes arba no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "FFT pagrįstas glodintuvas ties %s"
 | 
					msgstr "FFT pagrįstas glodintuvas ties %s"
 | 
				
			||||||
| 
						 | 
					@ -1238,14 +1245,14 @@ msgstr "Garsas ties @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunelis, skirtas %s@%s"
 | 
					msgstr "Tunelis, skirtas %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunelis į %s/%s"
 | 
					msgstr "Tunelis į %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1596,11 +1603,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Neteisinga žurnalo paskirtis."
 | 
					msgstr "Neteisinga žurnalo paskirtis."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Įtaisytas garsas"
 | 
					msgstr "Įtaisytas garsas"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modemas"
 | 
					msgstr "Modemas"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2409,9 +2416,9 @@ msgid "Failed to get server information: %s"
 | 
				
			||||||
msgstr "Nepavyko gauti serverio informacijos: %s"
 | 
					msgstr "Nepavyko gauti serverio informacijos: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:224 src/utils/pactl.c:236
 | 
					#: src/utils/pactl.c:224 src/utils/pactl.c:236
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "%s\n"
 | 
					msgid "%s\n"
 | 
				
			||||||
msgstr "%s\n"
 | 
					msgstr "%s %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:281
 | 
					#: src/utils/pactl.c:281
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2455,19 +2462,20 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:320
 | 
					#: src/utils/pactl.c:320
 | 
				
			||||||
msgid "availability unknown"
 | 
					msgid "availability unknown"
 | 
				
			||||||
msgstr "prieinamumas nežinomas"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:321
 | 
					#: src/utils/pactl.c:321
 | 
				
			||||||
msgid "available"
 | 
					msgid "available"
 | 
				
			||||||
msgstr "prieinama"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:322
 | 
					#: src/utils/pactl.c:322
 | 
				
			||||||
msgid "not available"
 | 
					msgid "not available"
 | 
				
			||||||
msgstr "neprieinama"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:331 src/utils/pactl.c:355
 | 
					#: src/utils/pactl.c:331 src/utils/pactl.c:355
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Unknown"
 | 
					msgid "Unknown"
 | 
				
			||||||
msgstr "Nežinoma"
 | 
					msgstr "nežinoma"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:332
 | 
					#: src/utils/pactl.c:332
 | 
				
			||||||
msgid "Aux"
 | 
					msgid "Aux"
 | 
				
			||||||
| 
						 | 
					@ -2480,11 +2488,12 @@ msgstr "Įvadinė linija"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:336
 | 
					#: src/utils/pactl.c:336
 | 
				
			||||||
msgid "Mic"
 | 
					msgid "Mic"
 | 
				
			||||||
msgstr "Mikrofonas"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:338
 | 
					#: src/utils/pactl.c:338
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Handset"
 | 
					msgid "Handset"
 | 
				
			||||||
msgstr "Telefono ragelis"
 | 
					msgstr "Ausinės su mikrofonu"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:339
 | 
					#: src/utils/pactl.c:339
 | 
				
			||||||
msgid "Earpiece"
 | 
					msgid "Earpiece"
 | 
				
			||||||
| 
						 | 
					@ -2492,27 +2501,28 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:340
 | 
					#: src/utils/pactl.c:340
 | 
				
			||||||
msgid "SPDIF"
 | 
					msgid "SPDIF"
 | 
				
			||||||
msgstr "SPDIF"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:341
 | 
					#: src/utils/pactl.c:341
 | 
				
			||||||
msgid "HDMI"
 | 
					msgid "HDMI"
 | 
				
			||||||
msgstr "HDMI"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:342
 | 
					#: src/utils/pactl.c:342
 | 
				
			||||||
msgid "TV"
 | 
					msgid "TV"
 | 
				
			||||||
msgstr "Televizorius"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:345
 | 
					#: src/utils/pactl.c:345
 | 
				
			||||||
msgid "USB"
 | 
					msgid "USB"
 | 
				
			||||||
msgstr "USB"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:346
 | 
					#: src/utils/pactl.c:346
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "Bluetooth"
 | 
					msgid "Bluetooth"
 | 
				
			||||||
msgstr "Bluetooth"
 | 
					msgstr "Bluetooth įvestis"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:352
 | 
					#: src/utils/pactl.c:352
 | 
				
			||||||
msgid "Network"
 | 
					msgid "Network"
 | 
				
			||||||
msgstr "Tinklas"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:353
 | 
					#: src/utils/pactl.c:353
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
| 
						 | 
					@ -2570,13 +2580,14 @@ msgid "\tPorts:\n"
 | 
				
			||||||
msgstr "\tPrievadai:\n"
 | 
					msgstr "\tPrievadai:\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
					#: src/utils/pactl.c:708 src/utils/pactl.c:892
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "\t\t%s: %s (type: %s, priority: %u%s%s, %s)\n"
 | 
					msgid "\t\t%s: %s (type: %s, priority: %u%s%s, %s)\n"
 | 
				
			||||||
msgstr "\t\t%s: %s (tipas: %s, pirmenybė: %u%s%s, %s)\n"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"\t\t%s: %s (rinktuvų: %u, šaltinių: %u, pirmenybė: %u, prieinama: %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
 | 
				
			||||||
msgid ", availability group: "
 | 
					msgid ", availability group: "
 | 
				
			||||||
msgstr ", prieinamumo grupė: "
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:715 src/utils/pactl.c:899
 | 
					#: src/utils/pactl.c:715 src/utils/pactl.c:899
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2869,9 +2880,9 @@ msgid "Failure: %s"
 | 
				
			||||||
msgstr "Triktis: %s"
 | 
					msgstr "Triktis: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1667
 | 
					#: src/utils/pactl.c:1667
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "Send message failed: %s"
 | 
					msgid "Send message failed: %s"
 | 
				
			||||||
msgstr "Nepavyko išsiųsti pranešimo: %s"
 | 
					msgstr "read() nepavyko: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1695
 | 
					#: src/utils/pactl.c:1695
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2880,11 +2891,11 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 "nepavyko teisingai išnagrinėti list-handlers pranešimo atsako"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 "list-handlers pranešimo atsakas nėra JSON masyvas"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1729
 | 
					#: src/utils/pactl.c:1729
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/ml.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/ml.po
									
										
									
									
									
								
							| 
						 | 
					@ -6,7 +6,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx.ml\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx.ml\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:41+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:41+0000\n"
 | 
				
			||||||
"Last-Translator: \n"
 | 
					"Last-Translator: \n"
 | 
				
			||||||
"Language-Team:  <en@li.org>\n"
 | 
					"Language-Team:  <en@li.org>\n"
 | 
				
			||||||
| 
						 | 
					@ -1133,8 +1133,8 @@ msgstr ""
 | 
				
			||||||
"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
					"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
				
			||||||
"input control values>"
 | 
					"input control values>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1197,14 +1197,14 @@ msgstr "@HOSTNAME@-ലുള്ള ഓഡിയോ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1555,11 +1555,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] തെറ്റായ ലോഗ് ടാര്ഗറ്റ് '%s'."
 | 
					msgstr "[%s:%u] തെറ്റായ ലോഗ് ടാര്ഗറ്റ് '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "ഇന്റേര്ണല് ഓഡിയോ"
 | 
					msgstr "ഇന്റേര്ണല് ഓഡിയോ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "മോഡം"
 | 
					msgstr "മോഡം"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/mr.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/mr.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:54+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:54+0000\n"
 | 
				
			||||||
"Last-Translator: Sandeep Shedmake <sshedmak@redhat.com>\n"
 | 
					"Last-Translator: Sandeep Shedmake <sshedmak@redhat.com>\n"
 | 
				
			||||||
"Language-Team: Marathi <fedora-trans-mr@redhat.com>\n"
 | 
					"Language-Team: Marathi <fedora-trans-mr@redhat.com>\n"
 | 
				
			||||||
| 
						 | 
					@ -1139,8 +1139,8 @@ msgstr ""
 | 
				
			||||||
"नाव> label=<ladspa प्लगइन लेबल> control=<इंपुट कंट्रोल मुल्यांची स्वल्पविराम विभाजीत "
 | 
					"नाव> label=<ladspa प्लगइन लेबल> control=<इंपुट कंट्रोल मुल्यांची स्वल्पविराम विभाजीत "
 | 
				
			||||||
"सूची>"
 | 
					"सूची>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1203,14 +1203,14 @@ msgstr "@HOSTNAME@ वरील ऑडिओ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1561,11 +1561,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] अवैध लॉग लक्ष्य '%s'."
 | 
					msgstr "[%s:%u] अवैध लॉग लक्ष्य '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "आंतरीक ऑडिओ"
 | 
					msgstr "आंतरीक ऑडिओ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "मोडेम"
 | 
					msgstr "मोडेम"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										48
									
								
								po/nl.po
									
										
									
									
									
								
							
							
						
						
									
										48
									
								
								po/nl.po
									
										
									
									
									
								
							| 
						 | 
					@ -9,9 +9,9 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-11-17 18:19+0000\n"
 | 
					"PO-Revision-Date: 2021-03-30 23:01+0000\n"
 | 
				
			||||||
"Last-Translator: Philip Goto <philip.goto@gmail.com>\n"
 | 
					"Last-Translator: Pjotr Vertaalt <pjotrvertaalt@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Dutch <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Dutch <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
"pulseaudio/pulseaudio/nl/>\n"
 | 
					"pulseaudio/pulseaudio/nl/>\n"
 | 
				
			||||||
"Language: nl\n"
 | 
					"Language: nl\n"
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ msgstr ""
 | 
				
			||||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
					"Content-Type: text/plain; charset=UTF-8\n"
 | 
				
			||||||
"Content-Transfer-Encoding: \n"
 | 
					"Content-Transfer-Encoding: \n"
 | 
				
			||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
 | 
					"Plural-Forms: nplurals=2; plural=n != 1;\n"
 | 
				
			||||||
"X-Generator: Weblate 4.14.2\n"
 | 
					"X-Generator: Weblate 4.5.2\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -1122,8 +1122,8 @@ msgstr ""
 | 
				
			||||||
"channel_map=<kanalenkaart> autoloaded=<ingesteld indien deze module "
 | 
					"channel_map=<kanalenkaart> autoloaded=<ingesteld indien deze module "
 | 
				
			||||||
"automatisch wordt geladen> use_volume_sharing=<ja of nee> "
 | 
					"automatisch wordt geladen> use_volume_sharing=<ja of nee> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "FFT-gebaseerd mengpaneel op %s"
 | 
					msgstr "FFT-gebaseerd mengpaneel op %s"
 | 
				
			||||||
| 
						 | 
					@ -1190,14 +1190,14 @@ msgstr "Geluid op @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunnel voor %s@%s"
 | 
					msgstr "Tunnel voor %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunnel naar %s/%s"
 | 
					msgstr "Tunnel naar %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1546,11 +1546,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Ongeldig logboekdoel."
 | 
					msgstr "Ongeldig logboekdoel."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Ingebouwde audio"
 | 
					msgstr "Ingebouwde audio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2237,11 +2237,11 @@ msgstr "NUMERIEK-NIVEAU"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:79
 | 
					#: src/utils/pacmd.c:79
 | 
				
			||||||
msgid "FRAMES"
 | 
					msgid "FRAMES"
 | 
				
			||||||
msgstr "FRAMES"
 | 
					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 "ONTVANGER BERICHT [PARAMETERS_BERICHT]"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:82
 | 
					#: src/utils/pacmd.c:82
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2342,9 +2342,9 @@ msgid "Failed to get server information: %s"
 | 
				
			||||||
msgstr "Serverinformatie verkrijgen mislukte: %s"
 | 
					msgstr "Serverinformatie verkrijgen mislukte: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:224 src/utils/pactl.c:236
 | 
					#: src/utils/pactl.c:224 src/utils/pactl.c:236
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "%s\n"
 | 
					msgid "%s\n"
 | 
				
			||||||
msgstr "%s\n"
 | 
					msgstr "%s %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:281
 | 
					#: src/utils/pactl.c:281
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -2416,7 +2416,7 @@ msgstr "Mic"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:338
 | 
					#: src/utils/pactl.c:338
 | 
				
			||||||
msgid "Handset"
 | 
					msgid "Handset"
 | 
				
			||||||
msgstr "Telefoon"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:339
 | 
					#: src/utils/pactl.c:339
 | 
				
			||||||
msgid "Earpiece"
 | 
					msgid "Earpiece"
 | 
				
			||||||
| 
						 | 
					@ -2879,7 +2879,7 @@ msgstr "bron"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2167
 | 
					#: src/utils/pactl.c:2167
 | 
				
			||||||
msgid "sink-input"
 | 
					msgid "sink-input"
 | 
				
			||||||
msgstr "afvoerinvoer"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2170
 | 
					#: src/utils/pactl.c:2170
 | 
				
			||||||
msgid "source-output"
 | 
					msgid "source-output"
 | 
				
			||||||
| 
						 | 
					@ -2895,7 +2895,7 @@ msgstr "cliënt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2179
 | 
					#: src/utils/pactl.c:2179
 | 
				
			||||||
msgid "sample-cache"
 | 
					msgid "sample-cache"
 | 
				
			||||||
msgstr "voorbeeldcache"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2182
 | 
					#: src/utils/pactl.c:2182
 | 
				
			||||||
msgid "server"
 | 
					msgid "server"
 | 
				
			||||||
| 
						 | 
					@ -3017,9 +3017,9 @@ msgstr ""
 | 
				
			||||||
"Gelinkt met libpulse %s\n"
 | 
					"Gelinkt met libpulse %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2751
 | 
					#: src/utils/pactl.c:2751
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "Invalid format value '%s'"
 | 
					msgid "Invalid format value '%s'"
 | 
				
			||||||
msgstr "Ongeldige formaatwaarde ‘%s’"
 | 
					msgstr "Ongeldige stroomnaam ‘%s’"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2778
 | 
					#: src/utils/pactl.c:2778
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3103,16 +3103,18 @@ msgid "You have to specify a source name"
 | 
				
			||||||
msgstr "U dient een bronnaam op te geven"
 | 
					msgstr "U dient een bronnaam op te geven"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2998 src/utils/pactl.c:3076
 | 
					#: src/utils/pactl.c:2998 src/utils/pactl.c:3076
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify a sink name/index"
 | 
					msgid "You have to specify a sink name/index"
 | 
				
			||||||
msgstr "U dient een afvoernaam/-index op te geven"
 | 
					msgstr "U dient een afvoernaam op te geven"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3008
 | 
					#: src/utils/pactl.c:3008
 | 
				
			||||||
msgid "You have to specify a sink name/index and a volume"
 | 
					msgid "You have to specify a sink name/index and a volume"
 | 
				
			||||||
msgstr "U dient een afvoernaam/index en een volume op te geven"
 | 
					msgstr "U dient een afvoernaam/index en een volume op te geven"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
					#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid "You have to specify a source name/index"
 | 
					msgid "You have to specify a source name/index"
 | 
				
			||||||
msgstr "U dient een bronnaam/-index op te geven"
 | 
					msgstr "U dient een bronnaam op te geven"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3031
 | 
					#: src/utils/pactl.c:3031
 | 
				
			||||||
msgid "You have to specify a source name/index and a volume"
 | 
					msgid "You have to specify a source name/index and a volume"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										46
									
								
								po/nn.po
									
										
									
									
									
								
							
							
						
						
									
										46
									
								
								po/nn.po
									
										
									
									
									
								
							| 
						 | 
					@ -7,7 +7,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: \n"
 | 
					"Project-Id-Version: \n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-05-23 11:18+0000\n"
 | 
					"PO-Revision-Date: 2022-05-23 11:18+0000\n"
 | 
				
			||||||
"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
 | 
					"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
 | 
				
			||||||
"Language-Team: Norwegian Nynorsk <https://translate.fedoraproject.org/"
 | 
					"Language-Team: Norwegian Nynorsk <https://translate.fedoraproject.org/"
 | 
				
			||||||
| 
						 | 
					@ -1122,8 +1122,8 @@ msgstr ""
 | 
				
			||||||
"channels=<talet på kanalar> channel_map=<kanaldefinisjon> autoloaded=<vel "
 | 
					"channels=<talet på kanalar> channel_map=<kanaldefinisjon> autoloaded=<vel "
 | 
				
			||||||
"dette viss modulen vert lasta automatisk> use_volume_sharing=<yes eller no> "
 | 
					"dette viss modulen vert lasta automatisk> use_volume_sharing=<yes eller no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "FFT-basert lydbalansekontroll på %s"
 | 
					msgstr "FFT-basert lydbalansekontroll på %s"
 | 
				
			||||||
| 
						 | 
					@ -1190,14 +1190,14 @@ msgstr "Lyd på @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunell for %s@%s"
 | 
					msgstr "Tunell for %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunell til %s/%s"
 | 
					msgstr "Tunell til %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1548,11 +1548,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Ugyldig loggmål."
 | 
					msgstr "Ugyldig loggmål."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Innebygd lyd"
 | 
					msgstr "Innebygd lyd"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1946,8 +1946,8 @@ msgstr ""
 | 
				
			||||||
"      --version                         Vis versjonsinformasjon.\n"
 | 
					"      --version                         Vis versjonsinformasjon.\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -r, --record                          Opprett tilkopling for lydopptak.\n"
 | 
					"  -r, --record                          Opprett tilkopling for lydopptak.\n"
 | 
				
			||||||
"  -p, --playback                        Opprett tilkopling for "
 | 
					"  -p, --playback                        Opprett tilkopling for lydavspeling."
 | 
				
			||||||
"lydavspeling.\n"
 | 
					"\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -v, --verbose                         Vis meir detaljerte meldingar.\n"
 | 
					"  -v, --verbose                         Vis meir detaljerte meldingar.\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -1955,14 +1955,14 @@ msgstr ""
 | 
				
			||||||
"  -d, --device=EINING                   Namnet på sluket/kjelda å kopla til. "
 | 
					"  -d, --device=EINING                   Namnet på sluket/kjelda å kopla til. "
 | 
				
			||||||
"Du kan bruka namna @DEFAULT_SINK@, @DEFAULT_SOURCE@ og @DEFAULT_MONITOR@ for "
 | 
					"Du kan bruka namna @DEFAULT_SINK@, @DEFAULT_SOURCE@ og @DEFAULT_MONITOR@ for "
 | 
				
			||||||
"å velja standard sluk/kjelde/avlyttar.\n"
 | 
					"å velja standard sluk/kjelde/avlyttar.\n"
 | 
				
			||||||
"  -n, --client-name=NAMN                Kva klienten skal kallast på "
 | 
					"  -n, --client-name=NAMN                Kva klienten skal kallast på tenaren."
 | 
				
			||||||
"tenaren.\n"
 | 
					"\n"
 | 
				
			||||||
"      --stream-name=NAMN                Kva straumen skal kallast på "
 | 
					"      --stream-name=NAMN                Kva straumen skal kallast på tenaren."
 | 
				
			||||||
"tenaren.\n"
 | 
					"\n"
 | 
				
			||||||
"      --volume=LYDSTYRKE                Vel startlydstyrke (lineær). "
 | 
					"      --volume=LYDSTYRKE                Vel startlydstyrke (lineær). Verdiar:"
 | 
				
			||||||
"Verdiar: 0–65536.\n"
 | 
					" 0–65536.\n"
 | 
				
			||||||
"      --rate=SAMPLINGSRATE              Samplingsrate i Hz (standard: "
 | 
					"      --rate=SAMPLINGSRATE              Samplingsrate i Hz (standard: 44100)."
 | 
				
			||||||
"44100).\n"
 | 
					"\n"
 | 
				
			||||||
"      --format=SAMPLEFORMAT             Samplingsformat. Sjå\n"
 | 
					"      --format=SAMPLEFORMAT             Samplingsformat. Sjå\n"
 | 
				
			||||||
"                                        https://www.freedesktop.org/wiki/"
 | 
					"                                        https://www.freedesktop.org/wiki/"
 | 
				
			||||||
"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
					"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
				
			||||||
| 
						 | 
					@ -1983,8 +1983,8 @@ msgstr ""
 | 
				
			||||||
"frå\n"
 | 
					"frå\n"
 | 
				
			||||||
"                                        sluket/kjelda som straumen vert "
 | 
					"                                        sluket/kjelda som straumen vert "
 | 
				
			||||||
"kopla til.\n"
 | 
					"kopla til.\n"
 | 
				
			||||||
"      --no-remix                        Ikkje oppmiks eller nedmiks "
 | 
					"      --no-remix                        Ikkje oppmiks eller nedmiks kanalar."
 | 
				
			||||||
"kanalar.\n"
 | 
					"\n"
 | 
				
			||||||
"      --no-remap                        Definer kanalar etter indeks, ikkje "
 | 
					"      --no-remap                        Definer kanalar etter indeks, ikkje "
 | 
				
			||||||
"etter namn.\n"
 | 
					"etter namn.\n"
 | 
				
			||||||
"      --latency=BYTE                    Be om valt latenstid, målt i byte.\n"
 | 
					"      --latency=BYTE                    Be om valt latenstid, målt i byte.\n"
 | 
				
			||||||
| 
						 | 
					@ -1998,8 +1998,8 @@ msgstr ""
 | 
				
			||||||
"verdi.\n"
 | 
					"verdi.\n"
 | 
				
			||||||
"      --raw                             Ta opp / spel av rå PCM-data.\n"
 | 
					"      --raw                             Ta opp / spel av rå PCM-data.\n"
 | 
				
			||||||
"      --passthrough                     Vidaresend lyddata.\n"
 | 
					"      --passthrough                     Vidaresend lyddata.\n"
 | 
				
			||||||
"      --file-format[=FFORMAT]           Ta opp / spel av formatert PCM-"
 | 
					"      --file-format[=FFORMAT]           Ta opp / spel av formatert PCM-data."
 | 
				
			||||||
"data.\n"
 | 
					"\n"
 | 
				
			||||||
"      --list-file-formats               Vis tilgjengelege filformat.\n"
 | 
					"      --list-file-formats               Vis tilgjengelege filformat.\n"
 | 
				
			||||||
"      --monitor-stream=INDEKS           Ta opp frå sluk-inndata med indeksen "
 | 
					"      --monitor-stream=INDEKS           Ta opp frå sluk-inndata med indeksen "
 | 
				
			||||||
"INDEKS.\n"
 | 
					"INDEKS.\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/oc.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/oc.po
									
										
									
									
									
								
							| 
						 | 
					@ -13,7 +13,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio trunk\n"
 | 
					"Project-Id-Version: pulseaudio trunk\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2016-10-12 22:20+0200\n"
 | 
					"PO-Revision-Date: 2016-10-12 22:20+0200\n"
 | 
				
			||||||
"Last-Translator: Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>\n"
 | 
					"Last-Translator: Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>\n"
 | 
				
			||||||
"Language-Team: Tot En Òc\n"
 | 
					"Language-Team: Tot En Òc\n"
 | 
				
			||||||
| 
						 | 
					@ -1051,8 +1051,8 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1119,14 +1119,14 @@ msgstr "Audio sus @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1474,11 +1474,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Àudio integrat"
 | 
					msgstr "Àudio integrat"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modèm"
 | 
					msgstr "Modèm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/or.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/or.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx.or\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx.or\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:55+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:55+0000\n"
 | 
				
			||||||
"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
 | 
					"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
 | 
				
			||||||
"Language-Team: Oriya <oriya-it@googlegroups.com>\n"
 | 
					"Language-Team: Oriya <oriya-it@googlegroups.com>\n"
 | 
				
			||||||
| 
						 | 
					@ -1164,8 +1164,8 @@ msgstr ""
 | 
				
			||||||
"channel_map=<ଚ୍ୟାନେଲ ମ୍ୟାପ> plugin=<ladspa ପ୍ଲଗଇନ ନାମ> label=<ladspa ପ୍ଲଗଇନ "
 | 
					"channel_map=<ଚ୍ୟାନେଲ ମ୍ୟାପ> plugin=<ladspa ପ୍ଲଗଇନ ନାମ> label=<ladspa ପ୍ଲଗଇନ "
 | 
				
			||||||
"ନାମପଟି> control=<କମା ଦ୍ୱାରା ପୃଥକ ନିବେଶ ନିୟନ୍ତ୍ରଣ ମୂଲ୍ୟ ତାଲିକା>"
 | 
					"ନାମପଟି> control=<କମା ଦ୍ୱାରା ପୃଥକ ନିବେଶ ନିୟନ୍ତ୍ରଣ ମୂଲ୍ୟ ତାଲିକା>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1227,14 +1227,14 @@ msgstr "@HOSTNAME@ ରେ ଧ୍ୱନି"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1584,11 +1584,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] ଅବୈଧ ଲଗ ଲକ୍ଷ୍ଯସ୍ଥଳ '%s'।"
 | 
					msgstr "[%s:%u] ଅବୈଧ ଲଗ ଲକ୍ଷ୍ଯସ୍ଥଳ '%s'।"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "ଆଭ୍ୟନ୍ତରୀଣ ଧ୍ୱନି"
 | 
					msgstr "ଆଭ୍ୟନ୍ତରୀଣ ଧ୍ୱନି"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "ମଡେମ"
 | 
					msgstr "ମଡେମ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/pa.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/pa.po
									
										
									
									
									
								
							| 
						 | 
					@ -11,7 +11,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx.pa\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx.pa\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:55+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:55+0000\n"
 | 
				
			||||||
"Last-Translator: Jaswinder Singh <jsingh@redhat.com>\n"
 | 
					"Last-Translator: Jaswinder Singh <jsingh@redhat.com>\n"
 | 
				
			||||||
"Language-Team: Punjabi/Panjabi <kde-i18n-doc@kde.org>\n"
 | 
					"Language-Team: Punjabi/Panjabi <kde-i18n-doc@kde.org>\n"
 | 
				
			||||||
| 
						 | 
					@ -1135,8 +1135,8 @@ msgstr ""
 | 
				
			||||||
"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
					"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
				
			||||||
"input control values>"
 | 
					"input control values>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1199,14 +1199,14 @@ msgstr "@HOSTNAME@ ਉੱਪਰ ਆਡੀਓ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1557,11 +1557,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] ਗਲਤ ਲਾਗ ਟਾਰਗੇਟ '%s'।"
 | 
					msgstr "[%s:%u] ਗਲਤ ਲਾਗ ਟਾਰਗੇਟ '%s'।"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "ਅੰਦਰੂਨੀ ਆਡੀਓ"
 | 
					msgstr "ਅੰਦਰੂਨੀ ਆਡੀਓ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "ਮਾਡਮ"
 | 
					msgstr "ਮਾਡਮ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/pl.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/pl.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-05-21 10:06+0000\n"
 | 
					"PO-Revision-Date: 2022-05-21 10:06+0000\n"
 | 
				
			||||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 | 
					"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Polish <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Polish <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -1151,8 +1151,8 @@ msgstr ""
 | 
				
			||||||
"kanałów> autoloaded=<należy ustawić, jeśli ten moduł jest automatycznie "
 | 
					"kanałów> autoloaded=<należy ustawić, jeśli ten moduł jest automatycznie "
 | 
				
			||||||
"uruchamiany> use_volume_sharing=<yes lub no> "
 | 
					"uruchamiany> use_volume_sharing=<yes lub no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "Korektor graficzny na podstawie FFT na %s"
 | 
					msgstr "Korektor graficzny na podstawie FFT na %s"
 | 
				
			||||||
| 
						 | 
					@ -1219,14 +1219,14 @@ msgstr "Dźwięk na @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunel dla %s@%s"
 | 
					msgstr "Tunel dla %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunel do %s/%s"
 | 
					msgstr "Tunel do %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1576,11 +1576,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Nieprawidłowy dziennik docelowy."
 | 
					msgstr "Nieprawidłowy dziennik docelowy."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Wbudowany dźwięk"
 | 
					msgstr "Wbudowany dźwięk"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										118
									
								
								po/pt_BR.po
									
										
									
									
									
								
							
							
						
						
									
										118
									
								
								po/pt_BR.po
									
										
									
									
									
								
							| 
						 | 
					@ -10,8 +10,8 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2025-05-10 22:55+0000\n"
 | 
					"PO-Revision-Date: 2021-08-04 08:04+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.11.3\n"
 | 
					"X-Generator: Weblate 4.7.2\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -193,12 +193,13 @@ msgid "--fail expects boolean argument"
 | 
				
			||||||
msgstr "--fail espera argumento booleano"
 | 
					msgstr "--fail espera argumento booleano"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:265
 | 
					#: src/daemon/cmdline.c:265
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					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 um argumento em nível de log (seja numérico na faixa de "
 | 
					"--log-level espera um argumento em nível de log (seja numérico na faixa de "
 | 
				
			||||||
"0..4 seja algum entre error, warn, notice, info, debug)."
 | 
					"0..4 seja algum entre debug, info, notice, warn, error)."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:277
 | 
					#: src/daemon/cmdline.c:277
 | 
				
			||||||
msgid "--high-priority expects boolean argument"
 | 
					msgid "--high-priority expects boolean argument"
 | 
				
			||||||
| 
						 | 
					@ -1161,8 +1162,8 @@ msgstr ""
 | 
				
			||||||
"canais> autoloaded=<define se este módulo está sendo carregado "
 | 
					"canais> autoloaded=<define se este módulo está sendo carregado "
 | 
				
			||||||
"automaticamente> use_volume_sharing=<yes ou no> "
 | 
					"automaticamente> use_volume_sharing=<yes ou no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "Equalizador baseado em FFT em %s"
 | 
					msgstr "Equalizador baseado em FFT em %s"
 | 
				
			||||||
| 
						 | 
					@ -1229,14 +1230,14 @@ msgstr "Áudio em @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Túnel para %s@%s"
 | 
					msgstr "Túnel para %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Túnel para %s/%s"
 | 
					msgstr "Túnel para %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1586,11 +1587,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Alvo do log inválido."
 | 
					msgstr "Alvo do log inválido."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Áudio interno"
 | 
					msgstr "Áudio interno"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1908,7 +1909,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
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"%s\n"
 | 
					"%s\n"
 | 
				
			||||||
| 
						 | 
					@ -1987,58 +1988,62 @@ 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 para se conectar\n"
 | 
					"  -s, --server=SERVIDOR                 O nome do servidor a conectar-se\n"
 | 
				
			||||||
"  -d, --device=DISPOSITIVO              O nome do destino/fonte para se "
 | 
					"  -d, --device=DISPOSITIVO              O nome do destino/fonte a conectar-"
 | 
				
			||||||
"conectar\n"
 | 
					"se\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 o volume (linear) inicial "
 | 
					"      --volume=VOLUME                   Especifica a faixa (linear) inicial\n"
 | 
				
			||||||
"no intervalo 0...65536\n"
 | 
					"                                        de volume no intervalo 0...65536\n"
 | 
				
			||||||
"      --rate=TAXA_DE_AMOSTRAGEM         Taxa de amostragem em Hz (padrão: "
 | 
					"      --rate=TAXA_DE_AMOSTRAGEM         Taxa de amostragem, Hz (padrão "
 | 
				
			||||||
"44100)\n"
 | 
					"44100)\n"
 | 
				
			||||||
"      --format=FORMATO_DE_AMOSTRAGEM    Formato da amostragem, veja\n"
 | 
					"      --format=FORMATO_DE_AMOSTRAGEM    Tipo de 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, 2 "
 | 
					"      --channels=CANAIS                 O número de canais, 1 para mono,\n"
 | 
				
			||||||
"para estéreo\n"
 | 
					"                                        2 para estéreo (padrão: 2)\n"
 | 
				
			||||||
"                                        (padrão: 2)\n"
 | 
					"      --channel-map=MAPA_DE_CANAIS      Mapeamento de canais a ser usado no\n"
 | 
				
			||||||
"      --channel-map=MAPA_DE_CANAIS      Mapeamento de canais para usar em "
 | 
					"                                        lugar do padrão\n"
 | 
				
			||||||
"vez do padrão\n"
 | 
					"      --fix-format                      Obtém o formato da amostragem do\n"
 | 
				
			||||||
"      --fix-format                      Obtém o formato da amostragem do "
 | 
					"                                        destino/fonte onde o fluxo está\n"
 | 
				
			||||||
"destino/fonte onde\n"
 | 
					"                                        sendo conectado.\n"
 | 
				
			||||||
"                                        o fluxo está sendo conectado.\n"
 | 
					"      --fix-rate                        Obtém a taxa de amostragem do\n"
 | 
				
			||||||
"      --fix-rate                        Obtém a taxa de amostragem do "
 | 
					"                                        destino/fonte onde o fluxo está\n"
 | 
				
			||||||
"destino/fonte onde\n"
 | 
					"                                        sendo conectado.\n"
 | 
				
			||||||
"                                        o fluxo está sendo conectado.\n"
 | 
					"      --fix-channels                    Obtém o número de canais e o mapa "
 | 
				
			||||||
"      --fix-channels                    Obtém o número de canais e o mapa de "
 | 
					"de\n"
 | 
				
			||||||
"canais do destino\n"
 | 
					"                                        canais do destino onde o fluxo está\n"
 | 
				
			||||||
"                                        onde o fluxo está sendo conectado.\n"
 | 
					"                                        sendo conectado.\n"
 | 
				
			||||||
"      --no-remix                        Não faz upmix nem downmix dos canais."
 | 
					"      --no-remix                        Não faz upmix nem downmix dos "
 | 
				
			||||||
"\n"
 | 
					"canais.\n"
 | 
				
			||||||
"      --no-remap                        Mapeia os canais por índice em vez "
 | 
					"      --no-remap                        Mapeia os canais por índice em vez\n"
 | 
				
			||||||
"de nome.\n"
 | 
					"                                        de nome\n"
 | 
				
			||||||
"      --latency=BYTES                   Requisita a latência especificada em "
 | 
					"      --latency=BYTES                   Requisita a latência especificada "
 | 
				
			||||||
 | 
					"em\n"
 | 
				
			||||||
 | 
					"                                        bytes.\n"
 | 
				
			||||||
 | 
					"      --process-time=BYTES              Requisita o tempo de processo\n"
 | 
				
			||||||
 | 
					"                                        especificado por requisições em "
 | 
				
			||||||
"bytes.\n"
 | 
					"bytes.\n"
 | 
				
			||||||
"      --process-time=BYTES              Requisita o tempo de processo por "
 | 
					"      --latency-msec=MSEGUNDOS          Requisita a latência especificada "
 | 
				
			||||||
"requisições em bytes.\n"
 | 
					"em\n"
 | 
				
			||||||
"      --latency-msec=MSEGUNDOS          Requisita a latência especificada em "
 | 
					"                                        milissegundos.\n"
 | 
				
			||||||
"milissegundos.\n"
 | 
					"      --process-time-msec=MSEGUNDOS     Requisita a o tempo do processo por\n"
 | 
				
			||||||
"      --process-time-msec=MSEGUNDOS     Requisita o tempo de processo por "
 | 
					"                                        requisição em milissegundos.\n"
 | 
				
			||||||
"requisições em milissegundos.\n"
 | 
					 | 
				
			||||||
"      --property=PROPRIEDADE=VALOR      Define a propriedade especificada "
 | 
					"      --property=PROPRIEDADE=VALOR      Define a propriedade especificada "
 | 
				
			||||||
"para o valor especificado.\n"
 | 
					"para\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 formatados."
 | 
					"      --file-format[=FORMATO_ARQUIVO]   Grava/reproduz dados PCM "
 | 
				
			||||||
"\n"
 | 
					"formatados.\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 ÍNDICE.\n"
 | 
					"í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."
 | 
				
			||||||
| 
						 | 
					@ -2871,12 +2876,11 @@ 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 ""
 | 
					msgstr "a resposta da mensagem list-handlers não pôde ser tratada corretamente"
 | 
				
			||||||
"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 de list-handlers não é um array JSON"
 | 
					msgstr "a resposta da mensagem list-handlers não é um array JSON"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1729
 | 
					#: src/utils/pactl.c:1729
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3048,7 +3052,7 @@ msgstr ""
 | 
				
			||||||
"padrão.\n"
 | 
					"padrão.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2664
 | 
					#: src/utils/pactl.c:2664
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"  -h, --help                            Show this help\n"
 | 
					"  -h, --help                            Show this help\n"
 | 
				
			||||||
| 
						 | 
					@ -3065,9 +3069,7 @@ 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"
 | 
				
			||||||
"  -f, --format=FORMATO                  O formato da saída. \"normal\" ou "
 | 
					"  -s, --server=SERVIDOR                 Nome do servidor a ser conectado\n"
 | 
				
			||||||
"\"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"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3083,9 +3085,9 @@ msgstr ""
 | 
				
			||||||
"Vinculado com libpulse %s\n"
 | 
					"Vinculado com libpulse %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2751
 | 
					#: src/utils/pactl.c:2751
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid "Invalid format value '%s'"
 | 
					msgid "Invalid format value '%s'"
 | 
				
			||||||
msgstr "Valor de formato “%s” inválido"
 | 
					msgstr "Nome do fluxo “%s” inválido"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2778
 | 
					#: src/utils/pactl.c:2778
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@ msgid ""
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/new\n"
 | 
					"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/new\n"
 | 
				
			||||||
"POT-Creation-Date: 2022-06-18 09:49+0300\n"
 | 
					"POT-Creation-Date: 2022-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
					"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
				
			||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
					"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
				
			||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
					"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
				
			||||||
| 
						 | 
					@ -954,7 +954,7 @@ msgid ""
 | 
				
			||||||
"is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097 src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1094 src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1008,12 +1008,12 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370 src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-sink-new.c:356 src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715 src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-sink-new.c:697 src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1348,11 +1348,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										458
									
								
								po/ru.po
									
										
									
									
									
								
							
							
						
						
									
										458
									
								
								po/ru.po
									
										
									
									
									
								
							| 
						 | 
					@ -9,18 +9,18 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2025-05-11 00:38+0000\n"
 | 
					"PO-Revision-Date: 2022-05-23 11:18+0000\n"
 | 
				
			||||||
"Last-Translator: \"Sergey A.\" <Ser82-png@yandex.ru>\n"
 | 
					"Last-Translator: Sergey A. <sw@atrus.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"
 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
"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=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"
 | 
				
			||||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 | 
					"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 | 
				
			||||||
"X-Generator: Weblate 5.11.3\n"
 | 
					"X-Generator: Weblate 4.12.2\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -109,8 +109,8 @@ msgstr ""
 | 
				
			||||||
"      --start                           Запустить демон, если ещё не "
 | 
					"      --start                           Запустить демон, если ещё не "
 | 
				
			||||||
"запущен\n"
 | 
					"запущен\n"
 | 
				
			||||||
"  -k  --kill                            Убить процесс запущенного демона\n"
 | 
					"  -k  --kill                            Убить процесс запущенного демона\n"
 | 
				
			||||||
"      --check                           Проверить, запущен ли демон "
 | 
					"      --check                           Проверить, запущен ли демон ("
 | 
				
			||||||
"(возвращает только код завершения)\n"
 | 
					"возвращает только код завершения)\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"ПАРАМЕТРЫ:\n"
 | 
					"ПАРАМЕТРЫ:\n"
 | 
				
			||||||
"      --system[=BOOL]                   Запустить в общесистемном режиме\n"
 | 
					"      --system[=BOOL]                   Запустить в общесистемном режиме\n"
 | 
				
			||||||
| 
						 | 
					@ -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-loader."
 | 
					msgstr "Не удалось добавить новый загрузчик bind-now."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:265
 | 
					#: src/daemon/main.c:265
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -1063,7 +1063,7 @@ msgstr "Хендс-фри"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:1971
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:1971
 | 
				
			||||||
msgid "Headphone"
 | 
					msgid "Headphone"
 | 
				
			||||||
msgstr "Наушники"
 | 
					msgstr "Наушник"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/bluetooth/module-bluez5-device.c:1977 src/utils/pactl.c:347
 | 
					#: src/modules/bluetooth/module-bluez5-device.c:1977 src/utils/pactl.c:347
 | 
				
			||||||
msgid "Portable"
 | 
					msgid "Portable"
 | 
				
			||||||
| 
						 | 
					@ -1170,8 +1170,8 @@ msgstr ""
 | 
				
			||||||
"загружен автоматически> use_volume_sharing=<использовать общий уровень "
 | 
					"загружен автоматически> use_volume_sharing=<использовать общий уровень "
 | 
				
			||||||
"громкости (yes или no)> "
 | 
					"громкости (yes или no)> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "Эквалайзер на основе БПФ на %s"
 | 
					msgstr "Эквалайзер на основе БПФ на %s"
 | 
				
			||||||
| 
						 | 
					@ -1238,14 +1238,18 @@ msgstr "Аудио на @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
 | 
					#: src/modules/module-tunnel-sink-new.c:320
 | 
				
			||||||
 | 
					#: src/modules/module-tunnel-source-new.c:305
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Туннель для %s@%s"
 | 
					msgstr "Туннель для %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
 | 
					#: src/modules/module-tunnel-sink-new.c:564
 | 
				
			||||||
 | 
					#: src/modules/module-tunnel-source-new.c:540
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Туннель к %s/%s"
 | 
					msgstr "Туннель к %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1268,9 +1272,10 @@ msgstr ""
 | 
				
			||||||
"приёмника для фильтрации> sink_master=<имя приёмника для фильтрации> "
 | 
					"приёмника для фильтрации> sink_master=<имя приёмника для фильтрации> "
 | 
				
			||||||
"format=<формат отсчётов> rate=<частота дискретизации> channels=<число "
 | 
					"format=<формат отсчётов> rate=<частота дискретизации> channels=<число "
 | 
				
			||||||
"каналов> channel_map=<схема каналов> use_volume_sharing=<использовать общий "
 | 
					"каналов> channel_map=<схема каналов> use_volume_sharing=<использовать общий "
 | 
				
			||||||
"уровень (yes или no)> force_flat_volume=<yes или no> hrir=/path/to/left_hrir."
 | 
					"уровень (yes или no)> force_flat_volume=<yes или no> hrir=/path/to/"
 | 
				
			||||||
"wav hrir_left=/path/to/left_hrir.wav hrir_right=/path/to/optional/right_hrir."
 | 
					"left_hrir.wav hrir_left=/path/to/left_hrir.wav hrir_right=/path/to/optional/"
 | 
				
			||||||
"wav autoloaded=<установлено, если этот модуль загружается автоматически> "
 | 
					"right_hrir.wav autoloaded=<установлено, если этот модуль загружается "
 | 
				
			||||||
 | 
					"автоматически> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/raop/module-raop-discover.c:295
 | 
					#: src/modules/raop/module-raop-discover.c:295
 | 
				
			||||||
msgid "Unknown device model"
 | 
					msgid "Unknown device model"
 | 
				
			||||||
| 
						 | 
					@ -1597,11 +1602,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Недопустимый журнал."
 | 
					msgstr "Недопустимый журнал."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Встроенное аудио"
 | 
					msgstr "Встроенное аудио"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Модем"
 | 
					msgstr "Модем"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2037,8 +2042,8 @@ msgstr ""
 | 
				
			||||||
"байтах.\n"
 | 
					"байтах.\n"
 | 
				
			||||||
"      --process-time=BYTES              Запросить указанное время процесса "
 | 
					"      --process-time=BYTES              Запросить указанное время процесса "
 | 
				
			||||||
"на запрос в байтах.\n"
 | 
					"на запрос в байтах.\n"
 | 
				
			||||||
"      --latency-msec=MSEC               Запросить указанную задержку в "
 | 
					"      --latency-msec=MSEC               Запросить указанную задержку в мсек."
 | 
				
			||||||
"мсек.\n"
 | 
					"\n"
 | 
				
			||||||
"      --process-time-msec=MSEC          Запросить указанное время процесса "
 | 
					"      --process-time-msec=MSEC          Запросить указанное время процесса "
 | 
				
			||||||
"на запрос в мсек.\n"
 | 
					"на запрос в мсек.\n"
 | 
				
			||||||
"      --property=PROPERTY=VALUE         Установить для указанного свойства "
 | 
					"      --property=PROPERTY=VALUE         Установить для указанного свойства "
 | 
				
			||||||
| 
						 | 
					@ -2090,7 +2095,7 @@ msgstr ""
 | 
				
			||||||
"Скомпилировано с libpulse %s\n"
 | 
					"Скомпилировано с libpulse %s\n"
 | 
				
			||||||
"Скомпоновано с libpulse %s\n"
 | 
					"Скомпоновано с libpulse %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:852 src/utils/pactl.c:2731
 | 
					#: src/utils/pacat.c:852 src/utils/pactl.c:2731 src/utils/pactl.c:2720
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Invalid client name '%s'"
 | 
					msgid "Invalid client name '%s'"
 | 
				
			||||||
msgstr "Недопустимое имя клиента «%s»"
 | 
					msgstr "Недопустимое имя клиента «%s»"
 | 
				
			||||||
| 
						 | 
					@ -2163,7 +2168,7 @@ msgstr ""
 | 
				
			||||||
"Предупреждение: указанная спецификация отсчётов будет заменена спецификацией "
 | 
					"Предупреждение: указанная спецификация отсчётов будет заменена спецификацией "
 | 
				
			||||||
"из файла."
 | 
					"из файла."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:1091 src/utils/pactl.c:2806
 | 
					#: src/utils/pacat.c:1091 src/utils/pactl.c:2806 src/utils/pactl.c:2794
 | 
				
			||||||
msgid "Failed to determine sample specification from file."
 | 
					msgid "Failed to determine sample specification from file."
 | 
				
			||||||
msgstr "Не удалось определить спецификацию отсчётов из файла."
 | 
					msgstr "Не удалось определить спецификацию отсчётов из файла."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2199,7 +2204,7 @@ msgstr "воспроизведения"
 | 
				
			||||||
msgid "Failed to set media name."
 | 
					msgid "Failed to set media name."
 | 
				
			||||||
msgstr "Не удалось установить имя потока."
 | 
					msgstr "Не удалось установить имя потока."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:1172 src/utils/pactl.c:3218
 | 
					#: src/utils/pacat.c:1172 src/utils/pactl.c:3218 src/utils/pactl.c:3206
 | 
				
			||||||
msgid "pa_mainloop_new() failed."
 | 
					msgid "pa_mainloop_new() failed."
 | 
				
			||||||
msgstr "Произошла ошибка при выполнении pa_mainloop_new()."
 | 
					msgstr "Произошла ошибка при выполнении pa_mainloop_new()."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2207,11 +2212,11 @@ msgstr "Произошла ошибка при выполнении pa_mainloop_
 | 
				
			||||||
msgid "io_new() failed."
 | 
					msgid "io_new() failed."
 | 
				
			||||||
msgstr "Произошла ошибка при выполнении io_new()."
 | 
					msgstr "Произошла ошибка при выполнении io_new()."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:1202 src/utils/pactl.c:3230
 | 
					#: src/utils/pacat.c:1202 src/utils/pactl.c:3230 src/utils/pactl.c:3218
 | 
				
			||||||
msgid "pa_context_new() failed."
 | 
					msgid "pa_context_new() failed."
 | 
				
			||||||
msgstr "Произошла ошибка при выполнении pa_context_new()."
 | 
					msgstr "Произошла ошибка при выполнении pa_context_new()."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:1210 src/utils/pactl.c:3236
 | 
					#: src/utils/pacat.c:1210 src/utils/pactl.c:3236 src/utils/pactl.c:3224
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "pa_context_connect() failed: %s"
 | 
					msgid "pa_context_connect() failed: %s"
 | 
				
			||||||
msgstr "Произошла ошибка при выполнении pa_context_connect(): %s"
 | 
					msgstr "Произошла ошибка при выполнении pa_context_connect(): %s"
 | 
				
			||||||
| 
						 | 
					@ -2220,21 +2225,22 @@ msgstr "Произошла ошибка при выполнении pa_context_c
 | 
				
			||||||
msgid "pa_context_rttime_new() failed."
 | 
					msgid "pa_context_rttime_new() failed."
 | 
				
			||||||
msgstr "Произошла ошибка при выполнении pa_context_rttime_new()."
 | 
					msgstr "Произошла ошибка при выполнении pa_context_rttime_new()."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:1223 src/utils/pactl.c:3241
 | 
					#: src/utils/pacat.c:1223 src/utils/pactl.c:3241 src/utils/pactl.c:3229
 | 
				
			||||||
msgid "pa_mainloop_run() failed."
 | 
					msgid "pa_mainloop_run() failed."
 | 
				
			||||||
msgstr "Произошла ошибка при выполнении pa_mainloop_run()."
 | 
					msgstr "Произошла ошибка при выполнении pa_mainloop_run()."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:51 src/utils/pactl.c:2643
 | 
					#: src/utils/pacmd.c:51 src/utils/pactl.c:2643 src/utils/pactl.c:2632
 | 
				
			||||||
msgid "NAME [ARGS ...]"
 | 
					msgid "NAME [ARGS ...]"
 | 
				
			||||||
msgstr "ИМЯ [АРГУМЕНТЫ ...]"
 | 
					msgstr "ИМЯ [АРГУМЕНТЫ ...]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:52 src/utils/pacmd.c:60 src/utils/pactl.c:2644
 | 
					#: src/utils/pacmd.c:52 src/utils/pacmd.c:60 src/utils/pactl.c:2644
 | 
				
			||||||
#: src/utils/pactl.c:2651 src/utils/pactl.c:2652
 | 
					#: src/utils/pactl.c:2651 src/utils/pactl.c:2652 src/utils/pactl.c:2633
 | 
				
			||||||
 | 
					#: src/utils/pactl.c:2640 src/utils/pactl.c:2641
 | 
				
			||||||
msgid "NAME|#N"
 | 
					msgid "NAME|#N"
 | 
				
			||||||
msgstr "ИМЯ|№"
 | 
					msgstr "ИМЯ|№"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:53 src/utils/pacmd.c:63 src/utils/pactl.c:2642
 | 
					#: src/utils/pacmd.c:53 src/utils/pacmd.c:63 src/utils/pactl.c:2642
 | 
				
			||||||
#: src/utils/pactl.c:2649
 | 
					#: src/utils/pactl.c:2649 src/utils/pactl.c:2631 src/utils/pactl.c:2638
 | 
				
			||||||
msgid "NAME"
 | 
					msgid "NAME"
 | 
				
			||||||
msgstr "ИМЯ"
 | 
					msgstr "ИМЯ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2247,6 +2253,7 @@ msgid "#N VOLUME"
 | 
				
			||||||
msgstr "№ ГРОМКОСТЬ"
 | 
					msgstr "№ ГРОМКОСТЬ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:56 src/utils/pacmd.c:70 src/utils/pactl.c:2646
 | 
					#: src/utils/pacmd.c:56 src/utils/pacmd.c:70 src/utils/pactl.c:2646
 | 
				
			||||||
 | 
					#: src/utils/pactl.c:2635
 | 
				
			||||||
msgid "NAME|#N 1|0"
 | 
					msgid "NAME|#N 1|0"
 | 
				
			||||||
msgstr "ИМЯ|№ 1|0"
 | 
					msgstr "ИМЯ|№ 1|0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2282,7 +2289,7 @@ msgstr "ПУТЬ"
 | 
				
			||||||
msgid "FILENAME SINK|#N"
 | 
					msgid "FILENAME SINK|#N"
 | 
				
			||||||
msgstr "ИМЯ_ФАЙЛА АУДИОПРИЁМНИК|№"
 | 
					msgstr "ИМЯ_ФАЙЛА АУДИОПРИЁМНИК|№"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:69 src/utils/pactl.c:2645
 | 
					#: src/utils/pacmd.c:69 src/utils/pactl.c:2645 src/utils/pactl.c:2634
 | 
				
			||||||
msgid "#N SINK|SOURCE"
 | 
					msgid "#N SINK|SOURCE"
 | 
				
			||||||
msgstr "№ АУДИОПРИЁМНИК|ИСТОЧНИК"
 | 
					msgstr "№ АУДИОПРИЁМНИК|ИСТОЧНИК"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2290,15 +2297,15 @@ msgstr "№ АУДИОПРИЁМНИК|ИСТОЧНИК"
 | 
				
			||||||
msgid "1|0"
 | 
					msgid "1|0"
 | 
				
			||||||
msgstr "1|0"
 | 
					msgstr "1|0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:72 src/utils/pactl.c:2647
 | 
					#: src/utils/pacmd.c:72 src/utils/pactl.c:2647 src/utils/pactl.c:2636
 | 
				
			||||||
msgid "CARD PROFILE"
 | 
					msgid "CARD PROFILE"
 | 
				
			||||||
msgstr "ПЛАТА ПРОФИЛЬ"
 | 
					msgstr "ПЛАТА ПРОФИЛЬ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:73 src/utils/pactl.c:2650
 | 
					#: src/utils/pacmd.c:73 src/utils/pactl.c:2650 src/utils/pactl.c:2639
 | 
				
			||||||
msgid "NAME|#N PORT"
 | 
					msgid "NAME|#N PORT"
 | 
				
			||||||
msgstr "ИМЯ|№ ПОРТ"
 | 
					msgstr "ИМЯ|№ ПОРТ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:74 src/utils/pactl.c:2658
 | 
					#: src/utils/pacmd.c:74 src/utils/pactl.c:2658 src/utils/pactl.c:2647
 | 
				
			||||||
msgid "CARD-NAME|CARD-#N PORT OFFSET"
 | 
					msgid "CARD-NAME|CARD-#N PORT OFFSET"
 | 
				
			||||||
msgstr "ИМЯ_ПЛАТЫ|№_ПЛАТЫ ПОРТ ЗАДЕРЖКА"
 | 
					msgstr "ИМЯ_ПЛАТЫ|№_ПЛАТЫ ПОРТ ЗАДЕРЖКА"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2314,7 +2321,7 @@ msgstr "ЧИСЛОВОЙ-УРОВЕНЬ"
 | 
				
			||||||
msgid "FRAMES"
 | 
					msgid "FRAMES"
 | 
				
			||||||
msgstr "КАДРОВ"
 | 
					msgstr "КАДРОВ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:80 src/utils/pactl.c:2659
 | 
					#: src/utils/pacmd.c:80 src/utils/pactl.c:2659 src/utils/pactl.c:2648
 | 
				
			||||||
msgid "RECIPIENT MESSAGE [MESSAGE_PARAMETERS]"
 | 
					msgid "RECIPIENT MESSAGE [MESSAGE_PARAMETERS]"
 | 
				
			||||||
msgstr "СООБЩЕНИЕ ПОЛУЧАТЕЛЯ [ПАРАМЕТРЫ_СООБЩЕНИЯ]"
 | 
					msgstr "СООБЩЕНИЕ ПОЛУЧАТЕЛЯ [ПАРАМЕТРЫ_СООБЩЕНИЯ]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2498,7 +2505,7 @@ msgstr "Гарнитура"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:339
 | 
					#: src/utils/pactl.c:339
 | 
				
			||||||
msgid "Earpiece"
 | 
					msgid "Earpiece"
 | 
				
			||||||
msgstr "Наушники-вкладыши"
 | 
					msgstr "Наушник"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:340
 | 
					#: src/utils/pactl.c:340
 | 
				
			||||||
msgid "SPDIF"
 | 
					msgid "SPDIF"
 | 
				
			||||||
| 
						 | 
					@ -3012,15 +3019,15 @@ msgstr "Получен сигнал для остановки (SIGINT), выхо
 | 
				
			||||||
msgid "Invalid volume specification"
 | 
					msgid "Invalid volume specification"
 | 
				
			||||||
msgstr "Недопустимое значение громкости"
 | 
					msgstr "Недопустимое значение громкости"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2581
 | 
					#: src/utils/pactl.c:2581 src/utils/pactl.c:2570
 | 
				
			||||||
msgid "Volume outside permissible range.\n"
 | 
					msgid "Volume outside permissible range.\n"
 | 
				
			||||||
msgstr "Указанная громкость выходит за границы разрешённого диапазона.\n"
 | 
					msgstr "Указанная громкость выходит за границы разрешённого диапазона.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2594
 | 
					#: src/utils/pactl.c:2594 src/utils/pactl.c:2583
 | 
				
			||||||
msgid "Invalid number of volume specifications.\n"
 | 
					msgid "Invalid number of volume specifications.\n"
 | 
				
			||||||
msgstr "Недопустимое количество значений громкости.\n"
 | 
					msgstr "Недопустимое количество значений громкости.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2606
 | 
					#: src/utils/pactl.c:2606 src/utils/pactl.c:2595
 | 
				
			||||||
msgid "Inconsistent volume specification.\n"
 | 
					msgid "Inconsistent volume specification.\n"
 | 
				
			||||||
msgstr "Несогласованные способы указания значений громкости.\n"
 | 
					msgstr "Несогласованные способы указания значений громкости.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3032,43 +3039,46 @@ msgstr "Несогласованные способы указания знач
 | 
				
			||||||
#: src/utils/pactl.c:2651 src/utils/pactl.c:2652 src/utils/pactl.c:2653
 | 
					#: src/utils/pactl.c:2651 src/utils/pactl.c:2652 src/utils/pactl.c:2653
 | 
				
			||||||
#: src/utils/pactl.c:2654 src/utils/pactl.c:2655 src/utils/pactl.c:2656
 | 
					#: src/utils/pactl.c:2654 src/utils/pactl.c:2655 src/utils/pactl.c:2656
 | 
				
			||||||
#: src/utils/pactl.c:2657 src/utils/pactl.c:2658 src/utils/pactl.c:2659
 | 
					#: src/utils/pactl.c:2657 src/utils/pactl.c:2658 src/utils/pactl.c:2659
 | 
				
			||||||
#: src/utils/pactl.c:2660
 | 
					#: src/utils/pactl.c:2660 src/utils/pactl.c:2625 src/utils/pactl.c:2626
 | 
				
			||||||
 | 
					#: src/utils/pactl.c:2627 src/utils/pactl.c:2628 src/utils/pactl.c:2629
 | 
				
			||||||
 | 
					#: src/utils/pactl.c:2630 src/utils/pactl.c:2631 src/utils/pactl.c:2632
 | 
				
			||||||
 | 
					#: src/utils/pactl.c:2633 src/utils/pactl.c:2634 src/utils/pactl.c:2635
 | 
				
			||||||
msgid "[options]"
 | 
					msgid "[options]"
 | 
				
			||||||
msgstr "[параметры]"
 | 
					msgstr "[параметры]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2638
 | 
					#: src/utils/pactl.c:2638 src/utils/pactl.c:2627
 | 
				
			||||||
msgid "[TYPE]"
 | 
					msgid "[TYPE]"
 | 
				
			||||||
msgstr "[ТИП]"
 | 
					msgstr "[ТИП]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2640
 | 
					#: src/utils/pactl.c:2640 src/utils/pactl.c:2629
 | 
				
			||||||
msgid "FILENAME [NAME]"
 | 
					msgid "FILENAME [NAME]"
 | 
				
			||||||
msgstr "ИМЯ_ФАЙЛА [ИМЯ]"
 | 
					msgstr "ИМЯ_ФАЙЛА [ИМЯ]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2641
 | 
					#: src/utils/pactl.c:2641 src/utils/pactl.c:2630
 | 
				
			||||||
msgid "NAME [SINK]"
 | 
					msgid "NAME [SINK]"
 | 
				
			||||||
msgstr "ИМЯ [АУДИОПРИЁМНИК]"
 | 
					msgstr "ИМЯ [АУДИОПРИЁМНИК]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2653
 | 
					#: src/utils/pactl.c:2653 src/utils/pactl.c:2642
 | 
				
			||||||
msgid "NAME|#N VOLUME [VOLUME ...]"
 | 
					msgid "NAME|#N VOLUME [VOLUME ...]"
 | 
				
			||||||
msgstr "ИМЯ|№ ГРОМКОСТЬ [ГРОМКОСТЬ ...]"
 | 
					msgstr "ИМЯ|№ ГРОМКОСТЬ [ГРОМКОСТЬ ...]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2654
 | 
					#: src/utils/pactl.c:2654 src/utils/pactl.c:2643
 | 
				
			||||||
msgid "#N VOLUME [VOLUME ...]"
 | 
					msgid "#N VOLUME [VOLUME ...]"
 | 
				
			||||||
msgstr "№ ГРОМКОСТЬ [ГРОМКОСТЬ ...]"
 | 
					msgstr "№ ГРОМКОСТЬ [ГРОМКОСТЬ ...]"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2655
 | 
					#: src/utils/pactl.c:2655 src/utils/pactl.c:2644
 | 
				
			||||||
msgid "NAME|#N 1|0|toggle"
 | 
					msgid "NAME|#N 1|0|toggle"
 | 
				
			||||||
msgstr "ИМЯ|№ 1|0|toggle"
 | 
					msgstr "ИМЯ|№ 1|0|toggle"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2656
 | 
					#: src/utils/pactl.c:2656 src/utils/pactl.c:2645
 | 
				
			||||||
msgid "#N 1|0|toggle"
 | 
					msgid "#N 1|0|toggle"
 | 
				
			||||||
msgstr "№ 1|0|toggle"
 | 
					msgstr "№ 1|0|toggle"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2657
 | 
					#: src/utils/pactl.c:2657 src/utils/pactl.c:2646
 | 
				
			||||||
msgid "#N FORMATS"
 | 
					msgid "#N FORMATS"
 | 
				
			||||||
msgstr "№ ФОРМАТЫ"
 | 
					msgstr "№ ФОРМАТЫ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2661
 | 
					#: src/utils/pactl.c:2661 src/utils/pactl.c:2650
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -3080,7 +3090,7 @@ msgstr ""
 | 
				
			||||||
"можно использовать для указания аудиоприёмника, источника и монитора, "
 | 
					"можно использовать для указания аудиоприёмника, источника и монитора, "
 | 
				
			||||||
"используемых по умолчанию.\n"
 | 
					"используемых по умолчанию.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2664
 | 
					#: src/utils/pactl.c:2664 src/utils/pactl.c:2653
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -3103,7 +3113,7 @@ msgstr ""
 | 
				
			||||||
"  -s, --server=СЕРВЕР                   Имя сервера для подключения\n"
 | 
					"  -s, --server=СЕРВЕР                   Имя сервера для подключения\n"
 | 
				
			||||||
"  -n, --client-name=ИМЯ                 Имя этого клиента на сервере\n"
 | 
					"  -n, --client-name=ИМЯ                 Имя этого клиента на сервере\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2707
 | 
					#: src/utils/pactl.c:2707 src/utils/pactl.c:2696
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"pactl %s\n"
 | 
					"pactl %s\n"
 | 
				
			||||||
| 
						 | 
					@ -3114,65 +3124,66 @@ msgstr ""
 | 
				
			||||||
"Скомпилировано с libpulse %s\n"
 | 
					"Скомпилировано с libpulse %s\n"
 | 
				
			||||||
"Скомпоновано с libpulse %s\n"
 | 
					"Скомпоновано с libpulse %s\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2751
 | 
					#: src/utils/pactl.c:2751 src/utils/pactl.c:2739
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Invalid format value '%s'"
 | 
					msgid "Invalid format value '%s'"
 | 
				
			||||||
msgstr "Недопустимое значение формата «%s»"
 | 
					msgstr "Недопустимое значение формата «%s»"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2778
 | 
					#: src/utils/pactl.c:2778 src/utils/pactl.c:2766
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Specify nothing, or one of: %s"
 | 
					msgid "Specify nothing, or one of: %s"
 | 
				
			||||||
msgstr "Не указывайте ничего либо укажите одно из: %s"
 | 
					msgstr "Не указывайте ничего либо укажите одно из: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2788
 | 
					#: src/utils/pactl.c:2788 src/utils/pactl.c:2776
 | 
				
			||||||
msgid "Please specify a sample file to load"
 | 
					msgid "Please specify a sample file to load"
 | 
				
			||||||
msgstr "Необходимо указать файл, из которого будет загружен сэмпл"
 | 
					msgstr "Необходимо указать файл, из которого будет загружен сэмпл"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2801
 | 
					#: src/utils/pactl.c:2801 src/utils/pactl.c:2789
 | 
				
			||||||
msgid "Failed to open sound file."
 | 
					msgid "Failed to open sound file."
 | 
				
			||||||
msgstr "Не удалось открыть аудиофайл."
 | 
					msgstr "Не удалось открыть аудиофайл."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2813
 | 
					#: src/utils/pactl.c:2813 src/utils/pactl.c:2801
 | 
				
			||||||
msgid "Warning: Failed to determine sample specification from file."
 | 
					msgid "Warning: Failed to determine sample specification from file."
 | 
				
			||||||
msgstr "Предупреждение: не удалось определить спецификацию отсчётов из файла."
 | 
					msgstr "Предупреждение: не удалось определить спецификацию отсчётов из файла."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2823
 | 
					#: src/utils/pactl.c:2823 src/utils/pactl.c:2811
 | 
				
			||||||
msgid "You have to specify a sample name to play"
 | 
					msgid "You have to specify a sample name to play"
 | 
				
			||||||
msgstr "Необходимо указать имя сэмпла для воспроизведения"
 | 
					msgstr "Необходимо указать имя сэмпла для воспроизведения"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2835
 | 
					#: src/utils/pactl.c:2835 src/utils/pactl.c:2823
 | 
				
			||||||
msgid "You have to specify a sample name to remove"
 | 
					msgid "You have to specify a sample name to remove"
 | 
				
			||||||
msgstr "Необходимо указать имя сэмпла для удаления"
 | 
					msgstr "Необходимо указать имя сэмпла для удаления"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2844
 | 
					#: src/utils/pactl.c:2844 src/utils/pactl.c:2832
 | 
				
			||||||
msgid "You have to specify a sink input index and a sink"
 | 
					msgid "You have to specify a sink input index and a sink"
 | 
				
			||||||
msgstr "Необходимо указать номер входа аудиоприёмника и аудиоприёмник"
 | 
					msgstr "Необходимо указать номер входа аудиоприёмника и аудиоприёмник"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2854
 | 
					#: src/utils/pactl.c:2854 src/utils/pactl.c:2842
 | 
				
			||||||
msgid "You have to specify a source output index and a source"
 | 
					msgid "You have to specify a source output index and a source"
 | 
				
			||||||
msgstr "Необходимо указать номер выхода источника и источник"
 | 
					msgstr "Необходимо указать номер выхода источника и источник"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2869
 | 
					#: src/utils/pactl.c:2869 src/utils/pactl.c:2857
 | 
				
			||||||
msgid "You have to specify a module name and arguments."
 | 
					msgid "You have to specify a module name and arguments."
 | 
				
			||||||
msgstr "Необходимо указать имя модуля и аргументы."
 | 
					msgstr "Необходимо указать имя модуля и аргументы."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2889
 | 
					#: src/utils/pactl.c:2889 src/utils/pactl.c:2877
 | 
				
			||||||
msgid "You have to specify a module index or name"
 | 
					msgid "You have to specify a module index or name"
 | 
				
			||||||
msgstr "Необходимо указать номер или имя модуля"
 | 
					msgstr "Необходимо указать номер или имя модуля"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2902
 | 
					#: src/utils/pactl.c:2902 src/utils/pactl.c:2890
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"You may not specify more than one sink. You have to specify a boolean value."
 | 
					"You may not specify more than one sink. You have to specify a boolean value."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Нельзя указывать больше одного аудиоприёмника. Необходимо указать логическое "
 | 
					"Нельзя указывать больше одного аудиоприёмника. Необходимо указать логическое "
 | 
				
			||||||
"значение."
 | 
					"значение."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2907 src/utils/pactl.c:2927
 | 
					#: src/utils/pactl.c:2907 src/utils/pactl.c:2927 src/utils/pactl.c:2895
 | 
				
			||||||
 | 
					#: src/utils/pactl.c:2915
 | 
				
			||||||
msgid "Invalid suspend specification."
 | 
					msgid "Invalid suspend specification."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Недопустимое значение операции приостановки, ожидалось логическое значение."
 | 
					"Недопустимое значение операции приостановки, ожидалось логическое значение."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2922
 | 
					#: src/utils/pactl.c:2922 src/utils/pactl.c:2910
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"You may not specify more than one source. You have to specify a boolean "
 | 
					"You may not specify more than one source. You have to specify a boolean "
 | 
				
			||||||
"value."
 | 
					"value."
 | 
				
			||||||
| 
						 | 
					@ -3180,59 +3191,61 @@ msgstr ""
 | 
				
			||||||
"Нельзя указывать больше одного источника. Необходимо указать логическое "
 | 
					"Нельзя указывать больше одного источника. Необходимо указать логическое "
 | 
				
			||||||
"значение."
 | 
					"значение."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2939
 | 
					#: src/utils/pactl.c:2939 src/utils/pactl.c:2927
 | 
				
			||||||
msgid "You have to specify a card name/index and a profile name"
 | 
					msgid "You have to specify a card name/index and a profile name"
 | 
				
			||||||
msgstr "Необходимо указать имя или номер звуковой платы и имя профиля"
 | 
					msgstr "Необходимо указать имя или номер звуковой платы и имя профиля"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2950
 | 
					#: src/utils/pactl.c:2950 src/utils/pactl.c:2938
 | 
				
			||||||
msgid "You have to specify a sink name/index and a port name"
 | 
					msgid "You have to specify a sink name/index and a port name"
 | 
				
			||||||
msgstr "Необходимо указать имя или номер аудиоприёмника и имя порта"
 | 
					msgstr "Необходимо указать имя или номер аудиоприёмника и имя порта"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2961
 | 
					#: src/utils/pactl.c:2961 src/utils/pactl.c:2949
 | 
				
			||||||
msgid "You have to specify a sink name"
 | 
					msgid "You have to specify a sink name"
 | 
				
			||||||
msgstr "Необходимо указать имя аудиоприёмника"
 | 
					msgstr "Необходимо указать имя аудиоприёмника"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2974
 | 
					#: src/utils/pactl.c:2974 src/utils/pactl.c:2962
 | 
				
			||||||
msgid "You have to specify a source name/index and a port name"
 | 
					msgid "You have to specify a source name/index and a port name"
 | 
				
			||||||
msgstr "Необходимо указать имя или номер источника и имя порта"
 | 
					msgstr "Необходимо указать имя или номер источника и имя порта"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2985
 | 
					#: src/utils/pactl.c:2985 src/utils/pactl.c:2973
 | 
				
			||||||
msgid "You have to specify a source name"
 | 
					msgid "You have to specify a source name"
 | 
				
			||||||
msgstr "Необходимо указать имя источника"
 | 
					msgstr "Необходимо указать имя источника"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:2998 src/utils/pactl.c:3076
 | 
					#: src/utils/pactl.c:2998 src/utils/pactl.c:3076 src/utils/pactl.c:2986
 | 
				
			||||||
 | 
					#: src/utils/pactl.c:3064
 | 
				
			||||||
msgid "You have to specify a sink name/index"
 | 
					msgid "You have to specify a sink name/index"
 | 
				
			||||||
msgstr "Необходимо указать имя или номер аудиоприёмника"
 | 
					msgstr "Необходимо указать имя или номер аудиоприёмника"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3008
 | 
					#: src/utils/pactl.c:3008 src/utils/pactl.c:2996
 | 
				
			||||||
msgid "You have to specify a sink name/index and a volume"
 | 
					msgid "You have to specify a sink name/index and a volume"
 | 
				
			||||||
msgstr "Необходимо указать имя или номер аудиоприёмника и громкость"
 | 
					msgstr "Необходимо указать имя или номер аудиоприёмника и громкость"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3021 src/utils/pactl.c:3101
 | 
					#: src/utils/pactl.c:3021 src/utils/pactl.c:3101 src/utils/pactl.c:3009
 | 
				
			||||||
 | 
					#: src/utils/pactl.c:3089
 | 
				
			||||||
msgid "You have to specify a source name/index"
 | 
					msgid "You have to specify a source name/index"
 | 
				
			||||||
msgstr "Необходимо указать имя или номер источника"
 | 
					msgstr "Необходимо указать имя или номер источника"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3031
 | 
					#: src/utils/pactl.c:3031 src/utils/pactl.c:3019
 | 
				
			||||||
msgid "You have to specify a source name/index and a volume"
 | 
					msgid "You have to specify a source name/index and a volume"
 | 
				
			||||||
msgstr "Необходимо указать имя или номер источника и громкость"
 | 
					msgstr "Необходимо указать имя или номер источника и громкость"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3044
 | 
					#: src/utils/pactl.c:3044 src/utils/pactl.c:3032
 | 
				
			||||||
msgid "You have to specify a sink input index and a volume"
 | 
					msgid "You have to specify a sink input index and a volume"
 | 
				
			||||||
msgstr "Необходимо указать номер входа аудиоприёмника и громкость"
 | 
					msgstr "Необходимо указать номер входа аудиоприёмника и громкость"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3049
 | 
					#: src/utils/pactl.c:3049 src/utils/pactl.c:3037
 | 
				
			||||||
msgid "Invalid sink input index"
 | 
					msgid "Invalid sink input index"
 | 
				
			||||||
msgstr "Недопустимый номер входа аудиоприёмника"
 | 
					msgstr "Недопустимый номер входа аудиоприёмника"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3060
 | 
					#: src/utils/pactl.c:3060 src/utils/pactl.c:3048
 | 
				
			||||||
msgid "You have to specify a source output index and a volume"
 | 
					msgid "You have to specify a source output index and a volume"
 | 
				
			||||||
msgstr "Необходимо указать номер выхода источника и громкость"
 | 
					msgstr "Необходимо указать номер выхода источника и громкость"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3065
 | 
					#: src/utils/pactl.c:3065 src/utils/pactl.c:3053
 | 
				
			||||||
msgid "Invalid source output index"
 | 
					msgid "Invalid source output index"
 | 
				
			||||||
msgstr "Недопустимый номер выхода источника"
 | 
					msgstr "Недопустимый номер выхода источника"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3086
 | 
					#: src/utils/pactl.c:3086 src/utils/pactl.c:3074
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"You have to specify a sink name/index and a mute action (0, 1, or 'toggle')"
 | 
					"You have to specify a sink name/index and a mute action (0, 1, or 'toggle')"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -3240,29 +3253,30 @@ msgstr ""
 | 
				
			||||||
"выключения звука (0, 1 или «toggle»)"
 | 
					"выключения звука (0, 1 или «toggle»)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3091 src/utils/pactl.c:3116 src/utils/pactl.c:3136
 | 
					#: src/utils/pactl.c:3091 src/utils/pactl.c:3116 src/utils/pactl.c:3136
 | 
				
			||||||
#: src/utils/pactl.c:3154
 | 
					#: src/utils/pactl.c:3154 src/utils/pactl.c:3079 src/utils/pactl.c:3104
 | 
				
			||||||
 | 
					#: src/utils/pactl.c:3124 src/utils/pactl.c:3142
 | 
				
			||||||
msgid "Invalid mute specification"
 | 
					msgid "Invalid mute specification"
 | 
				
			||||||
msgstr "Недопустимое логическое значение выключения звука"
 | 
					msgstr "Недопустимое логическое значение выключения звука"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3111
 | 
					#: src/utils/pactl.c:3111 src/utils/pactl.c:3099
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"You have to specify a source name/index and a mute action (0, 1, or 'toggle')"
 | 
					"You have to specify a source name/index and a mute action (0, 1, or 'toggle')"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Необходимо указать имя или номер источника и логическое значение выключения "
 | 
					"Необходимо указать имя или номер источника и логическое значение выключения "
 | 
				
			||||||
"звука (0, 1 или «toggle»)"
 | 
					"звука (0, 1 или «toggle»)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3126
 | 
					#: src/utils/pactl.c:3126 src/utils/pactl.c:3114
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"You have to specify a sink input index and a mute action (0, 1, or 'toggle')"
 | 
					"You have to specify a sink input index and a mute action (0, 1, or 'toggle')"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Необходимо указать номер входа аудиоприёмника и логическое значение "
 | 
					"Необходимо указать номер входа аудиоприёмника и логическое значение "
 | 
				
			||||||
"выключения звука (0, 1 или «toggle»)"
 | 
					"выключения звука (0, 1 или «toggle»)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3131
 | 
					#: src/utils/pactl.c:3131 src/utils/pactl.c:3119
 | 
				
			||||||
msgid "Invalid sink input index specification"
 | 
					msgid "Invalid sink input index specification"
 | 
				
			||||||
msgstr "Недопустимая спецификация номера входа аудиоприёмника"
 | 
					msgstr "Недопустимый номер входа аудиоприёмника"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3144
 | 
					#: src/utils/pactl.c:3144 src/utils/pactl.c:3132
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"You have to specify a source output index and a mute action (0, 1, or "
 | 
					"You have to specify a source output index and a mute action (0, 1, or "
 | 
				
			||||||
"'toggle')"
 | 
					"'toggle')"
 | 
				
			||||||
| 
						 | 
					@ -3270,15 +3284,15 @@ msgstr ""
 | 
				
			||||||
"Необходимо указать номер выхода источника и логическое значение выключения "
 | 
					"Необходимо указать номер выхода источника и логическое значение выключения "
 | 
				
			||||||
"звука (0, 1 или «toggle»)"
 | 
					"звука (0, 1 или «toggle»)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3149
 | 
					#: src/utils/pactl.c:3149 src/utils/pactl.c:3137
 | 
				
			||||||
msgid "Invalid source output index specification"
 | 
					msgid "Invalid source output index specification"
 | 
				
			||||||
msgstr "Недопустимый номер выхода источника"
 | 
					msgstr "Недопустимый номер выхода источника"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3162
 | 
					#: src/utils/pactl.c:3162 src/utils/pactl.c:3150
 | 
				
			||||||
msgid "You have to specify at least an object path and a message name"
 | 
					msgid "You have to specify at least an object path and a message name"
 | 
				
			||||||
msgstr "Вы должны указать как минимум путь к объекту и имя сообщения"
 | 
					msgstr "Вы должны указать как минимум путь к объекту и имя сообщения"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3172
 | 
					#: src/utils/pactl.c:3160
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Excess arguments given, they will be ignored. Note that all message "
 | 
					"Excess arguments given, they will be ignored. Note that all message "
 | 
				
			||||||
"parameters must be given as a single string."
 | 
					"parameters must be given as a single string."
 | 
				
			||||||
| 
						 | 
					@ -3286,7 +3300,7 @@ msgstr ""
 | 
				
			||||||
"Даны лишние аргументы, они будут проигнорированы. Обратите внимание, что все "
 | 
					"Даны лишние аргументы, они будут проигнорированы. Обратите внимание, что все "
 | 
				
			||||||
"параметры сообщения должны быть предоставлены в виде одной строки."
 | 
					"параметры сообщения должны быть предоставлены в виде одной строки."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3182
 | 
					#: src/utils/pactl.c:3182 src/utils/pactl.c:3170
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"You have to specify a sink index and a semicolon-separated list of supported "
 | 
					"You have to specify a sink index and a semicolon-separated list of supported "
 | 
				
			||||||
"formats"
 | 
					"formats"
 | 
				
			||||||
| 
						 | 
					@ -3294,15 +3308,15 @@ msgstr ""
 | 
				
			||||||
"Необходимо указать номер аудиоприёмника и разделённый запятыми список "
 | 
					"Необходимо указать номер аудиоприёмника и разделённый запятыми список "
 | 
				
			||||||
"поддерживаемых форматов"
 | 
					"поддерживаемых форматов"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3194
 | 
					#: src/utils/pactl.c:3194 src/utils/pactl.c:3182
 | 
				
			||||||
msgid "You have to specify a card name/index, a port name and a latency offset"
 | 
					msgid "You have to specify a card name/index, a port name and a latency offset"
 | 
				
			||||||
msgstr "Необходимо указать имя или номер звуковой платы, имя порта и задержку"
 | 
					msgstr "Необходимо указать имя или номер звуковой платы, имя порта и задержку"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3201
 | 
					#: src/utils/pactl.c:3201 src/utils/pactl.c:3189
 | 
				
			||||||
msgid "Could not parse latency offset"
 | 
					msgid "Could not parse latency offset"
 | 
				
			||||||
msgstr "Недопустимое значение задержки"
 | 
					msgstr "Недопустимое значение задержки"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:3213
 | 
					#: src/utils/pactl.c:3213 src/utils/pactl.c:3201
 | 
				
			||||||
msgid "No valid command specified."
 | 
					msgid "No valid command specified."
 | 
				
			||||||
msgstr "Имя команды не указано или не распознано."
 | 
					msgstr "Имя команды не указано или не распознано."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3466,134 +3480,134 @@ msgstr "Не удалось загрузить данные cookie.\n"
 | 
				
			||||||
msgid "Not yet implemented.\n"
 | 
					msgid "Not yet implemented.\n"
 | 
				
			||||||
msgstr "Не реализовано.\n"
 | 
					msgstr "Не реализовано.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#~ msgid ""
 | 
					#: src/utils/pacat.c:676
 | 
				
			||||||
#~ "%s [options]\n"
 | 
					#, c-format
 | 
				
			||||||
#~ "%s\n"
 | 
					msgid ""
 | 
				
			||||||
#~ "\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
#~ "  -h, --help                            Show this help\n"
 | 
					"%s\n"
 | 
				
			||||||
#~ "      --version                         Show version\n"
 | 
					"\n"
 | 
				
			||||||
#~ "\n"
 | 
					"  -h, --help                            Show this help\n"
 | 
				
			||||||
#~ "  -r, --record                          Create a connection for "
 | 
					"      --version                         Show version\n"
 | 
				
			||||||
#~ "recording\n"
 | 
					"\n"
 | 
				
			||||||
#~ "  -p, --playback                        Create a connection for playback\n"
 | 
					"  -r, --record                          Create a connection for recording\n"
 | 
				
			||||||
#~ "\n"
 | 
					"  -p, --playback                        Create a connection for playback\n"
 | 
				
			||||||
#~ "  -v, --verbose                         Enable verbose operations\n"
 | 
					"\n"
 | 
				
			||||||
#~ "\n"
 | 
					"  -v, --verbose                         Enable verbose operations\n"
 | 
				
			||||||
#~ "  -s, --server=SERVER                   The name of the server to connect "
 | 
					"\n"
 | 
				
			||||||
#~ "to\n"
 | 
					"  -s, --server=SERVER                   The name of the server to connect "
 | 
				
			||||||
#~ "  -d, --device=DEVICE                   The name of the sink/source to "
 | 
					"to\n"
 | 
				
			||||||
#~ "connect to\n"
 | 
					"  -d, --device=DEVICE                   The name of the sink/source to "
 | 
				
			||||||
#~ "  -n, --client-name=NAME                How to call this client on the "
 | 
					"connect to\n"
 | 
				
			||||||
#~ "server\n"
 | 
					"  -n, --client-name=NAME                How to call this client on the "
 | 
				
			||||||
#~ "      --stream-name=NAME                How to call this stream on the "
 | 
					"server\n"
 | 
				
			||||||
#~ "server\n"
 | 
					"      --stream-name=NAME                How to call this stream on the "
 | 
				
			||||||
#~ "      --volume=VOLUME                   Specify the initial (linear) "
 | 
					"server\n"
 | 
				
			||||||
#~ "volume in range 0...65536\n"
 | 
					"      --volume=VOLUME                   Specify the initial (linear) volume "
 | 
				
			||||||
#~ "      --rate=SAMPLERATE                 The sample rate in Hz (defaults "
 | 
					"in range 0...65536\n"
 | 
				
			||||||
#~ "to 44100)\n"
 | 
					"      --rate=SAMPLERATE                 The sample rate in Hz (defaults to "
 | 
				
			||||||
#~ "      --format=SAMPLEFORMAT             The sample format, see\n"
 | 
					"44100)\n"
 | 
				
			||||||
#~ "                                        https://www.freedesktop.org/wiki/"
 | 
					"      --format=SAMPLEFORMAT             The sample format, see\n"
 | 
				
			||||||
#~ "Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
					"                                        https://www.freedesktop.org/wiki/"
 | 
				
			||||||
#~ "                                        for possible values (defaults to "
 | 
					"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
				
			||||||
#~ "s16ne)\n"
 | 
					"                                        for possible values (defaults to "
 | 
				
			||||||
#~ "      --channels=CHANNELS               The number of channels, 1 for "
 | 
					"s16ne)\n"
 | 
				
			||||||
#~ "mono, 2 for stereo\n"
 | 
					"      --channels=CHANNELS               The number of channels, 1 for mono, "
 | 
				
			||||||
#~ "                                        (defaults to 2)\n"
 | 
					"2 for stereo\n"
 | 
				
			||||||
#~ "      --channel-map=CHANNELMAP          Channel map to use instead of the "
 | 
					"                                        (defaults to 2)\n"
 | 
				
			||||||
#~ "default\n"
 | 
					"      --channel-map=CHANNELMAP          Channel map to use instead of the "
 | 
				
			||||||
#~ "      --fix-format                      Take the sample format from the "
 | 
					"default\n"
 | 
				
			||||||
#~ "sink/source the stream is\n"
 | 
					"      --fix-format                      Take the sample format from the sink/"
 | 
				
			||||||
#~ "                                        being connected to.\n"
 | 
					"source the stream is\n"
 | 
				
			||||||
#~ "      --fix-rate                        Take the sampling rate from the "
 | 
					"                                        being connected to.\n"
 | 
				
			||||||
#~ "sink/source the stream is\n"
 | 
					"      --fix-rate                        Take the sampling rate from the sink/"
 | 
				
			||||||
#~ "                                        being connected to.\n"
 | 
					"source the stream is\n"
 | 
				
			||||||
#~ "      --fix-channels                    Take the number of channels and "
 | 
					"                                        being connected to.\n"
 | 
				
			||||||
#~ "the channel map\n"
 | 
					"      --fix-channels                    Take the number of channels and the "
 | 
				
			||||||
#~ "                                        from the sink/source the stream "
 | 
					"channel map\n"
 | 
				
			||||||
#~ "is being connected to.\n"
 | 
					"                                        from the sink/source the stream is "
 | 
				
			||||||
#~ "      --no-remix                        Don't upmix or downmix channels.\n"
 | 
					"being connected to.\n"
 | 
				
			||||||
#~ "      --no-remap                        Map channels by index instead of "
 | 
					"      --no-remix                        Don't upmix or downmix channels.\n"
 | 
				
			||||||
#~ "name.\n"
 | 
					"      --no-remap                        Map channels by index instead of "
 | 
				
			||||||
#~ "      --latency=BYTES                   Request the specified latency in "
 | 
					"name.\n"
 | 
				
			||||||
#~ "bytes.\n"
 | 
					"      --latency=BYTES                   Request the specified latency in "
 | 
				
			||||||
#~ "      --process-time=BYTES              Request the specified process "
 | 
					"bytes.\n"
 | 
				
			||||||
#~ "time per request in bytes.\n"
 | 
					"      --process-time=BYTES              Request the specified process time "
 | 
				
			||||||
#~ "      --latency-msec=MSEC               Request the specified latency in "
 | 
					"per request in bytes.\n"
 | 
				
			||||||
#~ "msec.\n"
 | 
					"      --latency-msec=MSEC               Request the specified latency in "
 | 
				
			||||||
#~ "      --process-time-msec=MSEC          Request the specified process "
 | 
					"msec.\n"
 | 
				
			||||||
#~ "time per request in msec.\n"
 | 
					"      --process-time-msec=MSEC          Request the specified process time "
 | 
				
			||||||
#~ "      --property=PROPERTY=VALUE         Set the specified property to the "
 | 
					"per request in msec.\n"
 | 
				
			||||||
#~ "specified value.\n"
 | 
					"      --property=PROPERTY=VALUE         Set the specified property to the "
 | 
				
			||||||
#~ "      --raw                             Record/play raw PCM data.\n"
 | 
					"specified value.\n"
 | 
				
			||||||
#~ "      --passthrough                     Passthrough data.\n"
 | 
					"      --raw                             Record/play raw PCM data.\n"
 | 
				
			||||||
#~ "      --file-format[=FFORMAT]           Record/play formatted PCM data.\n"
 | 
					"      --passthrough                     Passthrough data.\n"
 | 
				
			||||||
#~ "      --list-file-formats               List available file formats.\n"
 | 
					"      --file-format[=FFORMAT]           Record/play formatted PCM data.\n"
 | 
				
			||||||
#~ "      --monitor-stream=INDEX            Record from the sink input with "
 | 
					"      --list-file-formats               List available file formats.\n"
 | 
				
			||||||
#~ "index INDEX.\n"
 | 
					"      --monitor-stream=INDEX            Record from the sink input with "
 | 
				
			||||||
#~ msgstr ""
 | 
					"index INDEX.\n"
 | 
				
			||||||
#~ "%s [параметры]\n"
 | 
					msgstr ""
 | 
				
			||||||
#~ "%s\n"
 | 
					"%s [параметры]\n"
 | 
				
			||||||
#~ "\n"
 | 
					"%s\n"
 | 
				
			||||||
#~ "  -h, --help                            Показать эту справку\n"
 | 
					"\n"
 | 
				
			||||||
#~ "      --version                         Показать сведения о версии\n"
 | 
					"  -h, --help                            Показать эту справку\n"
 | 
				
			||||||
#~ "\n"
 | 
					"      --version                         Показать сведения о версии\n"
 | 
				
			||||||
#~ "  -r, --record                          Создать соединение для записи\n"
 | 
					"\n"
 | 
				
			||||||
#~ "  -p, --playback                        Создать соединение для "
 | 
					"  -r, --record                          Создать соединение для записи\n"
 | 
				
			||||||
#~ "воспроизведения\n"
 | 
					"  -p, --playback                        Создать соединение для "
 | 
				
			||||||
#~ "\n"
 | 
					"воспроизведения\n"
 | 
				
			||||||
#~ "  -v, --verbose                         Включить подробные операции\n"
 | 
					"\n"
 | 
				
			||||||
#~ "\n"
 | 
					"  -v, --verbose                         Включить подробные операции\n"
 | 
				
			||||||
#~ "  -s, --server=СЕРВЕР                   Имя сервера для подключения\n"
 | 
					"\n"
 | 
				
			||||||
#~ "  -d, --device=УСТРОЙСТВО               Имя приёмника/источника для "
 | 
					"  -s, --server=СЕРВЕР                   Имя сервера для подключения\n"
 | 
				
			||||||
#~ "подключения\n"
 | 
					"  -d, --device=УСТРОЙСТВО               Имя приёмника/источника для "
 | 
				
			||||||
#~ "  -n, --client-name=ИМЯ                 Имя этого клиента на сервере\n"
 | 
					"подключения\n"
 | 
				
			||||||
#~ "      --stream-name=ИМЯ                 Имя этого потока на сервере\n"
 | 
					"  -n, --client-name=ИМЯ                 Имя этого клиента на сервере\n"
 | 
				
			||||||
#~ "      --volume=VOLUME                   Указать начальную (линейную) "
 | 
					"      --stream-name=ИМЯ                 Имя этого потока на сервере\n"
 | 
				
			||||||
#~ "громкость в диапазоне 0...65536\n"
 | 
					"      --volume=VOLUME                   Указать начальную (линейную) "
 | 
				
			||||||
#~ "      --rate=SAMPLERATE                 Частота дискретизации в Гц (по "
 | 
					"громкость в диапазоне 0...65536\n"
 | 
				
			||||||
#~ "умолчанию 44100)\n"
 | 
					"      --rate=SAMPLERATE                 Частота дискретизации в Гц (по "
 | 
				
			||||||
#~ "      --format=SAMPLEFORMAT             Формат выборки, смотрите\n"
 | 
					"умолчанию 44100)\n"
 | 
				
			||||||
#~ "                                        https://www.freedesktop.org/wiki/"
 | 
					"      --format=SAMPLEFORMAT             Формат выборки, смотрите\n"
 | 
				
			||||||
#~ "Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
					"                                        https://www.freedesktop.org/wiki/"
 | 
				
			||||||
#~ "                                        возможные значения (по умолчанию "
 | 
					"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
				
			||||||
#~ "s16ne)\n"
 | 
					"                                        возможные значения (по умолчанию "
 | 
				
			||||||
#~ "      --channels=КАНАЛЫ                 Количество каналов, 1 для моно, 2 "
 | 
					"s16ne)\n"
 | 
				
			||||||
#~ "для стерео\n"
 | 
					"      --channels=КАНАЛЫ                 Количество каналов, 1 для моно, 2 "
 | 
				
			||||||
#~ "                                        (по умолчанию 2)\n"
 | 
					"для стерео\n"
 | 
				
			||||||
#~ "      --channel-map=CHANNELMAP          Карта каналов для использования "
 | 
					"                                        (по умолчанию 2)\n"
 | 
				
			||||||
#~ "вместо установленной по умолчанию\n"
 | 
					"      --channel-map=CHANNELMAP          Карта каналов для использования "
 | 
				
			||||||
#~ "      --fix-format                      Взять образец формата из "
 | 
					"вместо установленной по умолчанию\n"
 | 
				
			||||||
#~ "приёмника/источника, к которому\n"
 | 
					"      --fix-format                      Взять образец формата из приёмника/"
 | 
				
			||||||
#~ "                                        подключен поток.\n"
 | 
					"источника, к которому\n"
 | 
				
			||||||
#~ "      --fix-rate                        Взять частоту дискретизации из "
 | 
					"                                        подключен поток.\n"
 | 
				
			||||||
#~ "приёмника/источника, к которому\n"
 | 
					"      --fix-rate                        Взять частоту дискретизации из "
 | 
				
			||||||
#~ "                                        подключен поток.\n"
 | 
					"приёмника/источника, к которому\n"
 | 
				
			||||||
#~ "      --fix-channels                    Взять количество каналов и карту "
 | 
					"                                        подключен поток.\n"
 | 
				
			||||||
#~ "каналов\n"
 | 
					"      --fix-channels                    Взять количество каналов и карту "
 | 
				
			||||||
#~ "                                        из приёмника/источника, к "
 | 
					"каналов\n"
 | 
				
			||||||
#~ "которому подключен поток.\n"
 | 
					"                                        из приёмника/источника, к которому "
 | 
				
			||||||
#~ "      --no-remix                        Не менять число каналов.\n"
 | 
					"подключен поток.\n"
 | 
				
			||||||
#~ "      --no-remap                        Сопоставлять каналы по индексу, а "
 | 
					"      --no-remix                        Не менять число каналов.\n"
 | 
				
			||||||
#~ "не по имени.\n"
 | 
					"      --no-remap                        Сопоставлять каналы по индексу, а не "
 | 
				
			||||||
#~ "      --latency=BYTES                   Запросить указанную задержку в "
 | 
					"по имени.\n"
 | 
				
			||||||
#~ "байтах.\n"
 | 
					"      --latency=BYTES                   Запросить указанную задержку в "
 | 
				
			||||||
#~ "      --process-time=BYTES              Запросить указанное время "
 | 
					"байтах.\n"
 | 
				
			||||||
#~ "процесса на запрос в байтах.\n"
 | 
					"      --process-time=BYTES              Запросить указанное время процесса "
 | 
				
			||||||
#~ "      --latency-msec=MSEC               Запросить указанную задержку в "
 | 
					"на запрос в байтах.\n"
 | 
				
			||||||
#~ "мсек.\n"
 | 
					"      --latency-msec=MSEC               Запросить указанную задержку в мсек."
 | 
				
			||||||
#~ "      --process-time-msec=MSEC          Запросить указанное время "
 | 
					"\n"
 | 
				
			||||||
#~ "процесса на запрос в мсек.\n"
 | 
					"      --process-time-msec=MSEC          Запросить указанное время процесса "
 | 
				
			||||||
#~ "      --property=PROPERTY=VALUE         Установить для указанного "
 | 
					"на запрос в мсек.\n"
 | 
				
			||||||
#~ "свойства указанное значение.\n"
 | 
					"      --property=PROPERTY=VALUE         Установить для указанного свойства "
 | 
				
			||||||
#~ "      --raw                             Запись/воспроизведение "
 | 
					"указанное значение.\n"
 | 
				
			||||||
#~ "необработанных данных PCM.\n"
 | 
					"      --raw                             Запись/воспроизведение "
 | 
				
			||||||
#~ "      --passthrough                     Пропускать данные.\n"
 | 
					"необработанных данных PCM.\n"
 | 
				
			||||||
#~ "      --file-format[=FFORMAT]           Запись/воспроизведение "
 | 
					"      --passthrough                     Пропускать данные.\n"
 | 
				
			||||||
#~ "форматированных данных PCM.\n"
 | 
					"      --file-format[=FFORMAT]           Запись/воспроизведение "
 | 
				
			||||||
#~ "      --list-file-formats               Список доступных форматов "
 | 
					"форматированных данных PCM.\n"
 | 
				
			||||||
#~ "файлов.\n"
 | 
					"      --list-file-formats               Список доступных форматов файлов.\n"
 | 
				
			||||||
#~ "      --monitor-stream=INDEX            Запись с входа приёмника с "
 | 
					"      --monitor-stream=INDEX            Запись с входа приёмника с индексом "
 | 
				
			||||||
#~ "индексом INDEX.\n"
 | 
					"INDEX.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#~ msgid "Failed to initialize daemon."
 | 
					#~ msgid "Failed to initialize daemon."
 | 
				
			||||||
#~ msgstr "Не удалось инициализировать демон."
 | 
					#~ msgstr "Не удалось инициализировать демон."
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/si.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/si.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2021-08-19 21:04+0000\n"
 | 
					"PO-Revision-Date: 2021-08-19 21:04+0000\n"
 | 
				
			||||||
"Last-Translator: Hela Basa <r45xveza@pm.me>\n"
 | 
					"Last-Translator: Hela Basa <r45xveza@pm.me>\n"
 | 
				
			||||||
"Language-Team: Sinhala <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Sinhala <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -980,8 +980,8 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1038,14 +1038,14 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1382,11 +1382,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/sk.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/sk.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PulseAudio master\n"
 | 
					"Project-Id-Version: PulseAudio master\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2020-11-25 08:35+0000\n"
 | 
					"PO-Revision-Date: 2020-11-25 08:35+0000\n"
 | 
				
			||||||
"Last-Translator: Dusan Kazik <prescott66@gmail.com>\n"
 | 
					"Last-Translator: Dusan Kazik <prescott66@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Slovak <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Slovak <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -1002,8 +1002,8 @@ msgid ""
 | 
				
			||||||
"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
					"this module is being loaded automatically> use_volume_sharing=<yes or no> "
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1060,14 +1060,14 @@ msgstr "Zvuk na @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunel pre %s@%s"
 | 
					msgstr "Tunel pre %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunel do %s/%s"
 | 
					msgstr "Tunel do %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1405,11 +1405,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Neplatný cieľ záznamu."
 | 
					msgstr "Neplatný cieľ záznamu."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Vstavaný zvuk"
 | 
					msgstr "Vstavaný zvuk"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/sr.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/sr.po
									
										
									
									
									
								
							| 
						 | 
					@ -9,7 +9,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:55+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:55+0000\n"
 | 
				
			||||||
"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
 | 
					"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Serbian (sr) <fedora-trans-sr@redhat.com>\n"
 | 
					"Language-Team: Serbian (sr) <fedora-trans-sr@redhat.com>\n"
 | 
				
			||||||
| 
						 | 
					@ -1181,8 +1181,8 @@ msgstr ""
 | 
				
			||||||
"ladspa додатка> label=<ознака ladspa додатка> control=<списак улазних "
 | 
					"ladspa додатка> label=<ознака ladspa додатка> control=<списак улазних "
 | 
				
			||||||
"контролних вредности раздвојених зарезом>"
 | 
					"контролних вредности раздвојених зарезом>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1245,14 +1245,14 @@ msgstr "Аудио на @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1603,11 +1603,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] Неисправан циљни дневник „%s“."
 | 
					msgstr "[%s:%u] Неисправан циљни дневник „%s“."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Унутрашњи звук"
 | 
					msgstr "Унутрашњи звук"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Модем"
 | 
					msgstr "Модем"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:55+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:55+0000\n"
 | 
				
			||||||
"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
 | 
					"Last-Translator: Miloš Komarčević <kmilos@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Serbian (sr) <fedora-trans-sr@redhat.com>\n"
 | 
					"Language-Team: Serbian (sr) <fedora-trans-sr@redhat.com>\n"
 | 
				
			||||||
| 
						 | 
					@ -1182,8 +1182,8 @@ msgstr ""
 | 
				
			||||||
"ladspa dodatka> label=<oznaka ladspa dodatka> control=<spisak ulaznih "
 | 
					"ladspa dodatka> label=<oznaka ladspa dodatka> control=<spisak ulaznih "
 | 
				
			||||||
"kontrolnih vrednosti razdvojenih zarezom>"
 | 
					"kontrolnih vrednosti razdvojenih zarezom>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1246,14 +1246,14 @@ msgstr "Audio na @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1604,11 +1604,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] Neispravan ciljni dnevnik „%s“."
 | 
					msgstr "[%s:%u] Neispravan ciljni dnevnik „%s“."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Unutrašnji zvuk"
 | 
					msgstr "Unutrašnji zvuk"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/sv.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/sv.po
									
										
									
									
									
								
							| 
						 | 
					@ -19,7 +19,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-05-18 22:27+0000\n"
 | 
					"PO-Revision-Date: 2022-05-18 22:27+0000\n"
 | 
				
			||||||
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
 | 
					"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
 | 
				
			||||||
"Language-Team: Swedish <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Swedish <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -1140,8 +1140,8 @@ msgstr ""
 | 
				
			||||||
"channel_map=<kanalmappning> autoloaded=<om denna modul läses in automatiskt> "
 | 
					"channel_map=<kanalmappning> autoloaded=<om denna modul läses in automatiskt> "
 | 
				
			||||||
"use_volume_sharing=<ja eller nej> "
 | 
					"use_volume_sharing=<ja eller nej> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "FFT-baserad equalizer på %s"
 | 
					msgstr "FFT-baserad equalizer på %s"
 | 
				
			||||||
| 
						 | 
					@ -1208,14 +1208,14 @@ msgstr "Ljud på @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Tunnel för %s@%s"
 | 
					msgstr "Tunnel för %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Tunnel till %s/%s"
 | 
					msgstr "Tunnel till %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1563,11 +1563,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Ogiltigt mål för logg."
 | 
					msgstr "Ogiltigt mål för logg."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Inbyggt ljud"
 | 
					msgstr "Inbyggt ljud"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/ta.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/ta.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx.ta\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx.ta\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:56+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:56+0000\n"
 | 
				
			||||||
"Last-Translator: I. Felix <ifelix@redhat.com>\n"
 | 
					"Last-Translator: I. Felix <ifelix@redhat.com>\n"
 | 
				
			||||||
"Language-Team: Tamil <fedora-trans-ta@redhat.com>\n"
 | 
					"Language-Team: Tamil <fedora-trans-ta@redhat.com>\n"
 | 
				
			||||||
| 
						 | 
					@ -1173,8 +1173,8 @@ msgstr ""
 | 
				
			||||||
"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
					"plugin name> label=<ladspa plugin label> control=<comma separated list of "
 | 
				
			||||||
"input control values>"
 | 
					"input control values>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1237,14 +1237,14 @@ msgstr "@HOSTNAME@இல் ஆடியோ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1595,11 +1595,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] தவறான பதிவு இலக்கு '%s'."
 | 
					msgstr "[%s:%u] தவறான பதிவு இலக்கு '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "உட்புற ஆடியோ"
 | 
					msgstr "உட்புற ஆடியோ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "மாதிரி"
 | 
					msgstr "மாதிரி"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/te.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/te.po
									
										
									
									
									
								
							| 
						 | 
					@ -8,7 +8,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx.te\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx.te\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2012-01-30 09:56+0000\n"
 | 
					"PO-Revision-Date: 2012-01-30 09:56+0000\n"
 | 
				
			||||||
"Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n"
 | 
					"Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n"
 | 
				
			||||||
"Language-Team: Telugu <en@li.org>\n"
 | 
					"Language-Team: Telugu <en@li.org>\n"
 | 
				
			||||||
| 
						 | 
					@ -1143,8 +1143,8 @@ msgstr ""
 | 
				
			||||||
"channel_map=<చానల్ మాప్> plugin=<ladspa ప్లగిన్ నామము> label=<ladspa ప్లగిన్ లేబుల్> "
 | 
					"channel_map=<చానల్ మాప్> plugin=<ladspa ప్లగిన్ నామము> label=<ladspa ప్లగిన్ లేబుల్> "
 | 
				
			||||||
"control=<ఇన్పుట్ నియంత్రణ విలువలయొక్క జాబితా>"
 | 
					"control=<ఇన్పుట్ నియంత్రణ విలువలయొక్క జాబితా>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1206,14 +1206,14 @@ msgstr "@HOSTNAME@ పై ఆడియో"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
| 
						 | 
					@ -1563,11 +1563,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "[%s:%u] చెల్లని లాగ్ లక్ష్యము '%s'."
 | 
					msgstr "[%s:%u] చెల్లని లాగ్ లక్ష్యము '%s'."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "అంతర్గత ఆడియో"
 | 
					msgstr "అంతర్గత ఆడియో"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "మోడెమ్"
 | 
					msgstr "మోడెమ్"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										71
									
								
								po/tr.po
									
										
									
									
									
								
							
							
						
						
									
										71
									
								
								po/tr.po
									
										
									
									
									
								
							| 
						 | 
					@ -10,8 +10,8 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PulseAudio master\n"
 | 
					"Project-Id-Version: PulseAudio master\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2024-08-01 04:41+0000\n"
 | 
					"PO-Revision-Date: 2022-05-18 22:27+0000\n"
 | 
				
			||||||
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
 | 
					"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
 | 
				
			||||||
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Turkish <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
"pulseaudio/pulseaudio/tr/>\n"
 | 
					"pulseaudio/pulseaudio/tr/>\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=1; plural=0;\n"
 | 
					"Plural-Forms: nplurals=1; plural=0;\n"
 | 
				
			||||||
"X-Generator: Weblate 5.6.2\n"
 | 
					"X-Generator: Weblate 4.12.2\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -105,17 +105,17 @@ msgstr ""
 | 
				
			||||||
"yöntemlerini döker\n"
 | 
					"yöntemlerini döker\n"
 | 
				
			||||||
"      --cleanup-shm                     Eski paylaşımlı bellek segmentlerini "
 | 
					"      --cleanup-shm                     Eski paylaşımlı bellek segmentlerini "
 | 
				
			||||||
"temizler\n"
 | 
					"temizler\n"
 | 
				
			||||||
"      --start                           Eğer çalışmıyorsa art alan hizmetini "
 | 
					"      --start                           Eğer çalışmıyorsa arka plan "
 | 
				
			||||||
"başlatır\n"
 | 
					"programını başlatır\n"
 | 
				
			||||||
"  -k  --kill                             Çalışan bir art alan hizmetini "
 | 
					"  -k  --kill                             Çalışan bir arka plan progamını "
 | 
				
			||||||
"sonlandırır\n"
 | 
					"sonlandırır\n"
 | 
				
			||||||
"      --check                         Çalışan bir art alan hizmetini "
 | 
					"      --check                         Çalışan bir arka plan programını "
 | 
				
			||||||
"denetler (sadece çıkış kodu döner)\n"
 | 
					"denetler (sadece çıkış kodu döner)\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"SEÇENEKLER:\n"
 | 
					"SEÇENEKLER:\n"
 | 
				
			||||||
"      --system[=BOOL]                   Sistem çapında örnek olarak "
 | 
					"      --system[=BOOL]                   Sistem çapında örnek olarak "
 | 
				
			||||||
"çalıştırır\n"
 | 
					"çalıştırır\n"
 | 
				
			||||||
"  -D, --daemonize[=BOOL]                Başladıktan sonra art alan hizmeti "
 | 
					"  -D, --daemonize[=BOOL]                Başladıktan sonra arka plan programı "
 | 
				
			||||||
"olarak çalıştırır\n"
 | 
					"olarak çalıştırır\n"
 | 
				
			||||||
"      --fail[=BOOL]                     Başlangıç başarısız olduğunda çıkar\n"
 | 
					"      --fail[=BOOL]                     Başlangıç başarısız olduğunda çıkar\n"
 | 
				
			||||||
"      --high-priority[=BOOL]            Yüksek öncelik seviyesi ayarlamayı "
 | 
					"      --high-priority[=BOOL]            Yüksek öncelik seviyesi ayarlamayı "
 | 
				
			||||||
| 
						 | 
					@ -136,7 +136,7 @@ msgstr ""
 | 
				
			||||||
"      --disallow-exit[=BOOL]            Kullanıcının çıkış isteğine izin "
 | 
					"      --disallow-exit[=BOOL]            Kullanıcının çıkış isteğine izin "
 | 
				
			||||||
"vermez\n"
 | 
					"vermez\n"
 | 
				
			||||||
"      --exit-idle-time=SANİYE           Boştayken ve bu süre geçtiğinde\n"
 | 
					"      --exit-idle-time=SANİYE           Boştayken ve bu süre geçtiğinde\n"
 | 
				
			||||||
"                                        art alan hizmetini sonlandırır\n"
 | 
					"                                        arka plan programını sonlandırır\n"
 | 
				
			||||||
"      --scache-idle-time=SANİYE         Boştayken ve bu süre geçtiğinde "
 | 
					"      --scache-idle-time=SANİYE         Boştayken ve bu süre geçtiğinde "
 | 
				
			||||||
"otomatik\n"
 | 
					"otomatik\n"
 | 
				
			||||||
"                                        yüklenmiş örnekleri kaldırır\n"
 | 
					"                                        yüklenmiş örnekleri kaldırır\n"
 | 
				
			||||||
| 
						 | 
					@ -459,7 +459,7 @@ msgstr ""
 | 
				
			||||||
#: src/daemon/main.c:788
 | 
					#: src/daemon/main.c:788
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Failed to kill daemon: %s"
 | 
					msgid "Failed to kill daemon: %s"
 | 
				
			||||||
msgstr "Art alan hizmeti durdurulamadı: %s"
 | 
					msgstr "Arka plan programı durdurulamadı: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:817
 | 
					#: src/daemon/main.c:817
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -532,7 +532,7 @@ msgstr "read() başarısız oldu: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:954
 | 
					#: src/daemon/main.c:954
 | 
				
			||||||
msgid "Daemon startup failed."
 | 
					msgid "Daemon startup failed."
 | 
				
			||||||
msgstr "Art alan hizmetini başlatma başarısız oldu."
 | 
					msgstr "Arka plan programını başlatma başarısız oldu."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:987
 | 
					#: src/daemon/main.c:987
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -575,14 +575,12 @@ msgid ""
 | 
				
			||||||
"Failed to initialize daemon due to errors while executing startup commands. "
 | 
					"Failed to initialize daemon due to errors while executing startup commands. "
 | 
				
			||||||
"Source of commands: %s"
 | 
					"Source of commands: %s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Başlatma komutlarını çalıştırırken oluşan hatalar nedeniyle art alan hizmeti "
 | 
					"Başlatma komutlarını çalıştırırken oluşan hatalar nedeniyle arka plan "
 | 
				
			||||||
"başlatılamadı. Komutların kaynağı: %s"
 | 
					"programı başlatılamadı. Komutların kaynağı: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/main.c:1280
 | 
					#: src/daemon/main.c:1280
 | 
				
			||||||
msgid "Daemon startup without any loaded modules, refusing to work."
 | 
					msgid "Daemon startup without any loaded modules, refusing to work."
 | 
				
			||||||
msgstr ""
 | 
					msgstr "Hiç yüklü modül olmadan arka plan programının çalışması reddediliyor."
 | 
				
			||||||
"Hiç modül yüklenmeden çalışmaya başlamayan art alan hizmeti, çalışmayı "
 | 
					 | 
				
			||||||
"reddediyor."
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/pulseaudio.desktop.in:4
 | 
					#: src/daemon/pulseaudio.desktop.in:4
 | 
				
			||||||
msgid "PulseAudio Sound System"
 | 
					msgid "PulseAudio Sound System"
 | 
				
			||||||
| 
						 | 
					@ -1133,8 +1131,8 @@ msgstr ""
 | 
				
			||||||
"otomatikyüklenmiş=<set if this module is being loaded automatically> "
 | 
					"otomatikyüklenmiş=<set if this module is being loaded automatically> "
 | 
				
			||||||
"ses_paylaşım_kullan=<yes or no> "
 | 
					"ses_paylaşım_kullan=<yes or no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "%s üzerinde FFT tabanlı dengeleyici"
 | 
					msgstr "%s üzerinde FFT tabanlı dengeleyici"
 | 
				
			||||||
| 
						 | 
					@ -1201,14 +1199,14 @@ msgstr "@HOSTNAME@ üzerindeki SES"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "%s@%s için tünel"
 | 
					msgstr "%s@%s için tünel"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "%s/%s tünel"
 | 
					msgstr "%s/%s tünel"
 | 
				
			||||||
| 
						 | 
					@ -1558,11 +1556,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Geçersiz günlük hedefi."
 | 
					msgstr "Geçersiz günlük hedefi."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Dahili Ses"
 | 
					msgstr "Dahili Ses"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Modem"
 | 
					msgstr "Modem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1706,7 +1704,7 @@ msgstr "Akış boşaltma başarısız oldu: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:139
 | 
					#: src/utils/pacat.c:139
 | 
				
			||||||
msgid "Playback stream drained."
 | 
					msgid "Playback stream drained."
 | 
				
			||||||
msgstr "Oynatım akışı boşaltıldı."
 | 
					msgstr "Playback akışı boşaltıldı."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:150
 | 
					#: src/utils/pacat.c:150
 | 
				
			||||||
msgid "Draining connection to server."
 | 
					msgid "Draining connection to server."
 | 
				
			||||||
| 
						 | 
					@ -1969,8 +1967,8 @@ msgstr ""
 | 
				
			||||||
"      --format=ÖRNEKLEMEBİÇİMİ        Örnekleme biçimi, olası değerler için\n"
 | 
					"      --format=ÖRNEKLEMEBİÇİMİ        Örnekleme biçimi, olası değerler için\n"
 | 
				
			||||||
"                                      https://www.freedesktop.org/wiki/"
 | 
					"                                      https://www.freedesktop.org/wiki/"
 | 
				
			||||||
"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
					"Software/PulseAudio/Documentation/User/SupportedAudioFormats/\n"
 | 
				
			||||||
"                                      adresine bakın (öntanımlı değer: "
 | 
					"                                      adresine bakın (öntanımlı değer: s16ne)"
 | 
				
			||||||
"s16ne)\n"
 | 
					"\n"
 | 
				
			||||||
"      --channels=KANALLAR             Kanal sayısı, mono için 1, stereo için "
 | 
					"      --channels=KANALLAR             Kanal sayısı, mono için 1, stereo için "
 | 
				
			||||||
"2\n"
 | 
					"2\n"
 | 
				
			||||||
"                                      (öntanımlı değer: 2)\n"
 | 
					"                                      (öntanımlı değer: 2)\n"
 | 
				
			||||||
| 
						 | 
					@ -1983,8 +1981,8 @@ msgstr ""
 | 
				
			||||||
"      --fix-channels                  Kanal eşlemesini ve kanal sayısını "
 | 
					"      --fix-channels                  Kanal eşlemesini ve kanal sayısını "
 | 
				
			||||||
"akışın bağlı olduğu\n"
 | 
					"akışın bağlı olduğu\n"
 | 
				
			||||||
"                                      alıcı/kaynaktan alır.\n"
 | 
					"                                      alıcı/kaynaktan alır.\n"
 | 
				
			||||||
"      --no-remix                      Kanalları indirgemez ya da "
 | 
					"      --no-remix                      Kanalları indirgemez ya da çoğaltamaz."
 | 
				
			||||||
"çoğaltamaz.\n"
 | 
					"\n"
 | 
				
			||||||
"      --no-remap                      Ad yerine dizin ile kanalları eşler.\n"
 | 
					"      --no-remap                      Ad yerine dizin ile kanalları eşler.\n"
 | 
				
			||||||
"      --latency=BAYT                  Bayt cinsinden belirtilen gecikmeyi "
 | 
					"      --latency=BAYT                  Bayt cinsinden belirtilen gecikmeyi "
 | 
				
			||||||
"ister.\n"
 | 
					"ister.\n"
 | 
				
			||||||
| 
						 | 
					@ -2300,7 +2298,7 @@ msgstr ""
 | 
				
			||||||
#: src/utils/pacmd.c:143
 | 
					#: src/utils/pacmd.c:143
 | 
				
			||||||
msgid "No PulseAudio daemon running, or not running as session daemon."
 | 
					msgid "No PulseAudio daemon running, or not running as session daemon."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Çalışan PulseAudio art alan hizmeti yok veya bir oturum art alan hizmeti "
 | 
					"Çalışan PulseAudio arka plan programı yok veya bir oturum arka plan progamı "
 | 
				
			||||||
"olarak çalışmıyor."
 | 
					"olarak çalışmıyor."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:148
 | 
					#: src/utils/pacmd.c:148
 | 
				
			||||||
| 
						 | 
					@ -2315,11 +2313,11 @@ msgstr "connect(): %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:173
 | 
					#: src/utils/pacmd.c:173
 | 
				
			||||||
msgid "Failed to kill PulseAudio daemon."
 | 
					msgid "Failed to kill PulseAudio daemon."
 | 
				
			||||||
msgstr "PulseAudio art alan hizmeti durdurulamadı."
 | 
					msgstr "PulseAudio arka plan programı durdurulamadı."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:181
 | 
					#: src/utils/pacmd.c:181
 | 
				
			||||||
msgid "Daemon not responding."
 | 
					msgid "Daemon not responding."
 | 
				
			||||||
msgstr "Art alan hizmeti yanıt vermiyor."
 | 
					msgstr "Arka plan programı yanıt vermiyor."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacmd.c:213 src/utils/pacmd.c:322 src/utils/pacmd.c:340
 | 
					#: src/utils/pacmd.c:213 src/utils/pacmd.c:322 src/utils/pacmd.c:340
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -3332,11 +3330,12 @@ msgid ""
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"%s [-D ekran] [-S sunucu] [-O alıcı] [-I kaynak] [-c dosya]  [-d|-e|-i|-r]\n"
 | 
					"%s [-D ekran] [-S sunucu] [-O alıcı] [-I kaynak] [-c dosya]  [-d|-e|-i|-r]\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
" -d    X11 ekranına bağlı geçerli PulseAudio verilerini göster (öntanımlı)\n"
 | 
					" -d    X11 ekranına bağlı geçerli PulseAudio verilerini gösterir "
 | 
				
			||||||
" -e    X11 ekranına bağlı yerel PulseAudio verilerini dışa aktar\n"
 | 
					"(öntanımlı)\n"
 | 
				
			||||||
 | 
					" -e    X11 ekranına bağlı yerel PulseAudio verilerini dışa aktarır\n"
 | 
				
			||||||
" -i    X11 ekranından PulseAudio verilerini yerel çevresel değişkenlere ve "
 | 
					" -i    X11 ekranından PulseAudio verilerini yerel çevresel değişkenlere ve "
 | 
				
			||||||
"çerez dosyalarına aktar\n"
 | 
					"çerez dosyalarına aktarır.\n"
 | 
				
			||||||
" -r    X11 ekranından PulseAudio verilerini kaldır\n"
 | 
					" -r    X11 ekranından PulseAudio verilerini kaldırır\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pax11publish.c:91
 | 
					#: src/utils/pax11publish.c:91
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								po/uk.po
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								po/uk.po
									
										
									
									
									
								
							| 
						 | 
					@ -7,7 +7,7 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio\n"
 | 
					"Project-Id-Version: pulseaudio\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2022-05-18 22:27+0000\n"
 | 
					"PO-Revision-Date: 2022-05-18 22:27+0000\n"
 | 
				
			||||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 | 
					"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 | 
				
			||||||
"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/"
 | 
					"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/"
 | 
				
			||||||
| 
						 | 
					@ -1174,8 +1174,8 @@ msgstr ""
 | 
				
			||||||
"channel_map=<карта каналів> autoloaded=<визначити, чи слід завантажувати цей "
 | 
					"channel_map=<карта каналів> autoloaded=<визначити, чи слід завантажувати цей "
 | 
				
			||||||
"модуль у автоматичному режимі> use_volume_sharing=<yes або no> "
 | 
					"модуль у автоматичному режимі> use_volume_sharing=<yes або no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "Еквалайзер на основі ШПФ на %s"
 | 
					msgstr "Еквалайзер на основі ШПФ на %s"
 | 
				
			||||||
| 
						 | 
					@ -1242,14 +1242,14 @@ msgstr "Звук на @НАЗВАВУЗЛА@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "Тунель для %s@%s"
 | 
					msgstr "Тунель для %s@%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "Тунель до %s/%s"
 | 
					msgstr "Тунель до %s/%s"
 | 
				
			||||||
| 
						 | 
					@ -1601,11 +1601,11 @@ msgstr ""
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "Некоректна адреса файла журналу."
 | 
					msgstr "Некоректна адреса файла журналу."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "Вбудоване аудіо"
 | 
					msgstr "Вбудоване аудіо"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "Модем"
 | 
					msgstr "Модем"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										47
									
								
								po/zh_CN.po
									
										
									
									
									
								
							
							
						
						
									
										47
									
								
								po/zh_CN.po
									
										
									
									
									
								
							| 
						 | 
					@ -12,9 +12,9 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: pulseaudio.master-tx\n"
 | 
					"Project-Id-Version: pulseaudio.master-tx\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2023-12-22 16:37+0000\n"
 | 
					"PO-Revision-Date: 2021-12-04 09:16+0000\n"
 | 
				
			||||||
"Last-Translator: Charles Lee <lchopn@gmail.com>\n"
 | 
					"Last-Translator: Lv Genggeng <lvgenggeng@uniontech.com>\n"
 | 
				
			||||||
"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/"
 | 
					"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/"
 | 
				
			||||||
"projects/pulseaudio/pulseaudio/zh_CN/>\n"
 | 
					"projects/pulseaudio/pulseaudio/zh_CN/>\n"
 | 
				
			||||||
"Language: zh_CN\n"
 | 
					"Language: zh_CN\n"
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,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.3\n"
 | 
					"X-Generator: Weblate 4.9.1\n"
 | 
				
			||||||
"X-Launchpad-Export-Date: 2016-03-22 13:23+0000\n"
 | 
					"X-Launchpad-Export-Date: 2016-03-22 13:23+0000\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
| 
						 | 
					@ -1083,8 +1083,8 @@ msgstr ""
 | 
				
			||||||
"format=<采样格式> rate=<采样率> channels=<声道数> channel_map=<声道映射> "
 | 
					"format=<采样格式> rate=<采样率> channels=<声道数> channel_map=<声道映射> "
 | 
				
			||||||
"autoloaded=<若为自动加载则会设置> use_volume_sharing=<yes 或 no> "
 | 
					"autoloaded=<若为自动加载则会设置> use_volume_sharing=<yes 或 no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "基于快速傅里叶变换的均衡器%s"
 | 
					msgstr "基于快速傅里叶变换的均衡器%s"
 | 
				
			||||||
| 
						 | 
					@ -1147,14 +1147,14 @@ msgstr "@HOSTNAME@ 中的音频"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "%s@%s 的通道"
 | 
					msgstr "%s@%s 的通道"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "到远程信宿 %s/%s 的通道"
 | 
					msgstr "到远程信宿 %s/%s 的通道"
 | 
				
			||||||
| 
						 | 
					@ -1498,11 +1498,11 @@ msgstr "尝试打开目标文件 '%s','%s.1','%s.2'…'%s.%d',但均失败
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "无效的日志目标。"
 | 
					msgstr "无效的日志目标。"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "内置音频"
 | 
					msgstr "内置音频"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "调制解调器"
 | 
					msgstr "调制解调器"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1816,7 +1816,7 @@ msgid "pa_stream_update_timing_info() failed: %s"
 | 
				
			||||||
msgstr "pa_stream_update_timing_info() 失败:%s"
 | 
					msgstr "pa_stream_update_timing_info() 失败:%s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pacat.c:676
 | 
					#: src/utils/pacat.c:676
 | 
				
			||||||
#, c-format
 | 
					#, fuzzy, c-format
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"%s [options]\n"
 | 
					"%s [options]\n"
 | 
				
			||||||
"%s\n"
 | 
					"%s\n"
 | 
				
			||||||
| 
						 | 
					@ -1885,7 +1885,6 @@ msgid ""
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"%s [选项]\n"
 | 
					"%s [选项]\n"
 | 
				
			||||||
"%s\n"
 | 
					"%s\n"
 | 
				
			||||||
"\n"
 | 
					 | 
				
			||||||
"  -h, --help                        显示此帮助\n"
 | 
					"  -h, --help                        显示此帮助\n"
 | 
				
			||||||
"      --version                     显示版本\n"
 | 
					"      --version                     显示版本\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -1898,21 +1897,21 @@ msgstr ""
 | 
				
			||||||
"  -d, --device=设备名               要连接的信宿/信源名称\n"
 | 
					"  -d, --device=设备名               要连接的信宿/信源名称\n"
 | 
				
			||||||
"  -n, --client-name=名称            如何在服务器中调用此客户端\n"
 | 
					"  -n, --client-name=名称            如何在服务器中调用此客户端\n"
 | 
				
			||||||
"      --stream-name=名称            如何在服务器中调用这个流\n"
 | 
					"      --stream-name=名称            如何在服务器中调用这个流\n"
 | 
				
			||||||
"      --volume=音量                 指定初始(线性)音量,取值在0..."
 | 
					"      --volume=音量                 指定初始(线性)音量,取值在0...65536之"
 | 
				
			||||||
"65536之间\n"
 | 
					"间\n"
 | 
				
			||||||
"      --rate=SAMPLERATE             采样频率(单位 Hz,默认为44100)\n"
 | 
					"      --rate=SAMPLERATE             采样频率(单位 Hz,默认为44100)\n"
 | 
				
			||||||
"      --format=SAMPLEFORMAT         采样类型,s16le、s16be、u8、float32le "
 | 
					"      --format=SAMPLEFORMAT         采样类型,s16le、s16be、u8、float32le 之"
 | 
				
			||||||
"之一\n"
 | 
					"一\n"
 | 
				
			||||||
"                                    float32be、ulaw、alaw、s32le、s32be "
 | 
					"                                    float32be、ulaw、alaw、s32le、s32be 中取"
 | 
				
			||||||
"中取(默认为 s16ne)\n"
 | 
					"(默认为 s16ne)\n"
 | 
				
			||||||
"      --channels=CHANNELS           通道数,1为单声道,2为立体声(默认为2)\n"
 | 
					"      --channels=CHANNELS           通道数,1为单声道,2为立体声(默认为2)\n"
 | 
				
			||||||
"      --channel-map=CHANNELMAP      取代默认值的通道映射表\n"
 | 
					"      --channel-map=CHANNELMAP      取代默认值的通道映射表\n"
 | 
				
			||||||
"      --fix-format                  从流连接的信宿中提取采样格式。\n"
 | 
					"      --fix-format                  从流连接的信宿中提取采样格式。\n"
 | 
				
			||||||
"      --fix-rate                    从流连接的信宿中提取采样率。\n"
 | 
					"      --fix-rate                    从流连接的信宿中提取采样率。\n"
 | 
				
			||||||
"      --fix-channels                从流连接的信宿中提取通道数和通道映射表。"
 | 
					"      --fix-channels                从流连接的信宿中提取通道数和通道映射"
 | 
				
			||||||
"\n"
 | 
					"表。\n"
 | 
				
			||||||
"      --no-remix                    不要对通道进行 upmix 或者 downmix 操作。"
 | 
					"      --no-remix                    不要对通道进行 upmix 或者 downmix 操"
 | 
				
			||||||
"\n"
 | 
					"作。\n"
 | 
				
			||||||
"      --no-remap                    根据下标而非名称来映射通道。\n"
 | 
					"      --no-remap                    根据下标而非名称来映射通道。\n"
 | 
				
			||||||
"      --latency=BYTES               请求指定字节数的延迟。\n"
 | 
					"      --latency=BYTES               请求指定字节数的延迟。\n"
 | 
				
			||||||
"      --process-time=BYTES          每次请求指定字节数的处理时间。\n"
 | 
					"      --process-time=BYTES          每次请求指定字节数的处理时间。\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										31
									
								
								po/zh_TW.po
									
										
									
									
									
								
							
							
						
						
									
										31
									
								
								po/zh_TW.po
									
										
									
									
									
								
							| 
						 | 
					@ -9,17 +9,16 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: PulseAudio Volume Control\n"
 | 
					"Project-Id-Version: PulseAudio Volume Control\n"
 | 
				
			||||||
"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-05-16 23:56+0300\n"
 | 
				
			||||||
"PO-Revision-Date: 2025-04-09 01:53+0000\n"
 | 
					"PO-Revision-Date: 2020-01-11 13:49+0800\n"
 | 
				
			||||||
"Last-Translator: hsu zangmen <chzang55@gmail.com>\n"
 | 
					"Last-Translator: pan93412 <pan93412@gmail.com>\n"
 | 
				
			||||||
"Language-Team: Chinese (Traditional) <https://translate.fedoraproject.org/"
 | 
					"Language-Team: Chinese <zh-l10n@lists.linux.org.tw>\n"
 | 
				
			||||||
"projects/pulseaudio/pulseaudio/zh_TW/>\n"
 | 
					 | 
				
			||||||
"Language: zh_TW\n"
 | 
					"Language: zh_TW\n"
 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
"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"
 | 
				
			||||||
 | 
					"X-Generator: Lokalize 19.12.0\n"
 | 
				
			||||||
"Plural-Forms: nplurals=1; plural=0;\n"
 | 
					"Plural-Forms: nplurals=1; plural=0;\n"
 | 
				
			||||||
"X-Generator: Weblate 5.10.4\n"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/daemon/cmdline.c:113
 | 
					#: src/daemon/cmdline.c:113
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					@ -1084,8 +1083,8 @@ msgstr ""
 | 
				
			||||||
"sink> format=<取樣格式> rate=<取樣率> channels=<聲道數> channel_map=<聲道對應"
 | 
					"sink> format=<取樣格式> rate=<取樣率> channels=<聲道數> channel_map=<聲道對應"
 | 
				
			||||||
"表> autoloaded=<設定此模組是否正被自動載入> use_volume_sharing=<yes 或 no> "
 | 
					"表> autoloaded=<設定此模組是否正被自動載入> use_volume_sharing=<yes 或 no> "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1097
 | 
					#: src/modules/module-equalizer-sink.c:1094
 | 
				
			||||||
#: src/modules/module-equalizer-sink.c:1220
 | 
					#: src/modules/module-equalizer-sink.c:1217
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "FFT based equalizer on %s"
 | 
					msgid "FFT based equalizer on %s"
 | 
				
			||||||
msgstr "FFT 基礎等化器於 %s"
 | 
					msgstr "FFT 基礎等化器於 %s"
 | 
				
			||||||
| 
						 | 
					@ -1149,14 +1148,14 @@ msgstr "音效位於 @HOSTNAME@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote sink_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
					#. TODO: old tunnel put here the remote source_name into stream name e.g. 'Null Output for lynxis@lazus'
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:370
 | 
					#: src/modules/module-tunnel-sink-new.c:356
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:354
 | 
					#: src/modules/module-tunnel-source-new.c:342
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel for %s@%s"
 | 
					msgid "Tunnel for %s@%s"
 | 
				
			||||||
msgstr "%s@%s 的穿隧道"
 | 
					msgstr "%s@%s 的穿隧道"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/modules/module-tunnel-sink-new.c:715
 | 
					#: src/modules/module-tunnel-sink-new.c:697
 | 
				
			||||||
#: src/modules/module-tunnel-source-new.c:684
 | 
					#: src/modules/module-tunnel-source-new.c:668
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
msgid "Tunnel to %s/%s"
 | 
					msgid "Tunnel to %s/%s"
 | 
				
			||||||
msgstr "前往 %s/%s 的穿隧道"
 | 
					msgstr "前往 %s/%s 的穿隧道"
 | 
				
			||||||
| 
						 | 
					@ -1502,11 +1501,11 @@ msgstr "試圖開啟目標檔「%s」、「%s.1」、「%s.2」...「%s.%d」,
 | 
				
			||||||
msgid "Invalid log target."
 | 
					msgid "Invalid log target."
 | 
				
			||||||
msgstr "無效的紀錄目標。"
 | 
					msgstr "無效的紀錄目標。"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3609
 | 
					#: src/pulsecore/sink.c:3600
 | 
				
			||||||
msgid "Built-in Audio"
 | 
					msgid "Built-in Audio"
 | 
				
			||||||
msgstr "內部音效"
 | 
					msgstr "內部音效"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/pulsecore/sink.c:3614
 | 
					#: src/pulsecore/sink.c:3605
 | 
				
			||||||
msgid "Modem"
 | 
					msgid "Modem"
 | 
				
			||||||
msgstr "數據機"
 | 
					msgstr "數據機"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2752,11 +2751,11 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 "無法正確解析 list-handlers 訊息回應"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: 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 "list-handlers 訊息回應內容不是 JSON 陣列"
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: src/utils/pactl.c:1729
 | 
					#: src/utils/pactl.c:1729
 | 
				
			||||||
#, c-format
 | 
					#, c-format
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,14 +17,7 @@ print_map_file() {
 | 
				
			||||||
    echo "};"
 | 
					    echo "};"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
print_def_file() {
 | 
					TARGET_FILE=$1
 | 
				
			||||||
    echo "EXPORTS"
 | 
					shift
 | 
				
			||||||
    ctags -I ${CTAGS_IDENTIFIER_LIST} -f - --c-kinds=p "$@" | awk '/^pa_/ && !/(^pa_glib_|^pa_simple_)/ { print $1 }' | sort
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
MAP_FILE=$1
 | 
					cd "${MESON_SOURCE_ROOT}/${MESON_SUBDIR}" && print_map_file "$@" > ${TARGET_FILE}
 | 
				
			||||||
DEF_FILE=$2
 | 
					 | 
				
			||||||
shift 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cd "${MESON_SOURCE_ROOT}/${MESON_SUBDIR}" && print_map_file "$@" > ${MAP_FILE}
 | 
					 | 
				
			||||||
cd "${MESON_SOURCE_ROOT}/${MESON_SUBDIR}" && print_def_file "$@" > ${DEF_FILE}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,13 +116,12 @@ _pactl() {
 | 
				
			||||||
                    modules samples clients message-handlers'
 | 
					                    modules samples clients message-handlers'
 | 
				
			||||||
    local commands=(stat info list exit upload-sample play-sample remove-sample
 | 
					    local commands=(stat info list exit upload-sample play-sample remove-sample
 | 
				
			||||||
                    load-module unload-module move-sink-input move-source-output
 | 
					                    load-module unload-module move-sink-input move-source-output
 | 
				
			||||||
                    suspend-sink suspend-source set-card-profile get-default-sink
 | 
					                    suspend-sink suspend-source set-card-profile set-default-sink
 | 
				
			||||||
                    set-default-sink set-sink-port get-default-source set-default-source
 | 
					                    set-sink-port set-default-source set-source-port set-sink-volume
 | 
				
			||||||
                    set-source-port get-sink-volume set-sink-volume get-source-volume
 | 
					 | 
				
			||||||
                    set-source-volume set-sink-input-volume set-source-output-volume
 | 
					                    set-source-volume set-sink-input-volume set-source-output-volume
 | 
				
			||||||
                    get-sink-mute set-sink-mute get-source-mute set-source-mute
 | 
					                    set-sink-mute set-source-mute set-sink-input-mute
 | 
				
			||||||
                    set-sink-input-mute set-source-output-mute set-sink-formats
 | 
					                    set-source-output-mute set-sink-formats set-port-latency-offset
 | 
				
			||||||
                    set-port-latency-offset subscribe send-message help)
 | 
					                    subscribe send-message help)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _init_completion -n = || return
 | 
					    _init_completion -n = || return
 | 
				
			||||||
    preprev=${words[$cword-2]}
 | 
					    preprev=${words[$cword-2]}
 | 
				
			||||||
| 
						 | 
					@ -187,8 +186,6 @@ _pactl() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        remove-sample) ;; # TODO
 | 
					        remove-sample) ;; # TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        get-default*) ;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        load-module)
 | 
					        load-module)
 | 
				
			||||||
            comps=$(__all_modules)
 | 
					            comps=$(__all_modules)
 | 
				
			||||||
            COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
 | 
					            COMPREPLY=($(compgen -W '${comps[*]}' -- "$cur"))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,12 +18,10 @@ _devices() {
 | 
				
			||||||
    if [[ $service == pactl  || $service == pacmd ]]; then
 | 
					    if [[ $service == pactl  || $service == pacmd ]]; then
 | 
				
			||||||
        case $words[$((CURRENT - 1))] in
 | 
					        case $words[$((CURRENT - 1))] in
 | 
				
			||||||
            set-sink-input-*) cmd=('sink-inputs');;
 | 
					            set-sink-input-*) cmd=('sink-inputs');;
 | 
				
			||||||
            get-sink-*) cmd=('sinks');;
 | 
					 | 
				
			||||||
            set-sink-*) cmd=('sinks');;
 | 
					            set-sink-*) cmd=('sinks');;
 | 
				
			||||||
            set-default-sink) cmd=('sinks');;
 | 
					            set-default-sink) cmd=('sinks');;
 | 
				
			||||||
            set-default-source) cmd=('sources');;
 | 
					            set-default-source) cmd=('sources');;
 | 
				
			||||||
            set-source-output-*) cmd=('source-outputs');;
 | 
					            set-source-output-*) cmd=('source-outputs');;
 | 
				
			||||||
            get-source-*) cmd=('sources');;
 | 
					 | 
				
			||||||
            set-source-*) cmd=('sources');;
 | 
					            set-source-*) cmd=('sources');;
 | 
				
			||||||
            suspend-sink) cmd=('sinks');;
 | 
					            suspend-sink) cmd=('sinks');;
 | 
				
			||||||
            suspend-source) cmd=('sources');;
 | 
					            suspend-source) cmd=('sources');;
 | 
				
			||||||
| 
						 | 
					@ -259,22 +257,16 @@ _pactl_completion() {
 | 
				
			||||||
            'suspend-sink: suspend or resume a sink'
 | 
					            'suspend-sink: suspend or resume a sink'
 | 
				
			||||||
            'suspend-source: suspend or resume a source'
 | 
					            'suspend-source: suspend or resume a source'
 | 
				
			||||||
            'set-card-profile: set a card profile'
 | 
					            'set-card-profile: set a card profile'
 | 
				
			||||||
            'get-default-sink: get the default sink'
 | 
					 | 
				
			||||||
            'set-default-sink: set the default sink'
 | 
					            'set-default-sink: set the default sink'
 | 
				
			||||||
            'get-default-source: get the default source'
 | 
					 | 
				
			||||||
            'set-default-source: set the default source'
 | 
					            'set-default-source: set the default source'
 | 
				
			||||||
            'set-sink-port: set the sink port of a sink'
 | 
					            'set-sink-port: set the sink port of a sink'
 | 
				
			||||||
            'set-source-port: set the source port of a source'
 | 
					            'set-source-port: set the source port of a source'
 | 
				
			||||||
            'set-port-latency-offset: set a latency offset on a port'
 | 
					            'set-port-latency-offset: set a latency offset on a port'
 | 
				
			||||||
            'get-sink-volume: get the volume of a sink'
 | 
					 | 
				
			||||||
            'set-sink-volume: set the volume of a sink'
 | 
					            'set-sink-volume: set the volume of a sink'
 | 
				
			||||||
            'get-source-volume: get the volume of a source'
 | 
					 | 
				
			||||||
            'set-source-volume: set the volume of a source'
 | 
					            'set-source-volume: set the volume of a source'
 | 
				
			||||||
            'set-sink-input-volume: set the volume of a stream'
 | 
					            'set-sink-input-volume: set the volume of a stream'
 | 
				
			||||||
            'set-source-output-volume: set the volume of a recording stream'
 | 
					            'set-source-output-volume: set the volume of a recording stream'
 | 
				
			||||||
            'get-sink-mute: get the mute status of a sink'
 | 
					 | 
				
			||||||
            'set-sink-mute: mute a sink'
 | 
					            'set-sink-mute: mute a sink'
 | 
				
			||||||
            'get-source-mute: get the mute status of a source'
 | 
					 | 
				
			||||||
            'set-source-mute: mute a source'
 | 
					            'set-source-mute: mute a source'
 | 
				
			||||||
            'set-sink-input-mute: mute a stream'
 | 
					            'set-sink-input-mute: mute a stream'
 | 
				
			||||||
            'set-source-output-mute: mute a recording stream'
 | 
					            'set-source-output-mute: mute a recording stream'
 | 
				
			||||||
| 
						 | 
					@ -500,15 +492,11 @@ _pactl_completion() {
 | 
				
			||||||
            set-default-source)                    if ((CURRENT == 2)); then _devices; fi;;
 | 
					            set-default-source)                    if ((CURRENT == 2)); then _devices; fi;;
 | 
				
			||||||
            set-sink-port)                         _set_sink_port_parameter;;
 | 
					            set-sink-port)                         _set_sink_port_parameter;;
 | 
				
			||||||
            set-source-port)                       _set_source_port_parameter;;
 | 
					            set-source-port)                       _set_source_port_parameter;;
 | 
				
			||||||
            get-sink-volume)                       if ((CURRENT == 2)); then _devices; fi;;
 | 
					 | 
				
			||||||
            set-sink-volume)                       if ((CURRENT == 2)); then _devices; fi;;
 | 
					            set-sink-volume)                       if ((CURRENT == 2)); then _devices; fi;;
 | 
				
			||||||
            get-source-volume)                     if ((CURRENT == 2)); then _devices; fi;;
 | 
					 | 
				
			||||||
            set-source-volume)                     if ((CURRENT == 2)); then _devices; fi;;
 | 
					            set-source-volume)                     if ((CURRENT == 2)); then _devices; fi;;
 | 
				
			||||||
            set-sink-input-volume)                 if ((CURRENT == 2)); then _devices; fi;;
 | 
					            set-sink-input-volume)                 if ((CURRENT == 2)); then _devices; fi;;
 | 
				
			||||||
            set-source-output-volume)              if ((CURRENT == 2)); then _devices; fi;;
 | 
					            set-source-output-volume)              if ((CURRENT == 2)); then _devices; fi;;
 | 
				
			||||||
            get-sink-mute)                         if ((CURRENT == 2)); then _devices; fi;;
 | 
					 | 
				
			||||||
            set-sink-mute)                         _set_sink_mute_parameter;;
 | 
					            set-sink-mute)                         _set_sink_mute_parameter;;
 | 
				
			||||||
            get-source-mute)                       if ((CURRENT == 2)); then _devices; fi;;
 | 
					 | 
				
			||||||
            set-source-mute)                       _set_source_mute_parameter;;
 | 
					            set-source-mute)                       _set_source_mute_parameter;;
 | 
				
			||||||
            set-sink-input-mute)                   _set_sink_input_mute_parameter;;
 | 
					            set-sink-input-mute)                   _set_sink_input_mute_parameter;;
 | 
				
			||||||
            set-source-output-mute)                _set_source_output_mute_parameter;;
 | 
					            set-source-output-mute)                _set_source_output_mute_parameter;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -141,7 +141,7 @@ custom_target('system.pa',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if dbus_dep.found()
 | 
					if dbus_dep.found()
 | 
				
			||||||
  install_data('pulseaudio-system.conf',
 | 
					  install_data('pulseaudio-system.conf',
 | 
				
			||||||
    install_dir : join_paths(datadir, 'dbus-1', 'system.d')
 | 
					    install_dir : join_paths(sysconfdir, 'dbus-1', 'system.d')
 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -182,14 +182,9 @@ if host_machine.system() == 'windows'
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
  libpulsecommon_sources += [
 | 
					  libpulsecommon_sources += [
 | 
				
			||||||
    'pulsecore/mutex-posix.c',
 | 
					    'pulsecore/mutex-posix.c',
 | 
				
			||||||
    'pulsecore/poll-posix.c',
 | 
					    'pulsecore/semaphore-posix.c',
 | 
				
			||||||
    'pulsecore/thread-posix.c',
 | 
					    'pulsecore/thread-posix.c'
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
  if host_machine.system() == 'darwin'
 | 
					 | 
				
			||||||
    libpulsecommon_sources += ['pulsecore/semaphore-osx.c']
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    libpulsecommon_sources += ['pulsecore/semaphore-posix.c']
 | 
					 | 
				
			||||||
  endif
 | 
					 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
# FIXME: Do SIMD things
 | 
					# FIXME: Do SIMD things
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -210,7 +205,7 @@ else
 | 
				
			||||||
      libm_dep, thread_dep, dl_dep, shm_dep, iconv_dep, sndfile_dep, dbus_dep,
 | 
					      libm_dep, thread_dep, dl_dep, shm_dep, iconv_dep, sndfile_dep, dbus_dep,
 | 
				
			||||||
      x11_dep, libsystemd_dep, glib_dep.partial_dependency(compile_args: true),
 | 
					      x11_dep, libsystemd_dep, glib_dep.partial_dependency(compile_args: true),
 | 
				
			||||||
      gtk_dep.partial_dependency(compile_args: true), asyncns_dep, libintl_dep,
 | 
					      gtk_dep.partial_dependency(compile_args: true), asyncns_dep, libintl_dep,
 | 
				
			||||||
      platform_dep, platform_socket_dep, execinfo_dep, libatomic_ops_dep,
 | 
					      platform_dep, platform_socket_dep, execinfo_dep,
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    implicit_include_directories : false)
 | 
					    implicit_include_directories : false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -175,9 +175,6 @@ ATTRS{idVendor}=="1395", ATTRS{idProduct}=="0300", ENV{PULSE_PROFILE_SET}="usb-g
 | 
				
			||||||
# Sennheiser GSP 670 USB headset
 | 
					# Sennheiser GSP 670 USB headset
 | 
				
			||||||
ATTRS{idVendor}=="1395", ATTRS{idProduct}=="008a", ENV{PULSE_PROFILE_SET}="usb-gaming-headset.conf"
 | 
					ATTRS{idVendor}=="1395", ATTRS{idProduct}=="008a", ENV{PULSE_PROFILE_SET}="usb-gaming-headset.conf"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Asus Xonar SE
 | 
					 | 
				
			||||||
ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="189d", ENV{PULSE_PROFILE_SET}="asus-xonar-se.conf"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GOTO="pulseaudio_end"
 | 
					GOTO="pulseaudio_end"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LABEL="pulseaudio_check_pci"
 | 
					LABEL="pulseaudio_check_pci"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2838,7 +2838,7 @@ static int path_verify(pa_alsa_path *p) {
 | 
				
			||||||
        if (p->device_port_type == PA_DEVICE_PORT_TYPE_UNKNOWN)
 | 
					        if (p->device_port_type == PA_DEVICE_PORT_TYPE_UNKNOWN)
 | 
				
			||||||
            p->device_port_type = map->type;
 | 
					            p->device_port_type = map->type;
 | 
				
			||||||
        if (!p->description)
 | 
					        if (!p->description)
 | 
				
			||||||
            p->description = pa_xstrdup(_(map->description));
 | 
					            p->description = pa_xstrdup(map->description);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!p->description) {
 | 
					    if (!p->description) {
 | 
				
			||||||
| 
						 | 
					@ -2851,44 +2851,41 @@ static int path_verify(pa_alsa_path *p) {
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static char *get_data_path(const char *data_dir, const char *data_type, const char *fname) {
 | 
					static char *get_path_config_path(const char *paths_dir, const char *fname) {
 | 
				
			||||||
    char *result;
 | 
					    char *path_config_path;
 | 
				
			||||||
    char *dir;
 | 
					    char *dir;
 | 
				
			||||||
    char *data_home;
 | 
					    char *data_home;
 | 
				
			||||||
    pa_dynarray *data_dirs;
 | 
					    pa_dynarray *data_dirs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (data_dir) {
 | 
					    if (paths_dir) {
 | 
				
			||||||
        result = pa_maybe_prefix_path(fname, data_dir);
 | 
					        path_config_path = pa_maybe_prefix_path(fname, paths_dir);
 | 
				
			||||||
        if (access(result, R_OK) == 0)
 | 
					        if (access(path_config_path, R_OK) == 0)
 | 
				
			||||||
            return result;
 | 
					            return path_config_path;
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            pa_xfree(result);
 | 
					            pa_xfree(path_config_path);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HAVE_RUNNING_FROM_BUILD_TREE
 | 
					#ifdef HAVE_RUNNING_FROM_BUILD_TREE
 | 
				
			||||||
    if (pa_run_from_build_tree()) {
 | 
					    if (pa_run_from_build_tree()) {
 | 
				
			||||||
        dir = pa_sprintf_malloc(PA_SRCDIR "/modules/alsa/mixer/%s/", data_type);
 | 
					        path_config_path = pa_maybe_prefix_path(fname, PA_SRCDIR "/modules/alsa/mixer/paths/");
 | 
				
			||||||
        result = pa_maybe_prefix_path(fname, dir);
 | 
					        if (access(path_config_path, R_OK) == 0)
 | 
				
			||||||
        pa_xfree(dir);
 | 
					            return path_config_path;
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (access(result, R_OK) == 0)
 | 
					 | 
				
			||||||
            return result;
 | 
					 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            pa_xfree(result);
 | 
					            pa_xfree(path_config_path);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (pa_get_data_home_dir(&data_home) == 0) {
 | 
					    if (pa_get_data_home_dir(&data_home) == 0) {
 | 
				
			||||||
        dir = pa_sprintf_malloc("%s" PA_PATH_SEP "alsa-mixer" PA_PATH_SEP "%s", data_home, data_type);
 | 
					        dir = pa_sprintf_malloc("%s" PA_PATH_SEP "alsa-mixer" PA_PATH_SEP "paths", data_home);
 | 
				
			||||||
        pa_xfree(data_home);
 | 
					        pa_xfree(data_home);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        result = pa_maybe_prefix_path(fname, dir);
 | 
					        path_config_path = pa_maybe_prefix_path(fname, dir);
 | 
				
			||||||
        pa_xfree(dir);
 | 
					        pa_xfree(dir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (access(result, R_OK) == 0)
 | 
					        if (access(path_config_path, R_OK) == 0)
 | 
				
			||||||
            return result;
 | 
					            return path_config_path;
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            pa_xfree(result);
 | 
					            pa_xfree(path_config_path);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (pa_get_data_dirs(&data_dirs) == 0) {
 | 
					    if (pa_get_data_dirs(&data_dirs) == 0) {
 | 
				
			||||||
| 
						 | 
					@ -2896,27 +2893,24 @@ static char *get_data_path(const char *data_dir, const char *data_type, const ch
 | 
				
			||||||
        const char *n;
 | 
					        const char *n;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PA_DYNARRAY_FOREACH(n, data_dirs, idx) {
 | 
					        PA_DYNARRAY_FOREACH(n, data_dirs, idx) {
 | 
				
			||||||
            dir = pa_sprintf_malloc("%s" PA_PATH_SEP "alsa-mixer" PA_PATH_SEP "%s", n, data_type);
 | 
					            dir = pa_sprintf_malloc("%s" PA_PATH_SEP "alsa-mixer" PA_PATH_SEP "paths", n);
 | 
				
			||||||
            result = pa_maybe_prefix_path(fname, dir);
 | 
					            path_config_path = pa_maybe_prefix_path(fname, dir);
 | 
				
			||||||
            pa_xfree(dir);
 | 
					            pa_xfree(dir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (access(result, R_OK) == 0) {
 | 
					            if (access(path_config_path, R_OK) == 0) {
 | 
				
			||||||
                pa_dynarray_free(data_dirs);
 | 
					                pa_dynarray_free(data_dirs);
 | 
				
			||||||
                return result;
 | 
					                return path_config_path;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else {
 | 
					            else {
 | 
				
			||||||
                pa_xfree(result);
 | 
					                pa_xfree(path_config_path);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pa_dynarray_free(data_dirs);
 | 
					        pa_dynarray_free(data_dirs);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dir = pa_sprintf_malloc(PA_ALSA_DATA_DIR PA_PATH_SEP "%s", data_type);
 | 
					    path_config_path = pa_maybe_prefix_path(fname, PA_ALSA_PATHS_DIR);
 | 
				
			||||||
    result = pa_maybe_prefix_path(fname, dir);
 | 
					    return path_config_path;
 | 
				
			||||||
    pa_xfree(dir);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return result;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pa_alsa_path* pa_alsa_path_new(const char *paths_dir, const char *fname, pa_alsa_direction_t direction) {
 | 
					pa_alsa_path* pa_alsa_path_new(const char *paths_dir, const char *fname, pa_alsa_direction_t direction) {
 | 
				
			||||||
| 
						 | 
					@ -2983,7 +2977,7 @@ pa_alsa_path* pa_alsa_path_new(const char *paths_dir, const char *fname, pa_alsa
 | 
				
			||||||
    items[2].data = &p->description;
 | 
					    items[2].data = &p->description;
 | 
				
			||||||
    items[3].data = &mute_during_activation;
 | 
					    items[3].data = &mute_during_activation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fn = get_data_path(paths_dir, "paths", fname);
 | 
					    fn = get_path_config_path(paths_dir, fname);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_log_info("Loading path config: %s", fn);
 | 
					    pa_log_info("Loading path config: %s", fn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4977,9 +4971,11 @@ pa_alsa_profile_set* pa_alsa_profile_set_new(const char *fname, const pa_channel
 | 
				
			||||||
    if (!fname)
 | 
					    if (!fname)
 | 
				
			||||||
        fname = "default.conf";
 | 
					        fname = "default.conf";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fn = get_data_path(NULL, "profile-sets", fname);
 | 
					    fn = pa_maybe_prefix_path(fname,
 | 
				
			||||||
 | 
					#ifdef HAVE_RUNNING_FROM_BUILD_TREE
 | 
				
			||||||
    pa_log_info("Loading profile set: %s", fn);
 | 
					                              pa_run_from_build_tree() ? PA_SRCDIR "/modules/alsa/mixer/profile-sets/" :
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					                              PA_ALSA_PROFILE_SETS_DIR);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    r = pa_config_parse(fn, NULL, items, NULL, false, ps);
 | 
					    r = pa_config_parse(fn, NULL, items, NULL, false, ps);
 | 
				
			||||||
    pa_xfree(fn);
 | 
					    pa_xfree(fn);
 | 
				
			||||||
| 
						 | 
					@ -5078,7 +5074,7 @@ static snd_pcm_t* mapping_open_pcm(pa_alsa_mapping *m,
 | 
				
			||||||
    handle = pa_alsa_open_by_template(
 | 
					    handle = pa_alsa_open_by_template(
 | 
				
			||||||
                              m->device_strings, dev_id, NULL, &try_ss,
 | 
					                              m->device_strings, dev_id, NULL, &try_ss,
 | 
				
			||||||
                              &try_map, mode, &try_period_size,
 | 
					                              &try_map, mode, &try_period_size,
 | 
				
			||||||
                              &try_buffer_size, 0, NULL, NULL, NULL, NULL, exact_channels);
 | 
					                              &try_buffer_size, 0, NULL, NULL, exact_channels);
 | 
				
			||||||
    if (handle && !exact_channels && m->channel_map.channels != try_map.channels) {
 | 
					    if (handle && !exact_channels && m->channel_map.channels != try_map.channels) {
 | 
				
			||||||
        char buf[PA_CHANNEL_MAP_SNPRINT_MAX];
 | 
					        char buf[PA_CHANNEL_MAP_SNPRINT_MAX];
 | 
				
			||||||
        pa_log_debug("Channel map for mapping '%s' permanently changed to '%s'", m->name,
 | 
					        pa_log_debug("Channel map for mapping '%s' permanently changed to '%s'", m->name,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -318,7 +318,7 @@ struct pa_alsa_mapping {
 | 
				
			||||||
    pa_sink *sink;
 | 
					    pa_sink *sink;
 | 
				
			||||||
    pa_source *source;
 | 
					    pa_source *source;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* ucm device context */
 | 
					    /* ucm device context*/
 | 
				
			||||||
    pa_alsa_ucm_mapping_context ucm_context;
 | 
					    pa_alsa_ucm_mapping_context ucm_context;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -342,9 +342,6 @@ struct pa_alsa_profile {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_idxset *input_mappings;
 | 
					    pa_idxset *input_mappings;
 | 
				
			||||||
    pa_idxset *output_mappings;
 | 
					    pa_idxset *output_mappings;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* ucm device context */
 | 
					 | 
				
			||||||
    pa_alsa_ucm_profile_context ucm_context;
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct pa_alsa_decibel_fix {
 | 
					struct pa_alsa_decibel_fix {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1721,7 +1721,7 @@ static int sink_set_port_ucm_cb(pa_sink *s, pa_device_port *p) {
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        sync_mixer(u, p);
 | 
					        sync_mixer(u, p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return pa_alsa_ucm_set_port(u->ucm_context, p);
 | 
					    return pa_alsa_ucm_set_port(u->ucm_context, p, true);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int sink_set_port_cb(pa_sink *s, pa_device_port *p) {
 | 
					static int sink_set_port_cb(pa_sink *s, pa_device_port *p) {
 | 
				
			||||||
| 
						 | 
					@ -2239,7 +2239,7 @@ static int setup_mixer(struct userdata *u, bool ignore_dB) {
 | 
				
			||||||
     * will be NULL, but the UCM device enable sequence will still need to be
 | 
					     * will be NULL, but the UCM device enable sequence will still need to be
 | 
				
			||||||
     * executed. */
 | 
					     * executed. */
 | 
				
			||||||
    if (u->sink->active_port && u->ucm_context) {
 | 
					    if (u->sink->active_port && u->ucm_context) {
 | 
				
			||||||
        if (pa_alsa_ucm_set_port(u->ucm_context, u->sink->active_port) < 0)
 | 
					        if (pa_alsa_ucm_set_port(u->ucm_context, u->sink->active_port, true) < 0)
 | 
				
			||||||
            return -1;
 | 
					            return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2527,9 +2527,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
 | 
				
			||||||
                      &ss, &map,
 | 
					                      &ss, &map,
 | 
				
			||||||
                      SND_PCM_STREAM_PLAYBACK,
 | 
					                      SND_PCM_STREAM_PLAYBACK,
 | 
				
			||||||
                      &period_frames, &buffer_frames, tsched_frames,
 | 
					                      &period_frames, &buffer_frames, tsched_frames,
 | 
				
			||||||
                      &b, &d,
 | 
					                      &b, &d, mapping)))
 | 
				
			||||||
                      &u->supported_formats, &u->supported_rates,
 | 
					 | 
				
			||||||
                      mapping)))
 | 
					 | 
				
			||||||
            goto fail;
 | 
					            goto fail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    } else if ((dev_id = pa_modargs_get_value(ma, "device_id", NULL))) {
 | 
					    } else if ((dev_id = pa_modargs_get_value(ma, "device_id", NULL))) {
 | 
				
			||||||
| 
						 | 
					@ -2543,9 +2541,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
 | 
				
			||||||
                      &ss, &map,
 | 
					                      &ss, &map,
 | 
				
			||||||
                      SND_PCM_STREAM_PLAYBACK,
 | 
					                      SND_PCM_STREAM_PLAYBACK,
 | 
				
			||||||
                      &period_frames, &buffer_frames, tsched_frames,
 | 
					                      &period_frames, &buffer_frames, tsched_frames,
 | 
				
			||||||
                      &b, &d,
 | 
					                      &b, &d, profile_set, &mapping)))
 | 
				
			||||||
                      &u->supported_formats, &u->supported_rates,
 | 
					 | 
				
			||||||
                      profile_set, &mapping)))
 | 
					 | 
				
			||||||
            goto fail;
 | 
					            goto fail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
| 
						 | 
					@ -2556,9 +2552,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
 | 
				
			||||||
                      &ss, &map,
 | 
					                      &ss, &map,
 | 
				
			||||||
                      SND_PCM_STREAM_PLAYBACK,
 | 
					                      SND_PCM_STREAM_PLAYBACK,
 | 
				
			||||||
                      &period_frames, &buffer_frames, tsched_frames,
 | 
					                      &period_frames, &buffer_frames, tsched_frames,
 | 
				
			||||||
                      &b, &d,
 | 
					                      &b, &d, false)))
 | 
				
			||||||
                      &u->supported_formats, &u->supported_rates,
 | 
					 | 
				
			||||||
                      false)))
 | 
					 | 
				
			||||||
            goto fail;
 | 
					            goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2604,11 +2598,13 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    u->verified_sample_spec = ss;
 | 
					    u->verified_sample_spec = ss;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    u->supported_formats = pa_alsa_get_supported_formats(u->pcm_handle, ss.format);
 | 
				
			||||||
    if (!u->supported_formats) {
 | 
					    if (!u->supported_formats) {
 | 
				
			||||||
        pa_log_error("Failed to find any supported sample formats.");
 | 
					        pa_log_error("Failed to find any supported sample formats.");
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    u->supported_rates = pa_alsa_get_supported_rates(u->pcm_handle, ss.rate);
 | 
				
			||||||
    if (!u->supported_rates) {
 | 
					    if (!u->supported_rates) {
 | 
				
			||||||
        pa_log_error("Failed to find any supported sample rates.");
 | 
					        pa_log_error("Failed to find any supported sample rates.");
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1595,7 +1595,7 @@ static int source_set_port_ucm_cb(pa_source *s, pa_device_port *p) {
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        sync_mixer(u, p);
 | 
					        sync_mixer(u, p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return pa_alsa_ucm_set_port(u->ucm_context, p);
 | 
					    return pa_alsa_ucm_set_port(u->ucm_context, p, false);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int source_set_port_cb(pa_source *s, pa_device_port *p) {
 | 
					static int source_set_port_cb(pa_source *s, pa_device_port *p) {
 | 
				
			||||||
| 
						 | 
					@ -1943,7 +1943,7 @@ static int setup_mixer(struct userdata *u, bool ignore_dB) {
 | 
				
			||||||
     * will be NULL, but the UCM device enable sequence will still need to be
 | 
					     * will be NULL, but the UCM device enable sequence will still need to be
 | 
				
			||||||
     * executed. */
 | 
					     * executed. */
 | 
				
			||||||
    if (u->source->active_port && u->ucm_context) {
 | 
					    if (u->source->active_port && u->ucm_context) {
 | 
				
			||||||
        if (pa_alsa_ucm_set_port(u->ucm_context, u->source->active_port) < 0)
 | 
					        if (pa_alsa_ucm_set_port(u->ucm_context, u->source->active_port, false) < 0)
 | 
				
			||||||
            return -1;
 | 
					            return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2218,7 +2218,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
 | 
				
			||||||
                      &ss, &map,
 | 
					                      &ss, &map,
 | 
				
			||||||
                      SND_PCM_STREAM_CAPTURE,
 | 
					                      SND_PCM_STREAM_CAPTURE,
 | 
				
			||||||
                      &period_frames, &buffer_frames, tsched_frames,
 | 
					                      &period_frames, &buffer_frames, tsched_frames,
 | 
				
			||||||
                      &b, &d, &u->supported_formats, &u->supported_rates, mapping)))
 | 
					                      &b, &d, mapping)))
 | 
				
			||||||
            goto fail;
 | 
					            goto fail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    } else if ((dev_id = pa_modargs_get_value(ma, "device_id", NULL))) {
 | 
					    } else if ((dev_id = pa_modargs_get_value(ma, "device_id", NULL))) {
 | 
				
			||||||
| 
						 | 
					@ -2232,7 +2232,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
 | 
				
			||||||
                      &ss, &map,
 | 
					                      &ss, &map,
 | 
				
			||||||
                      SND_PCM_STREAM_CAPTURE,
 | 
					                      SND_PCM_STREAM_CAPTURE,
 | 
				
			||||||
                      &period_frames, &buffer_frames, tsched_frames,
 | 
					                      &period_frames, &buffer_frames, tsched_frames,
 | 
				
			||||||
                      &b, &d, &u->supported_formats, &u->supported_rates, profile_set, &mapping)))
 | 
					                      &b, &d, profile_set, &mapping)))
 | 
				
			||||||
            goto fail;
 | 
					            goto fail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
| 
						 | 
					@ -2243,7 +2243,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
 | 
				
			||||||
                      &ss, &map,
 | 
					                      &ss, &map,
 | 
				
			||||||
                      SND_PCM_STREAM_CAPTURE,
 | 
					                      SND_PCM_STREAM_CAPTURE,
 | 
				
			||||||
                      &period_frames, &buffer_frames, tsched_frames,
 | 
					                      &period_frames, &buffer_frames, tsched_frames,
 | 
				
			||||||
                      &b, &d, &u->supported_formats, &u->supported_rates, false)))
 | 
					                      &b, &d, false)))
 | 
				
			||||||
            goto fail;
 | 
					            goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2279,11 +2279,13 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    u->verified_sample_spec = ss;
 | 
					    u->verified_sample_spec = ss;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    u->supported_formats = pa_alsa_get_supported_formats(u->pcm_handle, ss.format);
 | 
				
			||||||
    if (!u->supported_formats) {
 | 
					    if (!u->supported_formats) {
 | 
				
			||||||
        pa_log_error("Failed to find any supported sample formats.");
 | 
					        pa_log_error("Failed to find any supported sample formats.");
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    u->supported_rates = pa_alsa_get_supported_rates(u->pcm_handle, ss.rate);
 | 
				
			||||||
    if (!u->supported_rates) {
 | 
					    if (!u->supported_rates) {
 | 
				
			||||||
        pa_log_error("Failed to find any supported sample rates.");
 | 
					        pa_log_error("Failed to find any supported sample rates.");
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -140,13 +140,12 @@ typedef struct pa_alsa_ucm_modifier pa_alsa_ucm_modifier;
 | 
				
			||||||
typedef struct pa_alsa_ucm_device pa_alsa_ucm_device;
 | 
					typedef struct pa_alsa_ucm_device pa_alsa_ucm_device;
 | 
				
			||||||
typedef struct pa_alsa_ucm_config pa_alsa_ucm_config;
 | 
					typedef struct pa_alsa_ucm_config pa_alsa_ucm_config;
 | 
				
			||||||
typedef struct pa_alsa_ucm_mapping_context pa_alsa_ucm_mapping_context;
 | 
					typedef struct pa_alsa_ucm_mapping_context pa_alsa_ucm_mapping_context;
 | 
				
			||||||
typedef struct pa_alsa_ucm_profile_context pa_alsa_ucm_profile_context;
 | 
					 | 
				
			||||||
typedef struct pa_alsa_ucm_port_data pa_alsa_ucm_port_data;
 | 
					typedef struct pa_alsa_ucm_port_data pa_alsa_ucm_port_data;
 | 
				
			||||||
typedef struct pa_alsa_ucm_volume pa_alsa_ucm_volume;
 | 
					typedef struct pa_alsa_ucm_volume pa_alsa_ucm_volume;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pa_alsa_ucm_query_profiles(pa_alsa_ucm_config *ucm, int card_index);
 | 
					int pa_alsa_ucm_query_profiles(pa_alsa_ucm_config *ucm, int card_index);
 | 
				
			||||||
pa_alsa_profile_set* pa_alsa_ucm_add_profile_set(pa_alsa_ucm_config *ucm, pa_channel_map *default_channel_map);
 | 
					pa_alsa_profile_set* pa_alsa_ucm_add_profile_set(pa_alsa_ucm_config *ucm, pa_channel_map *default_channel_map);
 | 
				
			||||||
int pa_alsa_ucm_set_profile(pa_alsa_ucm_config *ucm, pa_card *card, pa_alsa_profile *new_profile, pa_alsa_profile *old_profile);
 | 
					int pa_alsa_ucm_set_profile(pa_alsa_ucm_config *ucm, pa_card *card, const char *new_profile, const char *old_profile);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pa_alsa_ucm_get_verb(snd_use_case_mgr_t *uc_mgr, const char *verb_name, const char *verb_desc, pa_alsa_ucm_verb **p_verb);
 | 
					int pa_alsa_ucm_get_verb(snd_use_case_mgr_t *uc_mgr, const char *verb_name, const char *verb_desc, pa_alsa_ucm_verb **p_verb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -158,14 +157,14 @@ void pa_alsa_ucm_add_ports(
 | 
				
			||||||
        pa_card *card,
 | 
					        pa_card *card,
 | 
				
			||||||
        snd_pcm_t *pcm_handle,
 | 
					        snd_pcm_t *pcm_handle,
 | 
				
			||||||
        bool ignore_dB);
 | 
					        bool ignore_dB);
 | 
				
			||||||
void pa_alsa_ucm_add_port(
 | 
					void pa_alsa_ucm_add_ports_combination(
 | 
				
			||||||
        pa_hashmap *hash,
 | 
					        pa_hashmap *hash,
 | 
				
			||||||
        pa_alsa_ucm_mapping_context *context,
 | 
					        pa_alsa_ucm_mapping_context *context,
 | 
				
			||||||
        bool is_sink,
 | 
					        bool is_sink,
 | 
				
			||||||
        pa_hashmap *ports,
 | 
					        pa_hashmap *ports,
 | 
				
			||||||
        pa_card_profile *cp,
 | 
					        pa_card_profile *cp,
 | 
				
			||||||
        pa_core *core);
 | 
					        pa_core *core);
 | 
				
			||||||
int pa_alsa_ucm_set_port(pa_alsa_ucm_mapping_context *context, pa_device_port *port);
 | 
					int pa_alsa_ucm_set_port(pa_alsa_ucm_mapping_context *context, pa_device_port *port, bool is_sink);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pa_alsa_ucm_free(pa_alsa_ucm_config *ucm);
 | 
					void pa_alsa_ucm_free(pa_alsa_ucm_config *ucm);
 | 
				
			||||||
void pa_alsa_ucm_mapping_context_free(pa_alsa_ucm_mapping_context *context);
 | 
					void pa_alsa_ucm_mapping_context_free(pa_alsa_ucm_mapping_context *context);
 | 
				
			||||||
| 
						 | 
					@ -222,8 +221,11 @@ struct pa_alsa_ucm_modifier {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_proplist *proplist;
 | 
					    pa_proplist *proplist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_idxset *conflicting_devices;
 | 
					    int n_confdev;
 | 
				
			||||||
    pa_idxset *supported_devices;
 | 
					    int n_suppdev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const char **conflicting_devices;
 | 
				
			||||||
 | 
					    const char **supported_devices;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_direction_t action_direction;
 | 
					    pa_direction_t action_direction;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -262,23 +264,21 @@ struct pa_alsa_ucm_mapping_context {
 | 
				
			||||||
    pa_alsa_ucm_config *ucm;
 | 
					    pa_alsa_ucm_config *ucm;
 | 
				
			||||||
    pa_direction_t direction;
 | 
					    pa_direction_t direction;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_alsa_ucm_device *ucm_device;
 | 
					    pa_idxset *ucm_devices;
 | 
				
			||||||
    pa_alsa_ucm_modifier *ucm_modifier;
 | 
					    pa_idxset *ucm_modifiers;
 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct pa_alsa_ucm_profile_context {
 | 
					 | 
				
			||||||
    pa_alsa_ucm_verb *verb;
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct pa_alsa_ucm_port_data {
 | 
					struct pa_alsa_ucm_port_data {
 | 
				
			||||||
    pa_alsa_ucm_config *ucm;
 | 
					    pa_alsa_ucm_config *ucm;
 | 
				
			||||||
    pa_device_port *core_port;
 | 
					    pa_device_port *core_port;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_alsa_ucm_device *device;
 | 
					    /* A single port will be associated with multiple devices if it represents
 | 
				
			||||||
 | 
					     * a combination of devices. */
 | 
				
			||||||
 | 
					    pa_dynarray *devices; /* pa_alsa_ucm_device */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* verb name -> pa_alsa_path for volume control */
 | 
					    /* profile name -> pa_alsa_path for volume control */
 | 
				
			||||||
    pa_hashmap *paths;
 | 
					    pa_hashmap *paths;
 | 
				
			||||||
    /* Current path, set when activating verb */
 | 
					    /* Current path, set when activating profile */
 | 
				
			||||||
    pa_alsa_path *path;
 | 
					    pa_alsa_path *path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* ELD info */
 | 
					    /* ELD info */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,6 @@
 | 
				
			||||||
#include <pulsecore/thread.h>
 | 
					#include <pulsecore/thread.h>
 | 
				
			||||||
#include <pulsecore/conf-parser.h>
 | 
					#include <pulsecore/conf-parser.h>
 | 
				
			||||||
#include <pulsecore/core-rtclock.h>
 | 
					#include <pulsecore/core-rtclock.h>
 | 
				
			||||||
#include <pulsecore/strbuf.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "alsa-util.h"
 | 
					#include "alsa-util.h"
 | 
				
			||||||
#include "alsa-mixer.h"
 | 
					#include "alsa-mixer.h"
 | 
				
			||||||
| 
						 | 
					@ -523,8 +522,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
 | 
				
			||||||
        snd_pcm_uframes_t tsched_size,
 | 
					        snd_pcm_uframes_t tsched_size,
 | 
				
			||||||
        bool *use_mmap,
 | 
					        bool *use_mmap,
 | 
				
			||||||
        bool *use_tsched,
 | 
					        bool *use_tsched,
 | 
				
			||||||
        pa_sample_format_t **query_supported_formats,
 | 
					 | 
				
			||||||
        unsigned int **query_supported_rates,
 | 
					 | 
				
			||||||
        pa_alsa_profile_set *ps,
 | 
					        pa_alsa_profile_set *ps,
 | 
				
			||||||
        pa_alsa_mapping **mapping) {
 | 
					        pa_alsa_mapping **mapping) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -563,8 +560,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
 | 
				
			||||||
                tsched_size,
 | 
					                tsched_size,
 | 
				
			||||||
                use_mmap,
 | 
					                use_mmap,
 | 
				
			||||||
                use_tsched,
 | 
					                use_tsched,
 | 
				
			||||||
                query_supported_formats,
 | 
					 | 
				
			||||||
                query_supported_rates,
 | 
					 | 
				
			||||||
                m);
 | 
					                m);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (pcm_handle) {
 | 
					        if (pcm_handle) {
 | 
				
			||||||
| 
						 | 
					@ -592,8 +587,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
 | 
				
			||||||
                tsched_size,
 | 
					                tsched_size,
 | 
				
			||||||
                use_mmap,
 | 
					                use_mmap,
 | 
				
			||||||
                use_tsched,
 | 
					                use_tsched,
 | 
				
			||||||
                query_supported_formats,
 | 
					 | 
				
			||||||
                query_supported_rates,
 | 
					 | 
				
			||||||
                m);
 | 
					                m);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (pcm_handle) {
 | 
					        if (pcm_handle) {
 | 
				
			||||||
| 
						 | 
					@ -618,8 +611,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
 | 
				
			||||||
            tsched_size,
 | 
					            tsched_size,
 | 
				
			||||||
            use_mmap,
 | 
					            use_mmap,
 | 
				
			||||||
            use_tsched,
 | 
					            use_tsched,
 | 
				
			||||||
            query_supported_formats,
 | 
					 | 
				
			||||||
            query_supported_rates,
 | 
					 | 
				
			||||||
            false);
 | 
					            false);
 | 
				
			||||||
    pa_xfree(d);
 | 
					    pa_xfree(d);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -640,8 +631,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_mapping(
 | 
				
			||||||
        snd_pcm_uframes_t tsched_size,
 | 
					        snd_pcm_uframes_t tsched_size,
 | 
				
			||||||
        bool *use_mmap,
 | 
					        bool *use_mmap,
 | 
				
			||||||
        bool *use_tsched,
 | 
					        bool *use_tsched,
 | 
				
			||||||
        pa_sample_format_t **query_supported_formats,
 | 
					 | 
				
			||||||
        unsigned int **query_supported_rates,
 | 
					 | 
				
			||||||
        pa_alsa_mapping *m) {
 | 
					        pa_alsa_mapping *m) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    snd_pcm_t *pcm_handle;
 | 
					    snd_pcm_t *pcm_handle;
 | 
				
			||||||
| 
						 | 
					@ -671,8 +660,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_mapping(
 | 
				
			||||||
            tsched_size,
 | 
					            tsched_size,
 | 
				
			||||||
            use_mmap,
 | 
					            use_mmap,
 | 
				
			||||||
            use_tsched,
 | 
					            use_tsched,
 | 
				
			||||||
            query_supported_formats,
 | 
					 | 
				
			||||||
            query_supported_rates,
 | 
					 | 
				
			||||||
            pa_channel_map_valid(&m->channel_map) /* Query the channel count if we don't know what we want */);
 | 
					            pa_channel_map_valid(&m->channel_map) /* Query the channel count if we don't know what we want */);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!pcm_handle)
 | 
					    if (!pcm_handle)
 | 
				
			||||||
| 
						 | 
					@ -696,8 +683,6 @@ snd_pcm_t *pa_alsa_open_by_device_string(
 | 
				
			||||||
        snd_pcm_uframes_t tsched_size,
 | 
					        snd_pcm_uframes_t tsched_size,
 | 
				
			||||||
        bool *use_mmap,
 | 
					        bool *use_mmap,
 | 
				
			||||||
        bool *use_tsched,
 | 
					        bool *use_tsched,
 | 
				
			||||||
        pa_sample_format_t **query_supported_formats,
 | 
					 | 
				
			||||||
        unsigned int **query_supported_rates,
 | 
					 | 
				
			||||||
        bool require_exact_channel_number) {
 | 
					        bool require_exact_channel_number) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int err;
 | 
					    int err;
 | 
				
			||||||
| 
						 | 
					@ -725,12 +710,6 @@ snd_pcm_t *pa_alsa_open_by_device_string(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pa_log_debug("Managed to open %s", d);
 | 
					        pa_log_debug("Managed to open %s", d);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (query_supported_formats)
 | 
					 | 
				
			||||||
            *query_supported_formats = pa_alsa_get_supported_formats(pcm_handle, ss->format);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (query_supported_rates)
 | 
					 | 
				
			||||||
            *query_supported_rates = pa_alsa_get_supported_rates(pcm_handle, ss->rate);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if ((err = pa_alsa_set_hw_params(
 | 
					        if ((err = pa_alsa_set_hw_params(
 | 
				
			||||||
                     pcm_handle,
 | 
					                     pcm_handle,
 | 
				
			||||||
                     ss,
 | 
					                     ss,
 | 
				
			||||||
| 
						 | 
					@ -804,8 +783,6 @@ snd_pcm_t *pa_alsa_open_by_template(
 | 
				
			||||||
        snd_pcm_uframes_t tsched_size,
 | 
					        snd_pcm_uframes_t tsched_size,
 | 
				
			||||||
        bool *use_mmap,
 | 
					        bool *use_mmap,
 | 
				
			||||||
        bool *use_tsched,
 | 
					        bool *use_tsched,
 | 
				
			||||||
        pa_sample_format_t **query_supported_formats,
 | 
					 | 
				
			||||||
        unsigned int **query_supported_rates,
 | 
					 | 
				
			||||||
        bool require_exact_channel_number) {
 | 
					        bool require_exact_channel_number) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    snd_pcm_t *pcm_handle;
 | 
					    snd_pcm_t *pcm_handle;
 | 
				
			||||||
| 
						 | 
					@ -827,8 +804,6 @@ snd_pcm_t *pa_alsa_open_by_template(
 | 
				
			||||||
                tsched_size,
 | 
					                tsched_size,
 | 
				
			||||||
                use_mmap,
 | 
					                use_mmap,
 | 
				
			||||||
                use_tsched,
 | 
					                use_tsched,
 | 
				
			||||||
                query_supported_formats,
 | 
					 | 
				
			||||||
                query_supported_rates,
 | 
					 | 
				
			||||||
                require_exact_channel_number);
 | 
					                require_exact_channel_number);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pa_xfree(d);
 | 
					        pa_xfree(d);
 | 
				
			||||||
| 
						 | 
					@ -1431,31 +1406,13 @@ char *pa_alsa_get_reserve_name(const char *device) {
 | 
				
			||||||
    return pa_sprintf_malloc("Audio%i", i);
 | 
					    return pa_sprintf_malloc("Audio%i", i);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void dump_supported_rates(unsigned int* values)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    pa_strbuf *buf;
 | 
					 | 
				
			||||||
    char *str;
 | 
					 | 
				
			||||||
    int i;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    buf = pa_strbuf_new();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for (i = 0; values[i]; i++) {
 | 
					 | 
				
			||||||
        pa_strbuf_printf(buf, " %u", values[i]);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    str = pa_strbuf_to_string_free(buf);
 | 
					 | 
				
			||||||
    pa_log_debug("Supported rates:%s", str);
 | 
					 | 
				
			||||||
    pa_xfree(str);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
unsigned int *pa_alsa_get_supported_rates(snd_pcm_t *pcm, unsigned int fallback_rate) {
 | 
					unsigned int *pa_alsa_get_supported_rates(snd_pcm_t *pcm, unsigned int fallback_rate) {
 | 
				
			||||||
    static unsigned int all_rates[] = { 8000, 11025, 12000,
 | 
					    static unsigned int all_rates[] = { 8000, 11025, 12000,
 | 
				
			||||||
                                        16000, 22050, 24000,
 | 
					                                        16000, 22050, 24000,
 | 
				
			||||||
                                        32000, 44100, 48000,
 | 
					                                        32000, 44100, 48000,
 | 
				
			||||||
                                        64000, 88200, 96000,
 | 
					                                        64000, 88200, 96000,
 | 
				
			||||||
                                        128000, 176400, 192000,
 | 
					                                        128000, 176400, 192000,
 | 
				
			||||||
                                        352800, 384000,
 | 
					                                        384000 };
 | 
				
			||||||
                                        705600, 768000 };
 | 
					 | 
				
			||||||
    bool supported[PA_ELEMENTSOF(all_rates)] = { false, };
 | 
					    bool supported[PA_ELEMENTSOF(all_rates)] = { false, };
 | 
				
			||||||
    snd_pcm_hw_params_t *hwparams;
 | 
					    snd_pcm_hw_params_t *hwparams;
 | 
				
			||||||
    unsigned int i, j, n, *rates = NULL;
 | 
					    unsigned int i, j, n, *rates = NULL;
 | 
				
			||||||
| 
						 | 
					@ -1497,40 +1454,39 @@ unsigned int *pa_alsa_get_supported_rates(snd_pcm_t *pcm, unsigned int fallback_
 | 
				
			||||||
        rates[1] = 0;
 | 
					        rates[1] = 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dump_supported_rates(rates);
 | 
					 | 
				
			||||||
    return rates;
 | 
					    return rates;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pa_sample_format_t *pa_alsa_get_supported_formats(snd_pcm_t *pcm, pa_sample_format_t fallback_format) {
 | 
					pa_sample_format_t *pa_alsa_get_supported_formats(snd_pcm_t *pcm, pa_sample_format_t fallback_format) {
 | 
				
			||||||
    static const snd_pcm_format_t format_trans_to_pcm[] = {
 | 
					    static const snd_pcm_format_t format_trans_to_pa[] = {
 | 
				
			||||||
        [PA_SAMPLE_U8] = SND_PCM_FORMAT_U8,
 | 
					        [SND_PCM_FORMAT_U8] = PA_SAMPLE_U8,
 | 
				
			||||||
        [PA_SAMPLE_ALAW] = SND_PCM_FORMAT_A_LAW,
 | 
					        [SND_PCM_FORMAT_A_LAW] = PA_SAMPLE_ALAW,
 | 
				
			||||||
        [PA_SAMPLE_ULAW] = SND_PCM_FORMAT_MU_LAW,
 | 
					        [SND_PCM_FORMAT_MU_LAW] = PA_SAMPLE_ULAW,
 | 
				
			||||||
        [PA_SAMPLE_S16LE] = SND_PCM_FORMAT_S16_LE,
 | 
					        [SND_PCM_FORMAT_S16_LE] = PA_SAMPLE_S16LE,
 | 
				
			||||||
        [PA_SAMPLE_S16BE] = SND_PCM_FORMAT_S16_BE,
 | 
					        [SND_PCM_FORMAT_S16_BE] = PA_SAMPLE_S16BE,
 | 
				
			||||||
        [PA_SAMPLE_FLOAT32LE] = SND_PCM_FORMAT_FLOAT_LE,
 | 
					        [SND_PCM_FORMAT_FLOAT_LE] = PA_SAMPLE_FLOAT32LE,
 | 
				
			||||||
        [PA_SAMPLE_FLOAT32BE] = SND_PCM_FORMAT_FLOAT_BE,
 | 
					        [SND_PCM_FORMAT_FLOAT_BE] = PA_SAMPLE_FLOAT32BE,
 | 
				
			||||||
        [PA_SAMPLE_S32LE] = SND_PCM_FORMAT_S32_LE,
 | 
					        [SND_PCM_FORMAT_S32_LE] = PA_SAMPLE_S32LE,
 | 
				
			||||||
        [PA_SAMPLE_S32BE] = SND_PCM_FORMAT_S32_BE,
 | 
					        [SND_PCM_FORMAT_S32_BE] = PA_SAMPLE_S32BE,
 | 
				
			||||||
        [PA_SAMPLE_S24LE] = SND_PCM_FORMAT_S24_3LE,
 | 
					        [SND_PCM_FORMAT_S24_3LE] = PA_SAMPLE_S24LE,
 | 
				
			||||||
        [PA_SAMPLE_S24BE] = SND_PCM_FORMAT_S24_3BE,
 | 
					        [SND_PCM_FORMAT_S24_3BE] = PA_SAMPLE_S24BE,
 | 
				
			||||||
        [PA_SAMPLE_S24_32LE] = SND_PCM_FORMAT_S24_LE,
 | 
					        [SND_PCM_FORMAT_S24_LE] = PA_SAMPLE_S24_32LE,
 | 
				
			||||||
        [PA_SAMPLE_S24_32BE] = SND_PCM_FORMAT_S24_BE,
 | 
					        [SND_PCM_FORMAT_S24_BE] = PA_SAMPLE_S24_32BE,
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    static const pa_sample_format_t all_formats[] = {
 | 
					    static const snd_pcm_format_t all_formats[] = {
 | 
				
			||||||
        PA_SAMPLE_U8,
 | 
					        SND_PCM_FORMAT_U8,
 | 
				
			||||||
        PA_SAMPLE_ALAW,
 | 
					        SND_PCM_FORMAT_A_LAW,
 | 
				
			||||||
        PA_SAMPLE_ULAW,
 | 
					        SND_PCM_FORMAT_MU_LAW,
 | 
				
			||||||
        PA_SAMPLE_S16LE,
 | 
					        SND_PCM_FORMAT_S16_LE,
 | 
				
			||||||
        PA_SAMPLE_S16BE,
 | 
					        SND_PCM_FORMAT_S16_BE,
 | 
				
			||||||
        PA_SAMPLE_FLOAT32LE,
 | 
					        SND_PCM_FORMAT_FLOAT_LE,
 | 
				
			||||||
        PA_SAMPLE_FLOAT32BE,
 | 
					        SND_PCM_FORMAT_FLOAT_BE,
 | 
				
			||||||
        PA_SAMPLE_S32LE,
 | 
					        SND_PCM_FORMAT_S32_LE,
 | 
				
			||||||
        PA_SAMPLE_S32BE,
 | 
					        SND_PCM_FORMAT_S32_BE,
 | 
				
			||||||
        PA_SAMPLE_S24LE,
 | 
					        SND_PCM_FORMAT_S24_3LE,
 | 
				
			||||||
        PA_SAMPLE_S24BE,
 | 
					        SND_PCM_FORMAT_S24_3BE,
 | 
				
			||||||
        PA_SAMPLE_S24_32LE,
 | 
					        SND_PCM_FORMAT_S24_LE,
 | 
				
			||||||
        PA_SAMPLE_S24_32BE,
 | 
					        SND_PCM_FORMAT_S24_BE,
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    bool supported[PA_ELEMENTSOF(all_formats)] = {
 | 
					    bool supported[PA_ELEMENTSOF(all_formats)] = {
 | 
				
			||||||
        false,
 | 
					        false,
 | 
				
			||||||
| 
						 | 
					@ -1548,7 +1504,7 @@ pa_sample_format_t *pa_alsa_get_supported_formats(snd_pcm_t *pcm, pa_sample_form
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (i = 0, n = 0; i < PA_ELEMENTSOF(all_formats); i++) {
 | 
					    for (i = 0, n = 0; i < PA_ELEMENTSOF(all_formats); i++) {
 | 
				
			||||||
        if (snd_pcm_hw_params_test_format(pcm, hwparams, format_trans_to_pcm[all_formats[i]]) == 0) {
 | 
					        if (snd_pcm_hw_params_test_format(pcm, hwparams, all_formats[i]) == 0) {
 | 
				
			||||||
            supported[i] = true;
 | 
					            supported[i] = true;
 | 
				
			||||||
            n++;
 | 
					            n++;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -1559,7 +1515,7 @@ pa_sample_format_t *pa_alsa_get_supported_formats(snd_pcm_t *pcm, pa_sample_form
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (i = 0, j = 0; i < PA_ELEMENTSOF(all_formats); i++) {
 | 
					        for (i = 0, j = 0; i < PA_ELEMENTSOF(all_formats); i++) {
 | 
				
			||||||
            if (supported[i])
 | 
					            if (supported[i])
 | 
				
			||||||
                formats[j++] = all_formats[i];
 | 
					                formats[j++] = format_trans_to_pa[all_formats[i]];
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        formats[j] = PA_SAMPLE_MAX;
 | 
					        formats[j] = PA_SAMPLE_MAX;
 | 
				
			||||||
| 
						 | 
					@ -1567,7 +1523,7 @@ pa_sample_format_t *pa_alsa_get_supported_formats(snd_pcm_t *pcm, pa_sample_form
 | 
				
			||||||
        formats = pa_xnew(pa_sample_format_t, 2);
 | 
					        formats = pa_xnew(pa_sample_format_t, 2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        formats[0] = fallback_format;
 | 
					        formats[0] = fallback_format;
 | 
				
			||||||
        if ((ret = snd_pcm_hw_params_set_format(pcm, hwparams, format_trans_to_pcm[formats[0]])) < 0) {
 | 
					        if ((ret = snd_pcm_hw_params_set_format(pcm, hwparams, format_trans_to_pa[formats[0]])) < 0) {
 | 
				
			||||||
            pa_log_debug("snd_pcm_hw_params_set_format() failed: %s", pa_alsa_strerror(ret));
 | 
					            pa_log_debug("snd_pcm_hw_params_set_format() failed: %s", pa_alsa_strerror(ret));
 | 
				
			||||||
            pa_xfree(formats);
 | 
					            pa_xfree(formats);
 | 
				
			||||||
            return NULL;
 | 
					            return NULL;
 | 
				
			||||||
| 
						 | 
					@ -1658,16 +1614,14 @@ static snd_mixer_elem_t *pa_alsa_mixer_find(snd_mixer_t *mixer,
 | 
				
			||||||
                                            snd_ctl_elem_iface_t iface,
 | 
					                                            snd_ctl_elem_iface_t iface,
 | 
				
			||||||
                                            const char *name,
 | 
					                                            const char *name,
 | 
				
			||||||
                                            unsigned int index,
 | 
					                                            unsigned int index,
 | 
				
			||||||
                                            unsigned int device,
 | 
					                                            unsigned int device) {
 | 
				
			||||||
                                            unsigned int subdevice) {
 | 
					 | 
				
			||||||
    snd_mixer_elem_t *elem;
 | 
					    snd_mixer_elem_t *elem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (elem = snd_mixer_first_elem(mixer); elem; elem = snd_mixer_elem_next(elem)) {
 | 
					    for (elem = snd_mixer_first_elem(mixer); elem; elem = snd_mixer_elem_next(elem)) {
 | 
				
			||||||
        snd_hctl_elem_t **_helem, *helem;
 | 
					        snd_hctl_elem_t *helem;
 | 
				
			||||||
        if (snd_mixer_elem_get_type(elem) != SND_MIXER_ELEM_PULSEAUDIO)
 | 
					        if (snd_mixer_elem_get_type(elem) != SND_MIXER_ELEM_PULSEAUDIO)
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
        _helem = snd_mixer_elem_get_private(elem);
 | 
					        helem = snd_mixer_elem_get_private(elem);
 | 
				
			||||||
        helem = *_helem;
 | 
					 | 
				
			||||||
        if (snd_hctl_elem_get_interface(helem) != iface)
 | 
					        if (snd_hctl_elem_get_interface(helem) != iface)
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
        if (!pa_streq(snd_hctl_elem_get_name(helem), name))
 | 
					        if (!pa_streq(snd_hctl_elem_get_name(helem), name))
 | 
				
			||||||
| 
						 | 
					@ -1676,19 +1630,17 @@ static snd_mixer_elem_t *pa_alsa_mixer_find(snd_mixer_t *mixer,
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
        if (snd_hctl_elem_get_device(helem) != device)
 | 
					        if (snd_hctl_elem_get_device(helem) != device)
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
        if (snd_hctl_elem_get_subdevice(helem) != subdevice)
 | 
					 | 
				
			||||||
            continue;
 | 
					 | 
				
			||||||
        return elem;
 | 
					        return elem;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return NULL;
 | 
					    return NULL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
snd_mixer_elem_t *pa_alsa_mixer_find_card(snd_mixer_t *mixer, struct pa_alsa_mixer_id *alsa_id, unsigned int device) {
 | 
					snd_mixer_elem_t *pa_alsa_mixer_find_card(snd_mixer_t *mixer, struct pa_alsa_mixer_id *alsa_id, unsigned int device) {
 | 
				
			||||||
    return pa_alsa_mixer_find(mixer, SND_CTL_ELEM_IFACE_CARD, alsa_id->name, alsa_id->index, device, 0);
 | 
					    return pa_alsa_mixer_find(mixer, SND_CTL_ELEM_IFACE_CARD, alsa_id->name, alsa_id->index, device);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
snd_mixer_elem_t *pa_alsa_mixer_find_pcm(snd_mixer_t *mixer, const char *name, unsigned int device) {
 | 
					snd_mixer_elem_t *pa_alsa_mixer_find_pcm(snd_mixer_t *mixer, const char *name, unsigned int device) {
 | 
				
			||||||
    return pa_alsa_mixer_find(mixer, SND_CTL_ELEM_IFACE_PCM, name, 0, device, 0);
 | 
					    return pa_alsa_mixer_find(mixer, SND_CTL_ELEM_IFACE_PCM, name, 0, device);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int mixer_class_compare(const snd_mixer_elem_t *c1, const snd_mixer_elem_t *c2)
 | 
					static int mixer_class_compare(const snd_mixer_elem_t *c1, const snd_mixer_elem_t *c2)
 | 
				
			||||||
| 
						 | 
					@ -1697,79 +1649,31 @@ static int mixer_class_compare(const snd_mixer_elem_t *c1, const snd_mixer_elem_
 | 
				
			||||||
    return c1 == c2 ? 0 : (c1 > c2 ? 1 : -1);
 | 
					    return c1 == c2 ? 0 : (c1 > c2 ? 1 : -1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void mixer_melem_free(snd_mixer_elem_t *elem)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    snd_hctl_elem_t **_helem;
 | 
					 | 
				
			||||||
    _helem = snd_mixer_elem_get_private(elem);
 | 
					 | 
				
			||||||
    pa_xfree(_helem);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int mixer_class_event(snd_mixer_class_t *class, unsigned int mask,
 | 
					static int mixer_class_event(snd_mixer_class_t *class, unsigned int mask,
 | 
				
			||||||
			snd_hctl_elem_t *helem, snd_mixer_elem_t *melem)
 | 
								snd_hctl_elem_t *helem, snd_mixer_elem_t *melem)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int err;
 | 
					    int err;
 | 
				
			||||||
    const char *name = snd_hctl_elem_get_name(helem);
 | 
					    const char *name = snd_hctl_elem_get_name(helem);
 | 
				
			||||||
    snd_hctl_elem_t **_helem;
 | 
					    if (mask & SND_CTL_EVENT_MASK_ADD) {
 | 
				
			||||||
    /* NOTE: The remove event is defined as '~0U`. */
 | 
					 | 
				
			||||||
    if (mask == SND_CTL_EVENT_MASK_REMOVE) {
 | 
					 | 
				
			||||||
        /* NOTE: Unless we remove the pointer to melem from the linked-list at
 | 
					 | 
				
			||||||
         * private_data of helem, an assertion will be hit in alsa-lib since
 | 
					 | 
				
			||||||
         * the list is not empty. */
 | 
					 | 
				
			||||||
        _helem = snd_mixer_elem_get_private(melem);
 | 
					 | 
				
			||||||
        *_helem = NULL;
 | 
					 | 
				
			||||||
        snd_mixer_elem_detach(melem, helem);
 | 
					 | 
				
			||||||
    } else if (mask & SND_CTL_EVENT_MASK_ADD) {
 | 
					 | 
				
			||||||
        snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
 | 
					        snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
 | 
				
			||||||
        if (iface == SND_CTL_ELEM_IFACE_CARD || iface == SND_CTL_ELEM_IFACE_PCM) {
 | 
					        if (iface == SND_CTL_ELEM_IFACE_CARD || iface == SND_CTL_ELEM_IFACE_PCM) {
 | 
				
			||||||
            snd_mixer_t *mixer = snd_mixer_class_get_mixer(class);
 | 
					 | 
				
			||||||
            snd_ctl_elem_iface_t iface = snd_hctl_elem_get_interface(helem);
 | 
					 | 
				
			||||||
            const char *name = snd_hctl_elem_get_name(helem);
 | 
					 | 
				
			||||||
            const int index = snd_hctl_elem_get_index(helem);
 | 
					 | 
				
			||||||
            const int device = snd_hctl_elem_get_device(helem);
 | 
					 | 
				
			||||||
            const int subdevice = snd_hctl_elem_get_subdevice(helem);
 | 
					 | 
				
			||||||
            snd_mixer_elem_t *new_melem;
 | 
					            snd_mixer_elem_t *new_melem;
 | 
				
			||||||
            bool found = true;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            new_melem = pa_alsa_mixer_find(mixer, iface, name, index, device, subdevice);
 | 
					            /* Put the hctl pointer as our private data - it will be useful for callbacks */
 | 
				
			||||||
            if (!new_melem) {
 | 
					            if ((err = snd_mixer_elem_new(&new_melem, SND_MIXER_ELEM_PULSEAUDIO, 0, helem, NULL)) < 0) {
 | 
				
			||||||
                _helem = pa_xmalloc(sizeof(snd_hctl_elem_t *));
 | 
					                pa_log_warn("snd_mixer_elem_new failed: %s", pa_alsa_strerror(err));
 | 
				
			||||||
                *_helem = helem;
 | 
					                return 0;
 | 
				
			||||||
                /* Put the hctl pointer as our private data - it will be useful for callbacks */
 | 
					 | 
				
			||||||
                if ((err = snd_mixer_elem_new(&new_melem, SND_MIXER_ELEM_PULSEAUDIO, 0, _helem, mixer_melem_free)) < 0) {
 | 
					 | 
				
			||||||
                    pa_log_warn("snd_mixer_elem_new failed: %s", pa_alsa_strerror(err));
 | 
					 | 
				
			||||||
                    return 0;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                found = false;
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                _helem = snd_mixer_elem_get_private(new_melem);
 | 
					 | 
				
			||||||
                if (_helem) {
 | 
					 | 
				
			||||||
                    char *s1, *s2;
 | 
					 | 
				
			||||||
                    snd_ctl_elem_id_t *id1, *id2;
 | 
					 | 
				
			||||||
                    snd_ctl_elem_id_alloca(&id1);
 | 
					 | 
				
			||||||
                    snd_ctl_elem_id_alloca(&id2);
 | 
					 | 
				
			||||||
                    snd_hctl_elem_get_id(helem, id1);
 | 
					 | 
				
			||||||
                    snd_hctl_elem_get_id(*_helem, id2);
 | 
					 | 
				
			||||||
                    s1 = snd_ctl_ascii_elem_id_get(id1);
 | 
					 | 
				
			||||||
                    s2 = snd_ctl_ascii_elem_id_get(id2);
 | 
					 | 
				
			||||||
                    pa_log_warn("mixer_class_event - duplicate mixer controls: %s | %s", s1, s2);
 | 
					 | 
				
			||||||
                    free(s2);
 | 
					 | 
				
			||||||
                    free(s1);
 | 
					 | 
				
			||||||
                    return 0;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                *_helem = helem;
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if ((err = snd_mixer_elem_attach(new_melem, helem)) < 0) {
 | 
					            if ((err = snd_mixer_elem_attach(new_melem, helem)) < 0) {
 | 
				
			||||||
                pa_log_warn("snd_mixer_elem_attach failed: %s", pa_alsa_strerror(err));
 | 
					                pa_log_warn("snd_mixer_elem_attach failed: %s", pa_alsa_strerror(err));
 | 
				
			||||||
                snd_mixer_elem_free(melem);
 | 
							snd_mixer_elem_free(melem);
 | 
				
			||||||
                return 0;
 | 
					                return 0;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (!found) {
 | 
					            if ((err = snd_mixer_elem_add(new_melem, class)) < 0) {
 | 
				
			||||||
                if ((err = snd_mixer_elem_add(new_melem, class)) < 0) {
 | 
					                pa_log_warn("snd_mixer_elem_add failed: %s", pa_alsa_strerror(err));
 | 
				
			||||||
                    pa_log_warn("snd_mixer_elem_add failed: %s", pa_alsa_strerror(err));
 | 
					                return 0;
 | 
				
			||||||
                    return 0;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,8 +67,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_auto(
 | 
				
			||||||
        snd_pcm_uframes_t tsched_size,
 | 
					        snd_pcm_uframes_t tsched_size,
 | 
				
			||||||
        bool *use_mmap,                   /* modified at return */
 | 
					        bool *use_mmap,                   /* modified at return */
 | 
				
			||||||
        bool *use_tsched,                 /* modified at return */
 | 
					        bool *use_tsched,                 /* modified at return */
 | 
				
			||||||
        pa_sample_format_t **query_supported_formats, /* modified at return */
 | 
					 | 
				
			||||||
        unsigned int **query_supported_rates,         /* modified at return */
 | 
					 | 
				
			||||||
        pa_alsa_profile_set *ps,
 | 
					        pa_alsa_profile_set *ps,
 | 
				
			||||||
        pa_alsa_mapping **mapping);       /* modified at return */
 | 
					        pa_alsa_mapping **mapping);       /* modified at return */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -84,8 +82,6 @@ snd_pcm_t *pa_alsa_open_by_device_id_mapping(
 | 
				
			||||||
        snd_pcm_uframes_t tsched_size,
 | 
					        snd_pcm_uframes_t tsched_size,
 | 
				
			||||||
        bool *use_mmap,                   /* modified at return */
 | 
					        bool *use_mmap,                   /* modified at return */
 | 
				
			||||||
        bool *use_tsched,                 /* modified at return */
 | 
					        bool *use_tsched,                 /* modified at return */
 | 
				
			||||||
        pa_sample_format_t **query_supported_formats, /* modified at return */
 | 
					 | 
				
			||||||
        unsigned int **query_supported_rates,         /* modified at return */
 | 
					 | 
				
			||||||
        pa_alsa_mapping *mapping);
 | 
					        pa_alsa_mapping *mapping);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Opens the explicit ALSA device */
 | 
					/* Opens the explicit ALSA device */
 | 
				
			||||||
| 
						 | 
					@ -100,8 +96,6 @@ snd_pcm_t *pa_alsa_open_by_device_string(
 | 
				
			||||||
        snd_pcm_uframes_t tsched_size,
 | 
					        snd_pcm_uframes_t tsched_size,
 | 
				
			||||||
        bool *use_mmap,                   /* modified at return */
 | 
					        bool *use_mmap,                   /* modified at return */
 | 
				
			||||||
        bool *use_tsched,                 /* modified at return */
 | 
					        bool *use_tsched,                 /* modified at return */
 | 
				
			||||||
        pa_sample_format_t **query_supported_formats, /* modified at return */
 | 
					 | 
				
			||||||
        unsigned int **query_supported_rates,         /* modified at return */
 | 
					 | 
				
			||||||
        bool require_exact_channel_number);
 | 
					        bool require_exact_channel_number);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Opens the explicit ALSA device with a fallback list */
 | 
					/* Opens the explicit ALSA device with a fallback list */
 | 
				
			||||||
| 
						 | 
					@ -117,8 +111,6 @@ snd_pcm_t *pa_alsa_open_by_template(
 | 
				
			||||||
        snd_pcm_uframes_t tsched_size,
 | 
					        snd_pcm_uframes_t tsched_size,
 | 
				
			||||||
        bool *use_mmap,                   /* modified at return */
 | 
					        bool *use_mmap,                   /* modified at return */
 | 
				
			||||||
        bool *use_tsched,                 /* modified at return */
 | 
					        bool *use_tsched,                 /* modified at return */
 | 
				
			||||||
        pa_sample_format_t **query_supported_formats, /* modified at return */
 | 
					 | 
				
			||||||
        unsigned int **query_supported_rates,        /* modified at return */
 | 
					 | 
				
			||||||
        bool require_exact_channel_number);
 | 
					        bool require_exact_channel_number);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pa_alsa_dump(pa_log_level_t level, snd_pcm_t *pcm);
 | 
					void pa_alsa_dump(pa_log_level_t level, snd_pcm_t *pcm);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,91 +0,0 @@
 | 
				
			||||||
# This file is part of PulseAudio.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# PulseAudio is free software; you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU Lesser General Public License as
 | 
					 | 
				
			||||||
# published by the Free Software Foundation; either version 2.1 of the
 | 
					 | 
				
			||||||
# License, or (at your option) any later version.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# PulseAudio is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | 
					 | 
				
			||||||
# General Public License for more details.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU Lesser General Public License
 | 
					 | 
				
			||||||
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; ASUS Xonar SE card.
 | 
					 | 
				
			||||||
; This card has two devices for each rear and front panel jacks.
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; See default.conf for an explanation on the directives used here.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[General]
 | 
					 | 
				
			||||||
auto-profiles = yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping analog-stereo-headset]
 | 
					 | 
				
			||||||
device-strings = hw:%f,1
 | 
					 | 
				
			||||||
channel-map = left,right
 | 
					 | 
				
			||||||
paths-output = analog-output analog-output-headphones
 | 
					 | 
				
			||||||
paths-input = analog-input-mic analog-input-headphone-mic analog-input-headset-mic
 | 
					 | 
				
			||||||
priority = 15
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping analog-stereo]
 | 
					 | 
				
			||||||
device-strings = hw:%f,0
 | 
					 | 
				
			||||||
channel-map = left,right
 | 
					 | 
				
			||||||
paths-output = analog-output analog-output-speaker
 | 
					 | 
				
			||||||
paths-input = analog-input analog-input-mic analog-input-linein
 | 
					 | 
				
			||||||
priority = 14
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping analog-surround-21]
 | 
					 | 
				
			||||||
device-strings = surround21:%f
 | 
					 | 
				
			||||||
channel-map = front-left,front-right,lfe
 | 
					 | 
				
			||||||
paths-output = analog-output-speaker
 | 
					 | 
				
			||||||
priority = 13
 | 
					 | 
				
			||||||
direction = output
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping analog-surround-40]
 | 
					 | 
				
			||||||
device-strings = surround40:%f
 | 
					 | 
				
			||||||
channel-map = front-left,front-right,rear-left,rear-right
 | 
					 | 
				
			||||||
paths-output = analog-output-speaker
 | 
					 | 
				
			||||||
priority = 12
 | 
					 | 
				
			||||||
direction = output
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping analog-surround-41]
 | 
					 | 
				
			||||||
device-strings = surround41:%f
 | 
					 | 
				
			||||||
channel-map = front-left,front-right,rear-left,rear-right,lfe
 | 
					 | 
				
			||||||
paths-output = analog-output-speaker
 | 
					 | 
				
			||||||
priority = 13
 | 
					 | 
				
			||||||
direction = output
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping analog-surround-50]
 | 
					 | 
				
			||||||
device-strings = surround50:%f
 | 
					 | 
				
			||||||
channel-map = front-left,front-right,rear-left,rear-right,front-center
 | 
					 | 
				
			||||||
paths-output = analog-output-speaker
 | 
					 | 
				
			||||||
priority = 12
 | 
					 | 
				
			||||||
direction = output
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping analog-surround-51]
 | 
					 | 
				
			||||||
device-strings = surround51:%f
 | 
					 | 
				
			||||||
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
 | 
					 | 
				
			||||||
paths-output = analog-output-speaker
 | 
					 | 
				
			||||||
priority = 13
 | 
					 | 
				
			||||||
direction = output
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping iec958-stereo]
 | 
					 | 
				
			||||||
device-strings = iec958:%f
 | 
					 | 
				
			||||||
channel-map = left,right
 | 
					 | 
				
			||||||
paths-output = iec958-stereo-output
 | 
					 | 
				
			||||||
priority = 5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping iec958-ac3-surround-40]
 | 
					 | 
				
			||||||
device-strings = a52:%f
 | 
					 | 
				
			||||||
channel-map = front-left,front-right,rear-left,rear-right
 | 
					 | 
				
			||||||
paths-output = iec958-stereo-output
 | 
					 | 
				
			||||||
priority = 2
 | 
					 | 
				
			||||||
direction = output
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Mapping iec958-ac3-surround-51]
 | 
					 | 
				
			||||||
device-strings = a52:%f
 | 
					 | 
				
			||||||
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
 | 
					 | 
				
			||||||
paths-output = iec958-stereo-output
 | 
					 | 
				
			||||||
priority = 3
 | 
					 | 
				
			||||||
direction = output
 | 
					 | 
				
			||||||
| 
						 | 
					@ -162,7 +162,7 @@ static void add_profiles(struct userdata *u, pa_hashmap *h, pa_hashmap *ports) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            PA_IDXSET_FOREACH(m, ap->output_mappings, idx) {
 | 
					            PA_IDXSET_FOREACH(m, ap->output_mappings, idx) {
 | 
				
			||||||
                if (u->use_ucm)
 | 
					                if (u->use_ucm)
 | 
				
			||||||
                    pa_alsa_ucm_add_port(NULL, &m->ucm_context, true, ports, cp, u->core);
 | 
					                    pa_alsa_ucm_add_ports_combination(NULL, &m->ucm_context, true, ports, cp, u->core);
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                    pa_alsa_path_set_add_ports(m->output_path_set, cp, ports, NULL, u->core);
 | 
					                    pa_alsa_path_set_add_ports(m->output_path_set, cp, ports, NULL, u->core);
 | 
				
			||||||
                if (m->channel_map.channels > cp->max_sink_channels)
 | 
					                if (m->channel_map.channels > cp->max_sink_channels)
 | 
				
			||||||
| 
						 | 
					@ -175,7 +175,7 @@ static void add_profiles(struct userdata *u, pa_hashmap *h, pa_hashmap *ports) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            PA_IDXSET_FOREACH(m, ap->input_mappings, idx) {
 | 
					            PA_IDXSET_FOREACH(m, ap->input_mappings, idx) {
 | 
				
			||||||
                if (u->use_ucm)
 | 
					                if (u->use_ucm)
 | 
				
			||||||
                    pa_alsa_ucm_add_port(NULL, &m->ucm_context, false, ports, cp, u->core);
 | 
					                    pa_alsa_ucm_add_ports_combination(NULL, &m->ucm_context, false, ports, cp, u->core);
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                    pa_alsa_path_set_add_ports(m->input_path_set, cp, ports, NULL, u->core);
 | 
					                    pa_alsa_path_set_add_ports(m->input_path_set, cp, ports, NULL, u->core);
 | 
				
			||||||
                if (m->channel_map.channels > cp->max_source_channels)
 | 
					                if (m->channel_map.channels > cp->max_source_channels)
 | 
				
			||||||
| 
						 | 
					@ -249,7 +249,8 @@ static int card_set_profile(pa_card *c, pa_card_profile *new_profile) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* if UCM is available for this card then update the verb */
 | 
					    /* if UCM is available for this card then update the verb */
 | 
				
			||||||
    if (u->use_ucm) {
 | 
					    if (u->use_ucm) {
 | 
				
			||||||
        if (pa_alsa_ucm_set_profile(&u->ucm, c, nd->profile, od->profile) < 0) {
 | 
					        if (pa_alsa_ucm_set_profile(&u->ucm, c, nd->profile ? nd->profile->name : NULL,
 | 
				
			||||||
 | 
					                    od->profile ? od->profile->name : NULL) < 0) {
 | 
				
			||||||
            ret = -1;
 | 
					            ret = -1;
 | 
				
			||||||
            goto finish;
 | 
					            goto finish;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -301,7 +302,7 @@ static void init_profile(struct userdata *u) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (d->profile && u->use_ucm) {
 | 
					    if (d->profile && u->use_ucm) {
 | 
				
			||||||
        /* Set initial verb */
 | 
					        /* Set initial verb */
 | 
				
			||||||
        if (pa_alsa_ucm_set_profile(ucm, u->card, d->profile, NULL) < 0) {
 | 
					        if (pa_alsa_ucm_set_profile(ucm, u->card, d->profile->name, NULL) < 0) {
 | 
				
			||||||
            pa_log("Failed to set ucm profile %s", d->profile->name);
 | 
					            pa_log("Failed to set ucm profile %s", d->profile->name);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -370,7 +371,7 @@ struct temp_port_avail {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
 | 
					static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
 | 
				
			||||||
    struct userdata *u = snd_mixer_elem_get_callback_private(melem);
 | 
					    struct userdata *u = snd_mixer_elem_get_callback_private(melem);
 | 
				
			||||||
    snd_hctl_elem_t **_elem = snd_mixer_elem_get_private(melem), *elem;
 | 
					    snd_hctl_elem_t *elem = snd_mixer_elem_get_private(melem);
 | 
				
			||||||
    snd_ctl_elem_value_t *elem_value;
 | 
					    snd_ctl_elem_value_t *elem_value;
 | 
				
			||||||
    bool plugged_in;
 | 
					    bool plugged_in;
 | 
				
			||||||
    void *state;
 | 
					    void *state;
 | 
				
			||||||
| 
						 | 
					@ -380,8 +381,6 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
 | 
				
			||||||
    pa_available_t active_available = PA_AVAILABLE_UNKNOWN;
 | 
					    pa_available_t active_available = PA_AVAILABLE_UNKNOWN;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_assert(u);
 | 
					    pa_assert(u);
 | 
				
			||||||
    pa_assert(_elem);
 | 
					 | 
				
			||||||
    elem = *_elem;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Changing the jack state may cause a port change, and a port change will
 | 
					    /* Changing the jack state may cause a port change, and a port change will
 | 
				
			||||||
     * make the sink or source change the mixer settings. If there are multiple
 | 
					     * make the sink or source change the mixer settings. If there are multiple
 | 
				
			||||||
| 
						 | 
					@ -564,18 +563,13 @@ static pa_device_port* find_port_with_eld_device(struct userdata *u, int device)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int hdmi_eld_changed(snd_mixer_elem_t *melem, unsigned int mask) {
 | 
					static int hdmi_eld_changed(snd_mixer_elem_t *melem, unsigned int mask) {
 | 
				
			||||||
    struct userdata *u = snd_mixer_elem_get_callback_private(melem);
 | 
					    struct userdata *u = snd_mixer_elem_get_callback_private(melem);
 | 
				
			||||||
    snd_hctl_elem_t **_elem = snd_mixer_elem_get_private(melem), *elem;
 | 
					    snd_hctl_elem_t *elem = snd_mixer_elem_get_private(melem);
 | 
				
			||||||
    int device;
 | 
					    int device = snd_hctl_elem_get_device(elem);
 | 
				
			||||||
    const char *old_monitor_name;
 | 
					    const char *old_monitor_name;
 | 
				
			||||||
    pa_device_port *p;
 | 
					    pa_device_port *p;
 | 
				
			||||||
    pa_hdmi_eld eld;
 | 
					    pa_hdmi_eld eld;
 | 
				
			||||||
    bool changed = false;
 | 
					    bool changed = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_assert(u);
 | 
					 | 
				
			||||||
    pa_assert(_elem);
 | 
					 | 
				
			||||||
    elem = *_elem;
 | 
					 | 
				
			||||||
    device = snd_hctl_elem_get_device(elem);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (mask == SND_CTL_EVENT_MASK_REMOVE)
 | 
					    if (mask == SND_CTL_EVENT_MASK_REMOVE)
 | 
				
			||||||
        return 0;
 | 
					        return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,6 +42,9 @@ typedef struct pa_a2dp_endpoint_conf {
 | 
				
			||||||
    /* A2DP codec id */
 | 
					    /* A2DP codec id */
 | 
				
			||||||
    pa_a2dp_codec_id id;
 | 
					    pa_a2dp_codec_id id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* True if codec is bi-directional and supports backchannel */
 | 
				
			||||||
 | 
					    bool support_backchannel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Returns true if the codec can be supported on the system */
 | 
					    /* Returns true if the codec can be supported on the system */
 | 
				
			||||||
    bool (*can_be_supported)(bool for_encoding);
 | 
					    bool (*can_be_supported)(bool for_encoding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -556,6 +556,7 @@ static size_t decode_buffer_hd(void *codec_info, const uint8_t *input_buffer, si
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_aptx = {
 | 
					const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_aptx = {
 | 
				
			||||||
    .id = { A2DP_CODEC_VENDOR, APTX_VENDOR_ID, APTX_CODEC_ID },
 | 
					    .id = { A2DP_CODEC_VENDOR, APTX_VENDOR_ID, APTX_CODEC_ID },
 | 
				
			||||||
 | 
					    .support_backchannel = false,
 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					    .can_be_supported = can_be_supported,
 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities,
 | 
					    .can_accept_capabilities = can_accept_capabilities,
 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint,
 | 
					    .choose_remote_endpoint = choose_remote_endpoint,
 | 
				
			||||||
| 
						 | 
					@ -579,6 +580,7 @@ const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_aptx = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_aptx_hd = {
 | 
					const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_aptx_hd = {
 | 
				
			||||||
    .id = { A2DP_CODEC_VENDOR, APTX_HD_VENDOR_ID, APTX_HD_CODEC_ID },
 | 
					    .id = { A2DP_CODEC_VENDOR, APTX_HD_VENDOR_ID, APTX_HD_CODEC_ID },
 | 
				
			||||||
 | 
					    .support_backchannel = false,
 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					    .can_be_supported = can_be_supported,
 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities_hd,
 | 
					    .can_accept_capabilities = can_accept_capabilities_hd,
 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint_hd,
 | 
					    .choose_remote_endpoint = choose_remote_endpoint_hd,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -433,6 +433,7 @@ static size_t encode_buffer(void *codec_info, uint32_t timestamp, const uint8_t
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_hq = {
 | 
					const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_hq = {
 | 
				
			||||||
    .id = { A2DP_CODEC_VENDOR, LDAC_VENDOR_ID, LDAC_CODEC_ID },
 | 
					    .id = { A2DP_CODEC_VENDOR, LDAC_VENDOR_ID, LDAC_CODEC_ID },
 | 
				
			||||||
 | 
					    .support_backchannel = false,
 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					    .can_be_supported = can_be_supported,
 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities,
 | 
					    .can_accept_capabilities = can_accept_capabilities,
 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint,
 | 
					    .choose_remote_endpoint = choose_remote_endpoint,
 | 
				
			||||||
| 
						 | 
					@ -455,6 +456,7 @@ const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_hq = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_sq = {
 | 
					const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_sq = {
 | 
				
			||||||
    .id = { A2DP_CODEC_VENDOR, LDAC_VENDOR_ID, LDAC_CODEC_ID },
 | 
					    .id = { A2DP_CODEC_VENDOR, LDAC_VENDOR_ID, LDAC_CODEC_ID },
 | 
				
			||||||
 | 
					    .support_backchannel = false,
 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					    .can_be_supported = can_be_supported,
 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities,
 | 
					    .can_accept_capabilities = can_accept_capabilities,
 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint,
 | 
					    .choose_remote_endpoint = choose_remote_endpoint,
 | 
				
			||||||
| 
						 | 
					@ -477,6 +479,7 @@ const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_sq = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_mq = {
 | 
					const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_mq = {
 | 
				
			||||||
    .id = { A2DP_CODEC_VENDOR, LDAC_VENDOR_ID, LDAC_CODEC_ID },
 | 
					    .id = { A2DP_CODEC_VENDOR, LDAC_VENDOR_ID, LDAC_CODEC_ID },
 | 
				
			||||||
 | 
					    .support_backchannel = false,
 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					    .can_be_supported = can_be_supported,
 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities,
 | 
					    .can_accept_capabilities = can_accept_capabilities,
 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint,
 | 
					    .choose_remote_endpoint = choose_remote_endpoint,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,8 +39,6 @@
 | 
				
			||||||
#define SBC_BITPOOL_DEC_STEP 5
 | 
					#define SBC_BITPOOL_DEC_STEP 5
 | 
				
			||||||
#define SBC_BITPOOL_INC_STEP 1
 | 
					#define SBC_BITPOOL_INC_STEP 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SBC_SYNCWORD    0x9C
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct sbc_info {
 | 
					struct sbc_info {
 | 
				
			||||||
    sbc_t sbc;                           /* Codec data */
 | 
					    sbc_t sbc;                           /* Codec data */
 | 
				
			||||||
    size_t codesize, frame_length;       /* SBC Codesize, frame_length. We simply cache those values here */
 | 
					    size_t codesize, frame_length;       /* SBC Codesize, frame_length. We simply cache those values here */
 | 
				
			||||||
| 
						 | 
					@ -56,12 +54,6 @@ struct sbc_info {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    uint8_t nr_blocks;
 | 
					    uint8_t nr_blocks;
 | 
				
			||||||
    uint8_t nr_subbands;
 | 
					    uint8_t nr_subbands;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    bool boost_source_volume;
 | 
					 | 
				
			||||||
    /* Size of SBC frame fragment left over from previous decoding iteration */
 | 
					 | 
				
			||||||
    size_t frame_fragment_size;
 | 
					 | 
				
			||||||
    /* Maximum SBC frame size is 512 bytes when SBC compression ratio > 1 */
 | 
					 | 
				
			||||||
    uint8_t frame_fragment[512];
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool can_be_supported(bool for_encoding) {
 | 
					static bool can_be_supported(bool for_encoding) {
 | 
				
			||||||
| 
						 | 
					@ -116,24 +108,6 @@ static bool can_accept_capabilities_xq(const uint8_t *capabilities_buffer, uint8
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool can_accept_capabilities_faststream(const uint8_t *capabilities_buffer, uint8_t capabilities_size, bool for_encoding) {
 | 
					 | 
				
			||||||
    const a2dp_faststream_t *capabilities = (const a2dp_faststream_t *) capabilities_buffer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (capabilities_size != sizeof(*capabilities))
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!(capabilities->direction & (FASTSTREAM_DIRECTION_SINK | FASTSTREAM_DIRECTION_SOURCE)))
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!(capabilities->sink_frequency & (FASTSTREAM_SINK_SAMPLING_FREQ_44100 | FASTSTREAM_SINK_SAMPLING_FREQ_48000)))
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!(capabilities->source_frequency & FASTSTREAM_SOURCE_SAMPLING_FREQ_16000))
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static const char *choose_remote_endpoint(const pa_hashmap *capabilities_hashmap, const pa_sample_spec *default_sample_spec, bool for_encoding) {
 | 
					static const char *choose_remote_endpoint(const pa_hashmap *capabilities_hashmap, const pa_sample_spec *default_sample_spec, bool for_encoding) {
 | 
				
			||||||
    const pa_a2dp_codec_capabilities *a2dp_capabilities;
 | 
					    const pa_a2dp_codec_capabilities *a2dp_capabilities;
 | 
				
			||||||
    const char *key;
 | 
					    const char *key;
 | 
				
			||||||
| 
						 | 
					@ -162,23 +136,6 @@ static const char *choose_remote_endpoint_xq(const pa_hashmap *capabilities_hash
 | 
				
			||||||
    return NULL;
 | 
					    return NULL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const char *choose_remote_endpoint_faststream(const pa_hashmap *capabilities_hashmap, const pa_sample_spec *default_sample_spec, bool for_encoding) {
 | 
					 | 
				
			||||||
    const pa_a2dp_codec_capabilities *a2dp_capabilities;
 | 
					 | 
				
			||||||
    const char *key;
 | 
					 | 
				
			||||||
    void *state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* There is no preference, just choose random valid entry */
 | 
					 | 
				
			||||||
    PA_HASHMAP_FOREACH_KV(key, a2dp_capabilities, capabilities_hashmap, state) {
 | 
					 | 
				
			||||||
        pa_log_debug("choose_remote_endpoint_faststream checking peer endpoint '%s'", key);
 | 
					 | 
				
			||||||
        if (can_accept_capabilities_faststream(a2dp_capabilities->buffer, a2dp_capabilities->size, for_encoding))
 | 
					 | 
				
			||||||
            return key;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_log_debug("choose_remote_endpoint_faststream matched no peer endpoint");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return NULL;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static uint8_t fill_capabilities(uint8_t capabilities_buffer[MAX_A2DP_CAPS_SIZE]) {
 | 
					static uint8_t fill_capabilities(uint8_t capabilities_buffer[MAX_A2DP_CAPS_SIZE]) {
 | 
				
			||||||
    a2dp_sbc_t *capabilities = (a2dp_sbc_t *) capabilities_buffer;
 | 
					    a2dp_sbc_t *capabilities = (a2dp_sbc_t *) capabilities_buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -369,46 +326,6 @@ static uint8_t fill_capabilities_xq(uint8_t capabilities_buffer[MAX_A2DP_CAPS_SI
 | 
				
			||||||
    return sizeof(*capabilities);
 | 
					    return sizeof(*capabilities);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static uint8_t fill_capabilities_faststream(uint8_t capabilities_buffer[MAX_A2DP_CAPS_SIZE]) {
 | 
					 | 
				
			||||||
    a2dp_faststream_t *capabilities = (a2dp_faststream_t *) capabilities_buffer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_zero(*capabilities);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    capabilities->info = A2DP_SET_VENDOR_ID_CODEC_ID(FASTSTREAM_VENDOR_ID, FASTSTREAM_CODEC_ID);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    capabilities->direction = FASTSTREAM_DIRECTION_SINK | FASTSTREAM_DIRECTION_SOURCE;
 | 
					 | 
				
			||||||
    capabilities->sink_frequency = FASTSTREAM_SINK_SAMPLING_FREQ_44100 | FASTSTREAM_SINK_SAMPLING_FREQ_48000;
 | 
					 | 
				
			||||||
    capabilities->source_frequency = FASTSTREAM_SOURCE_SAMPLING_FREQ_16000;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return sizeof(*capabilities);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static bool is_configuration_valid_faststream(const uint8_t *config_buffer, uint8_t config_size) {
 | 
					 | 
				
			||||||
    const a2dp_faststream_t *config = (const a2dp_faststream_t *) config_buffer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (config_size != sizeof(*config)) {
 | 
					 | 
				
			||||||
        pa_log_error("Invalid size of config buffer");
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!(config->direction & (FASTSTREAM_DIRECTION_SINK | FASTSTREAM_DIRECTION_SOURCE))) {
 | 
					 | 
				
			||||||
        pa_log_error("Invalid FastStream direction in configuration");
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (config->sink_frequency != FASTSTREAM_SINK_SAMPLING_FREQ_44100 && config->sink_frequency != FASTSTREAM_SINK_SAMPLING_FREQ_48000) {
 | 
					 | 
				
			||||||
        pa_log_error("Invalid FastStream sink sampling frequency in configuration");
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (config->source_frequency != FASTSTREAM_SOURCE_SAMPLING_FREQ_16000) {
 | 
					 | 
				
			||||||
        pa_log_error("Invalid FastStream source sampling frequency in configuration");
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static bool is_configuration_valid(const uint8_t *config_buffer, uint8_t config_size) {
 | 
					static bool is_configuration_valid(const uint8_t *config_buffer, uint8_t config_size) {
 | 
				
			||||||
    const a2dp_sbc_t *config = (const a2dp_sbc_t *) config_buffer;
 | 
					    const a2dp_sbc_t *config = (const a2dp_sbc_t *) config_buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -610,85 +527,6 @@ static uint8_t fill_preferred_configuration(const pa_sample_spec *default_sample
 | 
				
			||||||
    return sizeof(*config);
 | 
					    return sizeof(*config);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static uint8_t fill_preferred_configuration_faststream(const pa_sample_spec *default_sample_spec, const uint8_t *capabilities_buffer, uint8_t capabilities_size, uint8_t config_buffer[MAX_A2DP_CAPS_SIZE]) {
 | 
					 | 
				
			||||||
    a2dp_faststream_t *config = (a2dp_faststream_t *) config_buffer;
 | 
					 | 
				
			||||||
    const a2dp_faststream_t *capabilities = (const a2dp_faststream_t *) capabilities_buffer;
 | 
					 | 
				
			||||||
    int i;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    static const struct {
 | 
					 | 
				
			||||||
        uint32_t rate;
 | 
					 | 
				
			||||||
        uint8_t cap;
 | 
					 | 
				
			||||||
    } sink_freq_table[] = {
 | 
					 | 
				
			||||||
        { 44100U, FASTSTREAM_SINK_SAMPLING_FREQ_44100 },
 | 
					 | 
				
			||||||
        { 48000U, FASTSTREAM_SINK_SAMPLING_FREQ_48000 }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    static const struct {
 | 
					 | 
				
			||||||
        uint32_t rate;
 | 
					 | 
				
			||||||
        uint8_t cap;
 | 
					 | 
				
			||||||
    } source_freq_table[] = {
 | 
					 | 
				
			||||||
        { 16000U, FASTSTREAM_SOURCE_SAMPLING_FREQ_16000 }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (capabilities_size != sizeof(*capabilities)) {
 | 
					 | 
				
			||||||
        pa_log_error("Invalid size of FastStream capabilities buffer");
 | 
					 | 
				
			||||||
        return 0;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_zero(*config);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Find the lowest freq that is at least as high as the requested sampling rate */
 | 
					 | 
				
			||||||
    for (i = 0; (unsigned) i < PA_ELEMENTSOF(sink_freq_table); i++)
 | 
					 | 
				
			||||||
        if (sink_freq_table[i].rate >= default_sample_spec->rate && (capabilities->sink_frequency & sink_freq_table[i].cap)) {
 | 
					 | 
				
			||||||
            config->sink_frequency = sink_freq_table[i].cap;
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Match with endpoint capabilities */
 | 
					 | 
				
			||||||
    if ((unsigned) i == PA_ELEMENTSOF(sink_freq_table)) {
 | 
					 | 
				
			||||||
        for (--i; i >= 0; i--) {
 | 
					 | 
				
			||||||
            if (capabilities->sink_frequency & sink_freq_table[i].cap) {
 | 
					 | 
				
			||||||
                config->sink_frequency = sink_freq_table[i].cap;
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (i < 0) {
 | 
					 | 
				
			||||||
            pa_log_error("Not suitable FastStream sink sample rate");
 | 
					 | 
				
			||||||
            return 0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert((unsigned) i < PA_ELEMENTSOF(sink_freq_table));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Only single frequency (for now?) */
 | 
					 | 
				
			||||||
    config->source_frequency = FASTSTREAM_SOURCE_SAMPLING_FREQ_16000;
 | 
					 | 
				
			||||||
    i = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Match with endpoint capabilities */
 | 
					 | 
				
			||||||
    if ((unsigned) i == PA_ELEMENTSOF(source_freq_table)) {
 | 
					 | 
				
			||||||
        for (--i; i >= 0; i--) {
 | 
					 | 
				
			||||||
            if (capabilities->source_frequency & source_freq_table[i].cap) {
 | 
					 | 
				
			||||||
                config->source_frequency = source_freq_table[i].cap;
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (i < 0) {
 | 
					 | 
				
			||||||
            pa_log_error("Not suitable FastStream source sample rate");
 | 
					 | 
				
			||||||
            return 0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert((unsigned) i < PA_ELEMENTSOF(source_freq_table));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    config->direction = FASTSTREAM_DIRECTION_SINK | FASTSTREAM_DIRECTION_SOURCE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    config->info = A2DP_SET_VENDOR_ID_CODEC_ID(FASTSTREAM_VENDOR_ID, FASTSTREAM_CODEC_ID);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return sizeof(*config);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static uint8_t fill_preferred_configuration_xq(const pa_sample_spec *default_sample_spec, const uint8_t *capabilities_buffer, uint8_t capabilities_size, uint8_t config_buffer[MAX_A2DP_CAPS_SIZE], uint32_t bitrate_cap) {
 | 
					static uint8_t fill_preferred_configuration_xq(const pa_sample_spec *default_sample_spec, const uint8_t *capabilities_buffer, uint8_t capabilities_size, uint8_t config_buffer[MAX_A2DP_CAPS_SIZE], uint32_t bitrate_cap) {
 | 
				
			||||||
    a2dp_sbc_t *config = (a2dp_sbc_t *) config_buffer;
 | 
					    a2dp_sbc_t *config = (a2dp_sbc_t *) config_buffer;
 | 
				
			||||||
    const a2dp_sbc_t *capabilities = (const a2dp_sbc_t *) capabilities_buffer;
 | 
					    const a2dp_sbc_t *capabilities = (const a2dp_sbc_t *) capabilities_buffer;
 | 
				
			||||||
| 
						 | 
					@ -846,79 +684,6 @@ static void *init(bool for_encoding, bool for_backchannel, const uint8_t *config
 | 
				
			||||||
    return sbc_info;
 | 
					    return sbc_info;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void *init_faststream(bool for_encoding, bool for_backchannel, const uint8_t *config_buffer, uint8_t config_size, pa_sample_spec *sample_spec, pa_core *core) {
 | 
					 | 
				
			||||||
    struct sbc_info *sbc_info;
 | 
					 | 
				
			||||||
    const a2dp_faststream_t *config = (const a2dp_faststream_t *) config_buffer;
 | 
					 | 
				
			||||||
    int ret;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert(config_size == sizeof(*config));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sbc_info = pa_xnew0(struct sbc_info, 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ret = sbc_init(&sbc_info->sbc, 0);
 | 
					 | 
				
			||||||
    if (ret != 0) {
 | 
					 | 
				
			||||||
        pa_xfree(sbc_info);
 | 
					 | 
				
			||||||
        pa_log_error("SBC initialization failed: %d", ret);
 | 
					 | 
				
			||||||
        return NULL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sample_spec->format = PA_SAMPLE_S16LE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (for_encoding != for_backchannel) {
 | 
					 | 
				
			||||||
        switch (config->sink_frequency) {
 | 
					 | 
				
			||||||
            case FASTSTREAM_SINK_SAMPLING_FREQ_44100:
 | 
					 | 
				
			||||||
                sbc_info->frequency = SBC_FREQ_44100;
 | 
					 | 
				
			||||||
                sample_spec->rate = 44100U;
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            case FASTSTREAM_SINK_SAMPLING_FREQ_48000:
 | 
					 | 
				
			||||||
                sbc_info->frequency = SBC_FREQ_48000;
 | 
					 | 
				
			||||||
                sample_spec->rate = 48000U;
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            default:
 | 
					 | 
				
			||||||
                pa_assert_not_reached();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        sample_spec->channels = 2;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        sbc_info->mode = SBC_MODE_JOINT_STEREO;
 | 
					 | 
				
			||||||
        sbc_info->initial_bitpool = sbc_info->min_bitpool = sbc_info->max_bitpool = 29;
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        switch (config->source_frequency) {
 | 
					 | 
				
			||||||
            case FASTSTREAM_SOURCE_SAMPLING_FREQ_16000:
 | 
					 | 
				
			||||||
                sbc_info->frequency = SBC_FREQ_16000;
 | 
					 | 
				
			||||||
                sample_spec->rate = 16000U;
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            default:
 | 
					 | 
				
			||||||
                pa_assert_not_reached();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        sample_spec->channels = 2;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        sbc_info->mode = SBC_MODE_MONO;
 | 
					 | 
				
			||||||
        sbc_info->initial_bitpool = sbc_info->min_bitpool = sbc_info->max_bitpool = 32;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sbc_info->allocation = SBC_AM_LOUDNESS;
 | 
					 | 
				
			||||||
    sbc_info->subbands = SBC_SB_8;
 | 
					 | 
				
			||||||
    sbc_info->nr_subbands = 8;
 | 
					 | 
				
			||||||
    sbc_info->blocks = SBC_BLK_16;
 | 
					 | 
				
			||||||
    sbc_info->nr_blocks = 16;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    set_params(sbc_info);
 | 
					 | 
				
			||||||
    if (sbc_info->frame_length & 1)
 | 
					 | 
				
			||||||
        ++sbc_info->frame_length;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_log_info("FastStream %s SBC parameters: allocation=%s, subbands=%u, blocks=%u, mode=%s bitpool=%u codesize=%u frame_length=%u",
 | 
					 | 
				
			||||||
                for_encoding ? "encoder" : "decoder",
 | 
					 | 
				
			||||||
                sbc_info->sbc.allocation ? "SNR" : "Loudness", sbc_info->sbc.subbands ? 8 : 4,
 | 
					 | 
				
			||||||
                (sbc_info->sbc.blocks+1)*4, sbc_info->sbc.mode == SBC_MODE_MONO ? "Mono" :
 | 
					 | 
				
			||||||
                sbc_info->sbc.mode == SBC_MODE_DUAL_CHANNEL ? "DualChannel" :
 | 
					 | 
				
			||||||
                sbc_info->sbc.mode == SBC_MODE_STEREO ? "Stereo" : "JointStereo",
 | 
					 | 
				
			||||||
                sbc_info->sbc.bitpool, (unsigned)sbc_info->codesize, (unsigned)sbc_info->frame_length);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return sbc_info;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void deinit(void *codec_info) {
 | 
					static void deinit(void *codec_info) {
 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -944,12 +709,6 @@ static int reset(void *codec_info) {
 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
				
			||||||
    int ret;
 | 
					    int ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* forget about source volume boost */
 | 
					 | 
				
			||||||
    sbc_info->boost_source_volume = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* forget last saved frame fragment */
 | 
					 | 
				
			||||||
    sbc_info->frame_fragment_size = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ret = sbc_reinit(&sbc_info->sbc, 0);
 | 
					    ret = sbc_reinit(&sbc_info->sbc, 0);
 | 
				
			||||||
    if (ret != 0) {
 | 
					    if (ret != 0) {
 | 
				
			||||||
        pa_log_error("SBC reinitialization failed: %d", ret);
 | 
					        pa_log_error("SBC reinitialization failed: %d", ret);
 | 
				
			||||||
| 
						 | 
					@ -963,25 +722,6 @@ static int reset(void *codec_info) {
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int reset_faststream(void *codec_info) {
 | 
					 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					 | 
				
			||||||
    int ret;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ret = sbc_reinit(&sbc_info->sbc, 0);
 | 
					 | 
				
			||||||
    if (ret != 0) {
 | 
					 | 
				
			||||||
        pa_log_error("SBC reinitialization failed: %d", ret);
 | 
					 | 
				
			||||||
        return -1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* sbc_reinit() sets also default parameters, so reset them back */
 | 
					 | 
				
			||||||
    set_params(sbc_info);
 | 
					 | 
				
			||||||
    if (sbc_info->frame_length & 1)
 | 
					 | 
				
			||||||
        ++sbc_info->frame_length;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sbc_info->seq_num = 0;
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static size_t get_block_size(void *codec_info, size_t link_mtu) {
 | 
					static size_t get_block_size(void *codec_info, size_t link_mtu) {
 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
				
			||||||
    size_t rtp_size = sizeof(struct rtp_header) + sizeof(struct rtp_payload);
 | 
					    size_t rtp_size = sizeof(struct rtp_header) + sizeof(struct rtp_payload);
 | 
				
			||||||
| 
						 | 
					@ -1002,28 +742,6 @@ static size_t get_block_size(void *codec_info, size_t link_mtu) {
 | 
				
			||||||
    return frame_count * sbc_info->codesize;
 | 
					    return frame_count * sbc_info->codesize;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static size_t get_write_block_size_faststream(void *codec_info, size_t link_mtu) {
 | 
					 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					 | 
				
			||||||
    size_t frame_count = link_mtu / sbc_info->frame_length;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* 3 frames seem to work best, with minimal glitches */
 | 
					 | 
				
			||||||
    if (frame_count > 3)
 | 
					 | 
				
			||||||
        frame_count = 3;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return frame_count * sbc_info->codesize;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static size_t get_read_block_size_faststream(void *codec_info, size_t link_mtu) {
 | 
					 | 
				
			||||||
    /* With SBC bitpool >= 29 and any combination of blocks, subbands
 | 
					 | 
				
			||||||
     * and channels maximum compression ratio 4:1 is achieved with
 | 
					 | 
				
			||||||
     * blocks=16, subbands=8, channels=2, bitpool=29
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * Though smaller bitpools can yield higher compression ratio, faststream is
 | 
					 | 
				
			||||||
     * assumed to have fixed bitpool so maximum output size is link_mtu * 4.
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    return link_mtu * 4;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static size_t get_encoded_block_size(void *codec_info, size_t input_size) {
 | 
					static size_t get_encoded_block_size(void *codec_info, size_t input_size) {
 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
				
			||||||
    size_t rtp_size = sizeof(struct rtp_header) + sizeof(struct rtp_payload);
 | 
					    size_t rtp_size = sizeof(struct rtp_header) + sizeof(struct rtp_payload);
 | 
				
			||||||
| 
						 | 
					@ -1034,15 +752,6 @@ static size_t get_encoded_block_size(void *codec_info, size_t input_size) {
 | 
				
			||||||
    return (input_size / sbc_info->codesize) * sbc_info->frame_length + rtp_size;
 | 
					    return (input_size / sbc_info->codesize) * sbc_info->frame_length + rtp_size;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static size_t get_encoded_block_size_faststream(void *codec_info, size_t input_size) {
 | 
					 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* input size should be aligned to codec input block size */
 | 
					 | 
				
			||||||
    pa_assert_fp(input_size % sbc_info->codesize == 0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (input_size / sbc_info->codesize) * sbc_info->frame_length;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static size_t reduce_encoder_bitrate(void *codec_info, size_t write_link_mtu) {
 | 
					static size_t reduce_encoder_bitrate(void *codec_info, size_t write_link_mtu) {
 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
				
			||||||
    uint8_t bitpool;
 | 
					    uint8_t bitpool;
 | 
				
			||||||
| 
						 | 
					@ -1151,72 +860,6 @@ static size_t encode_buffer(void *codec_info, uint32_t timestamp, const uint8_t
 | 
				
			||||||
    return d - output_buffer;
 | 
					    return d - output_buffer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static size_t encode_buffer_faststream(void *codec_info, uint32_t timestamp, const uint8_t *input_buffer, size_t input_size, uint8_t *output_buffer, size_t output_size, size_t *processed) {
 | 
					 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					 | 
				
			||||||
    uint8_t *d;
 | 
					 | 
				
			||||||
    const uint8_t *p;
 | 
					 | 
				
			||||||
    size_t to_write, to_encode;
 | 
					 | 
				
			||||||
    uint8_t frame_count;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    frame_count = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    p = input_buffer;
 | 
					 | 
				
			||||||
    to_encode = input_size;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    d = output_buffer;
 | 
					 | 
				
			||||||
    to_write = output_size;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* frame_count is only 4 bit number */
 | 
					 | 
				
			||||||
    while (PA_LIKELY(to_encode > 0 && to_write > 0)) {
 | 
					 | 
				
			||||||
        ssize_t written;
 | 
					 | 
				
			||||||
        ssize_t encoded;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        encoded = sbc_encode(&sbc_info->sbc,
 | 
					 | 
				
			||||||
                             p, to_encode,
 | 
					 | 
				
			||||||
                             d, to_write,
 | 
					 | 
				
			||||||
                             &written);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (PA_UNLIKELY(encoded <= 0)) {
 | 
					 | 
				
			||||||
            pa_log_error("SBC encoding error (%li)", (long) encoded);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (PA_UNLIKELY(written < 0)) {
 | 
					 | 
				
			||||||
            pa_log_error("SBC encoding error (%li)", (long) written);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        while (written < sbc_info->frame_length && written < to_write)
 | 
					 | 
				
			||||||
            d[written++] = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        pa_assert_fp((size_t) encoded <= to_encode);
 | 
					 | 
				
			||||||
        pa_assert_fp((size_t) encoded == sbc_info->codesize);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        pa_assert_fp((size_t) written <= to_write);
 | 
					 | 
				
			||||||
        pa_assert_fp((size_t) written == sbc_info->frame_length);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        p += encoded;
 | 
					 | 
				
			||||||
        to_encode -= encoded;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        d += written;
 | 
					 | 
				
			||||||
        to_write -= written;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        frame_count++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PA_ONCE_BEGIN {
 | 
					 | 
				
			||||||
        pa_log_debug("Using SBC codec implementation: %s", pa_strnull(sbc_get_implementation_info(&sbc_info->sbc)));
 | 
					 | 
				
			||||||
    } PA_ONCE_END;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (PA_UNLIKELY(frame_count == 0)) {
 | 
					 | 
				
			||||||
        *processed = 0;
 | 
					 | 
				
			||||||
        return 0;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    *processed = p - input_buffer;
 | 
					 | 
				
			||||||
    return d - output_buffer;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static size_t decode_buffer(void *codec_info, const uint8_t *input_buffer, size_t input_size, uint8_t *output_buffer, size_t output_size, size_t *processed) {
 | 
					static size_t decode_buffer(void *codec_info, const uint8_t *input_buffer, size_t input_size, uint8_t *output_buffer, size_t output_size, size_t *processed) {
 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1281,146 +924,9 @@ static size_t decode_buffer(void *codec_info, const uint8_t *input_buffer, size_
 | 
				
			||||||
    return d - output_buffer;
 | 
					    return d - output_buffer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static size_t decode_buffer_faststream(void *codec_info, const uint8_t *input_buffer, size_t input_size, uint8_t *output_buffer, size_t output_size, size_t *processed) {
 | 
					 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const uint8_t *p;
 | 
					 | 
				
			||||||
    uint8_t *d;
 | 
					 | 
				
			||||||
    size_t to_write, to_decode;
 | 
					 | 
				
			||||||
    pa_sample_spec decoded_sample_spec = {
 | 
					 | 
				
			||||||
            .format = PA_SAMPLE_S16LE,
 | 
					 | 
				
			||||||
            .channels = 2,
 | 
					 | 
				
			||||||
            .rate = 16000U
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    uint8_t decode_buffer[4096];
 | 
					 | 
				
			||||||
    uint8_t frame_buffer[4096];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    to_decode = input_size;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* append input buffer to fragment left from previous decode call */
 | 
					 | 
				
			||||||
    if (sbc_info->frame_fragment_size) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (sbc_info->frame_fragment_size + to_decode > sizeof(frame_buffer)) {
 | 
					 | 
				
			||||||
            pa_log_debug("FastStream SBC input (saved + incoming) size %lu larger than buffer size %lu, input truncated to fit",
 | 
					 | 
				
			||||||
                    sbc_info->frame_fragment_size + to_decode, sizeof(frame_buffer));
 | 
					 | 
				
			||||||
            to_decode = sizeof(frame_buffer) - sbc_info->frame_fragment_size;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        memcpy(frame_buffer, sbc_info->frame_fragment, sbc_info->frame_fragment_size);
 | 
					 | 
				
			||||||
        memcpy(frame_buffer + sbc_info->frame_fragment_size, input_buffer, to_decode);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        to_decode += sbc_info->frame_fragment_size;
 | 
					 | 
				
			||||||
        p = frame_buffer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* clear saved fragment */
 | 
					 | 
				
			||||||
        sbc_info->frame_fragment_size = 0;
 | 
					 | 
				
			||||||
    } else
 | 
					 | 
				
			||||||
        p = input_buffer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    d = output_buffer;
 | 
					 | 
				
			||||||
    to_write = output_size;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    while (PA_LIKELY(to_decode > 0 && to_write > 0)) {
 | 
					 | 
				
			||||||
        size_t written = 0;
 | 
					 | 
				
			||||||
        ssize_t decoded;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* skip to SBC sync word before attempting decode */
 | 
					 | 
				
			||||||
        if (*p != SBC_SYNCWORD) {
 | 
					 | 
				
			||||||
            ++p;
 | 
					 | 
				
			||||||
            --to_decode;
 | 
					 | 
				
			||||||
            continue;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (to_decode < sbc_info->frame_length) {
 | 
					 | 
				
			||||||
            pa_log_debug("FastStream SBC input %lu is too short (expected frame length %lu)", to_decode, sbc_info->frame_length);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        decoded = sbc_decode(&sbc_info->sbc,
 | 
					 | 
				
			||||||
                             p, to_decode,
 | 
					 | 
				
			||||||
                             decode_buffer, sizeof(decode_buffer),
 | 
					 | 
				
			||||||
                             &written);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (PA_UNLIKELY(decoded <= 0)) {
 | 
					 | 
				
			||||||
            /* sbc_decode returns -1 if input too short,
 | 
					 | 
				
			||||||
             * break from loop to save this frame fragment for next decode iteration */
 | 
					 | 
				
			||||||
            if (decoded == -1) {
 | 
					 | 
				
			||||||
                pa_log_debug("FastStream SBC decoding error (%li) input %lu is too short", (long) decoded, to_decode);
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            /* otherwise failed to decode frame, skip to next SBC sync word */
 | 
					 | 
				
			||||||
            pa_log_error("FastStream SBC decoding error (%li)", (long) decoded);
 | 
					 | 
				
			||||||
            decoded = 1;
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            /* Reset codesize and frame_length to values found by decoder */
 | 
					 | 
				
			||||||
            sbc_info->codesize = sbc_get_codesize(&sbc_info->sbc);
 | 
					 | 
				
			||||||
            sbc_info->frame_length = sbc_get_frame_length(&sbc_info->sbc);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (sbc_info->mode != sbc_info->sbc.mode)
 | 
					 | 
				
			||||||
                sbc_info->mode = sbc_info->sbc.mode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (sbc_info->frequency != sbc_info->sbc.frequency) {
 | 
					 | 
				
			||||||
                /* some devices unexpectedly return SBC frequency different from 16000
 | 
					 | 
				
			||||||
                 * remember this, and keep incoming sample rate at 16000 */
 | 
					 | 
				
			||||||
                pa_log_debug("FastStream decoder detected SBC frequency %u, expected %u", sbc_info->sbc.frequency, sbc_info->frequency);
 | 
					 | 
				
			||||||
                sbc_info->frequency = sbc_info->sbc.frequency;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                /* volume is too low for known devices with unexpected source SBC frequency */
 | 
					 | 
				
			||||||
                pa_log_debug("FastStream decoder requesting 20dB boost for source volume");
 | 
					 | 
				
			||||||
                sbc_info->boost_source_volume = true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (sbc_info->sbc.mode == SBC_MODE_MONO) {
 | 
					 | 
				
			||||||
                const void *interleave_buf[2] = {decode_buffer, decode_buffer};
 | 
					 | 
				
			||||||
                /* mono->stereo conversion needs to fit into remaining output space */
 | 
					 | 
				
			||||||
                written = PA_MIN(to_write / 2, written);
 | 
					 | 
				
			||||||
                pa_interleave(interleave_buf, 2, d, pa_sample_size(&decoded_sample_spec), written / pa_sample_size(&decoded_sample_spec));
 | 
					 | 
				
			||||||
                written *= 2;
 | 
					 | 
				
			||||||
            } else
 | 
					 | 
				
			||||||
                memcpy(d, decode_buffer, written);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        pa_assert_fp((size_t) decoded <= to_decode);
 | 
					 | 
				
			||||||
        pa_assert_fp((size_t) written <= to_write);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        p += decoded;
 | 
					 | 
				
			||||||
        to_decode -= decoded;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        d += written;
 | 
					 | 
				
			||||||
        to_write -= written;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (to_decode) {
 | 
					 | 
				
			||||||
        if (to_decode > sizeof(sbc_info->frame_fragment)) {
 | 
					 | 
				
			||||||
            pa_log_debug("FastStream remaining SBC fragment size %lu larger than buffer size %lu, remainder truncated to fit",
 | 
					 | 
				
			||||||
                    to_decode, sizeof(sbc_info->frame_fragment));
 | 
					 | 
				
			||||||
            p += to_decode - sizeof(sbc_info->frame_fragment);
 | 
					 | 
				
			||||||
            to_decode = sizeof(sbc_info->frame_fragment);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        pa_log_debug("FastStream saving SBC fragment size %lu for next decoding iteration", to_decode);
 | 
					 | 
				
			||||||
        memcpy(sbc_info->frame_fragment, p, to_decode);
 | 
					 | 
				
			||||||
        sbc_info->frame_fragment_size = to_decode;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    *processed = input_size;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return d - output_buffer;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Boost sink backchannel mic volume by 20dB as it appears too quiet */
 | 
					 | 
				
			||||||
double get_source_output_volume_factor_dB_faststream(void *codec_info) {
 | 
					 | 
				
			||||||
    struct sbc_info *sbc_info = (struct sbc_info *) codec_info;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (sbc_info->boost_source_volume)
 | 
					 | 
				
			||||||
        return 20.;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return 1.0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc = {
 | 
					const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc = {
 | 
				
			||||||
    .id = { A2DP_CODEC_SBC, 0, 0 },
 | 
					    .id = { A2DP_CODEC_SBC, 0, 0 },
 | 
				
			||||||
 | 
					    .support_backchannel = false,
 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					    .can_be_supported = can_be_supported,
 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities,
 | 
					    .can_accept_capabilities = can_accept_capabilities,
 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint,
 | 
					    .choose_remote_endpoint = choose_remote_endpoint,
 | 
				
			||||||
| 
						 | 
					@ -1458,6 +964,7 @@ const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc_xq_453 = {
 | 
					const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc_xq_453 = {
 | 
				
			||||||
    .id = { A2DP_CODEC_SBC, 0, 0 },
 | 
					    .id = { A2DP_CODEC_SBC, 0, 0 },
 | 
				
			||||||
 | 
					    .support_backchannel = false,
 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					    .can_be_supported = can_be_supported,
 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities_xq,
 | 
					    .can_accept_capabilities = can_accept_capabilities_xq,
 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint_xq,
 | 
					    .choose_remote_endpoint = choose_remote_endpoint_xq,
 | 
				
			||||||
| 
						 | 
					@ -1482,6 +989,7 @@ const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc_xq_453 = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc_xq_512 = {
 | 
					const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc_xq_512 = {
 | 
				
			||||||
    .id = { A2DP_CODEC_SBC, 0, 0 },
 | 
					    .id = { A2DP_CODEC_SBC, 0, 0 },
 | 
				
			||||||
 | 
					    .support_backchannel = false,
 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					    .can_be_supported = can_be_supported,
 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities_xq,
 | 
					    .can_accept_capabilities = can_accept_capabilities_xq,
 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint_xq,
 | 
					    .choose_remote_endpoint = choose_remote_endpoint_xq,
 | 
				
			||||||
| 
						 | 
					@ -1506,6 +1014,7 @@ const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc_xq_512 = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc_xq_552 = {
 | 
					const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc_xq_552 = {
 | 
				
			||||||
    .id = { A2DP_CODEC_SBC, 0, 0 },
 | 
					    .id = { A2DP_CODEC_SBC, 0, 0 },
 | 
				
			||||||
 | 
					    .support_backchannel = false,
 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					    .can_be_supported = can_be_supported,
 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities_xq,
 | 
					    .can_accept_capabilities = can_accept_capabilities_xq,
 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint_xq,
 | 
					    .choose_remote_endpoint = choose_remote_endpoint_xq,
 | 
				
			||||||
| 
						 | 
					@ -1527,49 +1036,3 @@ const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_sbc_xq_552 = {
 | 
				
			||||||
        .decode_buffer = decode_buffer,
 | 
					        .decode_buffer = decode_buffer,
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
/* FastStream codec is just SBC codec with fixed parameters.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Sink stream parameters:
 | 
					 | 
				
			||||||
 *     48.0kHz or 44.1kHz,
 | 
					 | 
				
			||||||
 *     Blocks 16,
 | 
					 | 
				
			||||||
 *     Sub-bands 8,
 | 
					 | 
				
			||||||
 *     Joint Stereo,
 | 
					 | 
				
			||||||
 *     Allocation method Loudness,
 | 
					 | 
				
			||||||
 *     Bitpool = 29
 | 
					 | 
				
			||||||
 * (data rate = 212kbps, packet size = (71+1)3 <= DM5 = 220, with 3 SBC frames).
 | 
					 | 
				
			||||||
 * SBC frame size is 71 bytes, but FastStream is zero-padded to the even size (72).
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Source stream parameters:
 | 
					 | 
				
			||||||
 *     16kHz,
 | 
					 | 
				
			||||||
 *     Mono,
 | 
					 | 
				
			||||||
 *     Blocks 16,
 | 
					 | 
				
			||||||
 *     Sub-bands 8,
 | 
					 | 
				
			||||||
 *     Allocation method Loudness,
 | 
					 | 
				
			||||||
 *     Bitpool = 32
 | 
					 | 
				
			||||||
 * (data rate = 72kbps, packet size = 723 <= DM5 = 220, with 3 SBC frames).
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_faststream = {
 | 
					 | 
				
			||||||
    .id = { A2DP_CODEC_VENDOR, FASTSTREAM_VENDOR_ID, FASTSTREAM_CODEC_ID },
 | 
					 | 
				
			||||||
    .can_be_supported = can_be_supported,
 | 
					 | 
				
			||||||
    .can_accept_capabilities = can_accept_capabilities_faststream,
 | 
					 | 
				
			||||||
    .choose_remote_endpoint = choose_remote_endpoint_faststream,
 | 
					 | 
				
			||||||
    .fill_capabilities = fill_capabilities_faststream,
 | 
					 | 
				
			||||||
    .is_configuration_valid = is_configuration_valid_faststream,
 | 
					 | 
				
			||||||
    .fill_preferred_configuration = fill_preferred_configuration_faststream,
 | 
					 | 
				
			||||||
    .bt_codec = {
 | 
					 | 
				
			||||||
        .name = "faststream",
 | 
					 | 
				
			||||||
        .description = "FastStream",
 | 
					 | 
				
			||||||
        .support_backchannel = true,
 | 
					 | 
				
			||||||
        .init = init_faststream,
 | 
					 | 
				
			||||||
        .deinit = deinit,
 | 
					 | 
				
			||||||
        .reset = reset_faststream,
 | 
					 | 
				
			||||||
        .get_read_block_size = get_read_block_size_faststream,
 | 
					 | 
				
			||||||
        .get_write_block_size = get_write_block_size_faststream,
 | 
					 | 
				
			||||||
        .get_encoded_block_size = get_encoded_block_size_faststream,
 | 
					 | 
				
			||||||
        .encode_buffer = encode_buffer_faststream,
 | 
					 | 
				
			||||||
        .decode_buffer = decode_buffer_faststream,
 | 
					 | 
				
			||||||
        .get_source_output_volume_factor_dB = get_source_output_volume_factor_dB_faststream,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,7 +52,6 @@ extern const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_hq;
 | 
				
			||||||
extern const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_sq;
 | 
					extern const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_sq;
 | 
				
			||||||
extern const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_mq;
 | 
					extern const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_ldac_eqmid_mq;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
extern const pa_a2dp_endpoint_conf pa_a2dp_endpoint_conf_faststream;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* This is list of supported codecs. Their order is important.
 | 
					/* This is list of supported codecs. Their order is important.
 | 
				
			||||||
 * Codec with lower index has higher priority. */
 | 
					 * Codec with lower index has higher priority. */
 | 
				
			||||||
| 
						 | 
					@ -70,7 +69,6 @@ static const pa_a2dp_endpoint_conf *pa_a2dp_endpoint_configurations[] = {
 | 
				
			||||||
    &pa_a2dp_endpoint_conf_sbc_xq_453,
 | 
					    &pa_a2dp_endpoint_conf_sbc_xq_453,
 | 
				
			||||||
    &pa_a2dp_endpoint_conf_sbc_xq_512,
 | 
					    &pa_a2dp_endpoint_conf_sbc_xq_512,
 | 
				
			||||||
    &pa_a2dp_endpoint_conf_sbc_xq_552,
 | 
					    &pa_a2dp_endpoint_conf_sbc_xq_552,
 | 
				
			||||||
    &pa_a2dp_endpoint_conf_faststream,
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unsigned int pa_bluetooth_a2dp_endpoint_conf_count(void) {
 | 
					unsigned int pa_bluetooth_a2dp_endpoint_conf_count(void) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,25 +38,15 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "bluez5-util.h"
 | 
					#include "bluez5-util.h"
 | 
				
			||||||
#include "bt-codec-msbc.h"
 | 
					#include "bt-codec-msbc.h"
 | 
				
			||||||
#include "upower.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define MANDATORY_CALL_INDICATORS \
 | 
					 | 
				
			||||||
        "(\"call\",(0-1))," \
 | 
					 | 
				
			||||||
        "(\"callsetup\",(0-3))," \
 | 
					 | 
				
			||||||
        "(\"callheld\",(0-2))" \
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct pa_bluetooth_backend {
 | 
					struct pa_bluetooth_backend {
 | 
				
			||||||
  pa_core *core;
 | 
					  pa_core *core;
 | 
				
			||||||
  pa_dbus_connection *connection;
 | 
					  pa_dbus_connection *connection;
 | 
				
			||||||
  pa_bluetooth_discovery *discovery;
 | 
					  pa_bluetooth_discovery *discovery;
 | 
				
			||||||
  pa_hook_slot *adapter_uuids_changed_slot;
 | 
					  pa_hook_slot *adapter_uuids_changed_slot;
 | 
				
			||||||
  pa_hook_slot *host_battery_level_changed_slot;
 | 
					 | 
				
			||||||
  pa_upower_backend *upower;
 | 
					 | 
				
			||||||
  bool enable_shared_profiles;
 | 
					  bool enable_shared_profiles;
 | 
				
			||||||
  bool enable_hsp_hs;
 | 
					  bool enable_hsp_hs;
 | 
				
			||||||
  bool enable_hfp_hf;
 | 
					  bool enable_hfp_hf;
 | 
				
			||||||
  bool cmer_indicator_reporting_enabled;
 | 
					 | 
				
			||||||
  uint32_t cind_enabled_indicators;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  PA_LLIST_HEAD(pa_dbus_pending, pending);
 | 
					  PA_LLIST_HEAD(pa_dbus_pending, pending);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -67,7 +57,6 @@ struct transport_data {
 | 
				
			||||||
    int sco_fd;
 | 
					    int sco_fd;
 | 
				
			||||||
    pa_io_event *sco_io;
 | 
					    pa_io_event *sco_io;
 | 
				
			||||||
    pa_mainloop_api *mainloop;
 | 
					    pa_mainloop_api *mainloop;
 | 
				
			||||||
    pa_bluetooth_backend *backend;
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct hfp_config {
 | 
					struct hfp_config {
 | 
				
			||||||
| 
						 | 
					@ -108,20 +97,6 @@ enum hfp_ag_features {
 | 
				
			||||||
    HFP_AG_INDICATORS = 10,
 | 
					    HFP_AG_INDICATORS = 10,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * Always keep this struct in sync with indicator discovery of AT+CIND=?
 | 
					 | 
				
			||||||
 * These indicators are used in bitflags and intentionally start at 1
 | 
					 | 
				
			||||||
 * since AT+CIND indicators start at index 1.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
typedef enum pa_bluetooth_ag_to_hf_indicators {
 | 
					 | 
				
			||||||
    CIND_CALL_INDICATOR = 1,
 | 
					 | 
				
			||||||
    CIND_CALL_SETUP_INDICATOR = 2,
 | 
					 | 
				
			||||||
    CIND_CALL_HELD_INDICATOR = 3,
 | 
					 | 
				
			||||||
    CIND_SERVICE_INDICATOR = 4,
 | 
					 | 
				
			||||||
    CIND_BATT_CHG_INDICATOR = 5,
 | 
					 | 
				
			||||||
    CIND_INDICATOR_MAX = 6
 | 
					 | 
				
			||||||
} pa_bluetooth_ag_to_hf_indicators_t;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* gateway features we support, which is as little as we can get away with */
 | 
					/* gateway features we support, which is as little as we can get away with */
 | 
				
			||||||
static uint32_t hfp_features =
 | 
					static uint32_t hfp_features =
 | 
				
			||||||
    /* HFP 1.6 requires this */
 | 
					    /* HFP 1.6 requires this */
 | 
				
			||||||
| 
						 | 
					@ -614,13 +589,11 @@ static pa_volume_t set_source_volume(pa_bluetooth_transport *t, pa_volume_t volu
 | 
				
			||||||
static bool hfp_rfcomm_handle(int fd, pa_bluetooth_transport *t, const char *buf)
 | 
					static bool hfp_rfcomm_handle(int fd, pa_bluetooth_transport *t, const char *buf)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    struct hfp_config *c = t->config;
 | 
					    struct hfp_config *c = t->config;
 | 
				
			||||||
    struct transport_data *trd = t->userdata;
 | 
					    int indicator, val;
 | 
				
			||||||
    pa_bluetooth_backend *b = trd->backend;
 | 
					    char str[5];
 | 
				
			||||||
    int indicator, mode, val;
 | 
					 | 
				
			||||||
    char *str;
 | 
					 | 
				
			||||||
    const char *r;
 | 
					    const char *r;
 | 
				
			||||||
    size_t len;
 | 
					    size_t len;
 | 
				
			||||||
    const char *state = NULL;
 | 
					    const char *state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* first-time initialize selected codec to CVSD */
 | 
					    /* first-time initialize selected codec to CVSD */
 | 
				
			||||||
    if (c->selected_codec == 0)
 | 
					    if (c->selected_codec == 0)
 | 
				
			||||||
| 
						 | 
					@ -635,47 +608,18 @@ static bool hfp_rfcomm_handle(int fd, pa_bluetooth_transport *t, const char *buf
 | 
				
			||||||
        c->state = 1;
 | 
					        c->state = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    } else if (pa_startswith(buf, "AT+BIA=")) {
 | 
					    } else if (sscanf(buf, "AT+BAC=%3s", str) == 1) {
 | 
				
			||||||
        /* Indicators start with index 1 and follow the order of the AT+CIND=? response */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        str = pa_xstrdup(buf + 7);
 | 
					 | 
				
			||||||
        for (indicator = 1; (r = pa_split_in_place(str, ",\r\n", &len, &state)); indicator++) {
 | 
					 | 
				
			||||||
            /* Ignore updates to mandatory indicators which are always ON */
 | 
					 | 
				
			||||||
            if (indicator == CIND_CALL_INDICATOR
 | 
					 | 
				
			||||||
                || indicator == CIND_CALL_SETUP_INDICATOR
 | 
					 | 
				
			||||||
                || indicator == CIND_CALL_HELD_INDICATOR)
 | 
					 | 
				
			||||||
                continue;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            /* Indicators may have no value and should be skipped */
 | 
					 | 
				
			||||||
            if (len == 0)
 | 
					 | 
				
			||||||
                continue;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (len == 1 && r[0] == '1')
 | 
					 | 
				
			||||||
                b->cind_enabled_indicators |= (1 << indicator);
 | 
					 | 
				
			||||||
            else if (len == 1 && r[0] == '0')
 | 
					 | 
				
			||||||
                b->cind_enabled_indicators &= ~(1 << indicator);
 | 
					 | 
				
			||||||
            else {
 | 
					 | 
				
			||||||
                pa_log_error("Unable to parse indicator of AT+BIA command: %s", buf);
 | 
					 | 
				
			||||||
                rfcomm_write_response(fd, "ERROR");
 | 
					 | 
				
			||||||
                pa_xfree(str);
 | 
					 | 
				
			||||||
                return false;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        pa_xfree(str);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return true;
 | 
					 | 
				
			||||||
    } else if (pa_startswith(buf, "AT+BAC=")) {
 | 
					 | 
				
			||||||
        c->support_msbc = false;
 | 
					        c->support_msbc = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        state = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* check if codec id 2 (mSBC) is in the list of supported codecs */
 | 
					        /* check if codec id 2 (mSBC) is in the list of supported codecs */
 | 
				
			||||||
        str = pa_xstrdup(buf + 7);
 | 
					        while ((r = pa_split_in_place(str, ",", &len, &state))) {
 | 
				
			||||||
        while ((r = pa_split_in_place(str, ",\r\n", &len, &state))) {
 | 
					 | 
				
			||||||
            if (len == 1 && r[0] == '2') {
 | 
					            if (len == 1 && r[0] == '2') {
 | 
				
			||||||
                c->support_msbc = true;
 | 
					                c->support_msbc = true;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        pa_xfree(str);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        c->support_codec_negotiation = true;
 | 
					        c->support_codec_negotiation = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -689,48 +633,24 @@ static bool hfp_rfcomm_handle(int fd, pa_bluetooth_transport *t, const char *buf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    } else if (c->state == 1 && pa_startswith(buf, "AT+CIND=?")) {
 | 
					    } else if (c->state == 1 && pa_startswith(buf, "AT+CIND=?")) {
 | 
				
			||||||
        /* UPower backend available, declare support for more indicators */
 | 
					        /* we declare minimal no indicators */
 | 
				
			||||||
        if (b->upower) {
 | 
					        rfcomm_write_response(fd, "+CIND: "
 | 
				
			||||||
            rfcomm_write_response(fd, "+CIND: "
 | 
					                     /* many indicators can be supported, only call and
 | 
				
			||||||
                    MANDATORY_CALL_INDICATORS ","
 | 
					                      * callheld are mandatory, so that's all we reply */
 | 
				
			||||||
                    "(\"service\",(0-1)),"
 | 
					                     "(\"service\",(0-1)),"
 | 
				
			||||||
                    "(\"battchg\",(0-5))");
 | 
					                     "(\"call\",(0-1)),"
 | 
				
			||||||
 | 
					                     "(\"callsetup\",(0-3)),"
 | 
				
			||||||
        /* Minimal indicators supported without any additional backend */
 | 
					                     "(\"callheld\",(0-2))");
 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            rfcomm_write_response(fd, "+CIND: "
 | 
					 | 
				
			||||||
                    MANDATORY_CALL_INDICATORS ","
 | 
					 | 
				
			||||||
                    "(\"service\",(0-1))");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        c->state = 2;
 | 
					        c->state = 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    } else if (c->state == 2 && pa_startswith(buf, "AT+CIND?")) {
 | 
					    } else if (c->state == 2 && pa_startswith(buf, "AT+CIND?")) {
 | 
				
			||||||
        if (b->upower)
 | 
					        rfcomm_write_response(fd, "+CIND: 0,0,0,0");
 | 
				
			||||||
            rfcomm_write_response(fd, "+CIND: 0,0,0,0,%u", pa_upower_get_battery_level(b->upower));
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            rfcomm_write_response(fd, "+CIND: 0,0,0,0");
 | 
					 | 
				
			||||||
        c->state = 3;
 | 
					        c->state = 3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    } else if ((c->state == 2 || c->state == 3) && pa_startswith(buf, "AT+CMER=")) {
 | 
					    } else if ((c->state == 2 || c->state == 3) && pa_startswith(buf, "AT+CMER=")) {
 | 
				
			||||||
        if (sscanf(buf, "AT+CMER=%d,%*d,%*d,%d", &mode, &val) == 2) {
 | 
					        rfcomm_write_response(fd, "OK");
 | 
				
			||||||
            /* Bluetooth HFP spec only defines mode == 3 */
 | 
					 | 
				
			||||||
            if (mode != 3)
 | 
					 | 
				
			||||||
                pa_log_warn("Unexpected mode for AT+CMER: %d", mode);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            /* Configure CMER event reporting */
 | 
					 | 
				
			||||||
            b->cmer_indicator_reporting_enabled = !!val;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            pa_log_debug("Event indications enabled? %s", pa_yes_no(val));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            rfcomm_write_response(fd, "OK");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        else {
 | 
					 | 
				
			||||||
            pa_log_error("Unable to parse AT+CMER command: %s", buf);
 | 
					 | 
				
			||||||
            rfcomm_write_response(fd, "ERROR");
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (c->support_codec_negotiation) {
 | 
					        if (c->support_codec_negotiation) {
 | 
				
			||||||
            if (c->support_msbc && pa_bluetooth_discovery_get_enable_msbc(t->device->discovery)) {
 | 
					            if (c->support_msbc && pa_bluetooth_discovery_get_enable_msbc(t->device->discovery)) {
 | 
				
			||||||
| 
						 | 
					@ -818,62 +738,8 @@ static bool hfp_rfcomm_handle(int fd, pa_bluetooth_transport *t, const char *buf
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int get_rfcomm_fd(pa_bluetooth_discovery *discovery) {
 | 
					 | 
				
			||||||
    struct pa_bluetooth_transport *t;
 | 
					 | 
				
			||||||
    struct transport_data *trd = NULL;
 | 
					 | 
				
			||||||
    void *state = NULL;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Find RFCOMM transport by checking if a HSP or HFP profile transport is available */
 | 
					 | 
				
			||||||
    while ((t = pa_hashmap_iterate(pa_bluetooth_discovery_get_transports(discovery), &state, NULL))) {
 | 
					 | 
				
			||||||
        /* Skip non-connected transports */
 | 
					 | 
				
			||||||
        if (!t || t->state == PA_BLUETOOTH_TRANSPORT_STATE_DISCONNECTED) {
 | 
					 | 
				
			||||||
            continue;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Break when an RFCOMM capable transport profile is available */
 | 
					 | 
				
			||||||
        if (t->profile == PA_BLUETOOTH_PROFILE_HFP_HF) {
 | 
					 | 
				
			||||||
            trd = t->userdata;
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Skip if RFCOMM channel is not available yet */
 | 
					 | 
				
			||||||
    if (!trd) {
 | 
					 | 
				
			||||||
        pa_log_info("RFCOMM not available yet, skipping notification");
 | 
					 | 
				
			||||||
        return -1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return trd->rfcomm_fd;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static pa_hook_result_t host_battery_level_changed_cb(pa_bluetooth_discovery *y, const pa_upower_backend *u, pa_bluetooth_backend *b) {
 | 
					 | 
				
			||||||
    int rfcomm_fd;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert(y);
 | 
					 | 
				
			||||||
    pa_assert(u);
 | 
					 | 
				
			||||||
    pa_assert(b);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Get RFCOMM channel if available */
 | 
					 | 
				
			||||||
    rfcomm_fd = get_rfcomm_fd(y);
 | 
					 | 
				
			||||||
    if (rfcomm_fd < 0)
 | 
					 | 
				
			||||||
        return PA_HOOK_OK;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Notify HF about AG battery level change over RFCOMM */
 | 
					 | 
				
			||||||
    if (b->cmer_indicator_reporting_enabled && (b->cind_enabled_indicators & (1 << CIND_BATT_CHG_INDICATOR))) {
 | 
					 | 
				
			||||||
        rfcomm_write_response(rfcomm_fd, "+CIEV: %d,%d", CIND_BATT_CHG_INDICATOR, u->battery_level);
 | 
					 | 
				
			||||||
        pa_log_debug("HG notified of AG's battery level change");
 | 
					 | 
				
			||||||
    /* Skip notification if indicator is disabled or event reporting is completely disabled */
 | 
					 | 
				
			||||||
    } else
 | 
					 | 
				
			||||||
        pa_log_debug("Battery level change indicator disabled, skipping notification");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return PA_HOOK_OK;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void rfcomm_io_callback(pa_mainloop_api *io, pa_io_event *e, int fd, pa_io_event_flags_t events, void *userdata) {
 | 
					static void rfcomm_io_callback(pa_mainloop_api *io, pa_io_event *e, int fd, pa_io_event_flags_t events, void *userdata) {
 | 
				
			||||||
    pa_bluetooth_transport *t = userdata;
 | 
					    pa_bluetooth_transport *t = userdata;
 | 
				
			||||||
    struct transport_data *trd = t->userdata;
 | 
					 | 
				
			||||||
    pa_bluetooth_backend *b = trd->backend;
 | 
					 | 
				
			||||||
    int i;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_assert(io);
 | 
					    pa_assert(io);
 | 
				
			||||||
    pa_assert(t);
 | 
					    pa_assert(t);
 | 
				
			||||||
| 
						 | 
					@ -889,130 +755,111 @@ static void rfcomm_io_callback(pa_mainloop_api *io, pa_io_event *e, int fd, pa_i
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (events & PA_IO_EVENT_INPUT) {
 | 
					    if (events & PA_IO_EVENT_INPUT) {
 | 
				
			||||||
        char rbuf[512];
 | 
					        char buf[512];
 | 
				
			||||||
        ssize_t len;
 | 
					        ssize_t len;
 | 
				
			||||||
        int gain, dummy;
 | 
					        int gain, dummy;
 | 
				
			||||||
        bool do_reply = false;
 | 
					        bool do_reply = false;
 | 
				
			||||||
        int vendor, product, version, features;
 | 
					        int vendor, product, version, features;
 | 
				
			||||||
        char *buf = rbuf;
 | 
					 | 
				
			||||||
        int num;
 | 
					        int num;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        len = pa_read(fd, rbuf, 511, NULL);
 | 
					        len = pa_read(fd, buf, 511, NULL);
 | 
				
			||||||
        if (len < 0) {
 | 
					        if (len < 0) {
 | 
				
			||||||
            pa_log_error("RFCOMM read error: %s", pa_cstrerror(errno));
 | 
					            pa_log_error("RFCOMM read error: %s", pa_cstrerror(errno));
 | 
				
			||||||
            goto fail;
 | 
					            goto fail;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        rbuf[len] = 0;
 | 
					        buf[len] = 0;
 | 
				
			||||||
        pa_log_debug("RFCOMM << %s", rbuf);
 | 
					        pa_log_debug("RFCOMM << %s", buf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        while (buf[0]) {
 | 
					        /* There are only four HSP AT commands:
 | 
				
			||||||
            /* There are only four HSP AT commands:
 | 
					         * AT+VGS=value: value between 0 and 15, sent by the HS to AG to set the speaker gain.
 | 
				
			||||||
             * AT+VGS=value: value between 0 and 15, sent by the HS to AG to set the speaker gain.
 | 
					         * +VGS=value is sent by AG to HS as a response to an AT+VGS command or when the gain
 | 
				
			||||||
             * +VGS=value is sent by AG to HS as a response to an AT+VGS command or when the gain
 | 
					         * is changed on the AG side.
 | 
				
			||||||
             * is changed on the AG side.
 | 
					         * AT+VGM=value: value between 0 and 15, sent by the HS to AG to set the microphone gain.
 | 
				
			||||||
             * AT+VGM=value: value between 0 and 15, sent by the HS to AG to set the microphone gain.
 | 
					         * +VGM=value is sent by AG to HS as a response to an AT+VGM command or when the gain
 | 
				
			||||||
             * +VGM=value is sent by AG to HS as a response to an AT+VGM command or when the gain
 | 
					         * is changed on the AG side.
 | 
				
			||||||
             * is changed on the AG side.
 | 
					         * AT+CKPD=200: Sent by HS when headset button is pressed.
 | 
				
			||||||
             * AT+CKPD=200: Sent by HS when headset button is pressed.
 | 
					         * RING: Sent by AG to HS to notify of an incoming call. It can safely be ignored because
 | 
				
			||||||
             * RING: Sent by AG to HS to notify of an incoming call. It can safely be ignored because
 | 
					         * it does not expect a reply. */
 | 
				
			||||||
             * it does not expect a reply. */
 | 
					        if (sscanf(buf, "AT+VGS=%d", &gain) == 1 || sscanf(buf, "\r\n+VGM%*[=:]%d\r\n", &gain) == 1) {
 | 
				
			||||||
            if (sscanf(buf, "AT+VGS=%d", &gain) == 1 || sscanf(buf, "\r\n+VGM%*[=:]%d\r\n", &gain) == 1) {
 | 
					            if (!t->set_sink_volume) {
 | 
				
			||||||
                if (!t->set_sink_volume) {
 | 
					                pa_log_debug("HS/HF peer supports speaker gain control");
 | 
				
			||||||
                    pa_log_debug("HS/HF peer supports speaker gain control");
 | 
					                t->set_sink_volume = set_sink_volume;
 | 
				
			||||||
                    t->set_sink_volume = set_sink_volume;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                t->sink_volume = hsp_gain_to_volume(gain);
 | 
					 | 
				
			||||||
                pa_hook_fire(pa_bluetooth_discovery_hook(t->device->discovery, PA_BLUETOOTH_HOOK_TRANSPORT_SINK_VOLUME_CHANGED), t);
 | 
					 | 
				
			||||||
                do_reply = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            } else if (sscanf(buf, "AT+VGM=%d", &gain) == 1 || sscanf(buf, "\r\n+VGS%*[=:]%d\r\n", &gain) == 1) {
 | 
					 | 
				
			||||||
                if (!t->set_source_volume) {
 | 
					 | 
				
			||||||
                    pa_log_debug("HS/HF peer supports microphone gain control");
 | 
					 | 
				
			||||||
                    t->set_source_volume = set_source_volume;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                t->source_volume = hsp_gain_to_volume(gain);
 | 
					 | 
				
			||||||
                pa_hook_fire(pa_bluetooth_discovery_hook(t->device->discovery, PA_BLUETOOTH_HOOK_TRANSPORT_SOURCE_VOLUME_CHANGED), t);
 | 
					 | 
				
			||||||
                do_reply = true;
 | 
					 | 
				
			||||||
            } else if (sscanf(buf, "AT+CKPD=%d", &dummy) == 1) {
 | 
					 | 
				
			||||||
                do_reply = true;
 | 
					 | 
				
			||||||
            } else if (sscanf(buf, "AT+XAPL=%04x-%04x-%04x,%d", &vendor, &product, &version, &features) == 4) {
 | 
					 | 
				
			||||||
                if (features & 0x2)
 | 
					 | 
				
			||||||
                    /* claim, that we support battery status reports */
 | 
					 | 
				
			||||||
                    rfcomm_write_response(fd, "+XAPL=iPhone,6");
 | 
					 | 
				
			||||||
                do_reply = true;
 | 
					 | 
				
			||||||
            } else if (sscanf(buf, "AT+IPHONEACCEV=%d", &num) == 1) {
 | 
					 | 
				
			||||||
                char *substr = buf, *keystr;
 | 
					 | 
				
			||||||
                int key, val, i;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                do_reply = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                for (i = 0; i < num; ++i) {
 | 
					 | 
				
			||||||
                    keystr = strchr(substr, ',');
 | 
					 | 
				
			||||||
                    if (!keystr) {
 | 
					 | 
				
			||||||
                        pa_log_warn("%s misses key for argument #%d", buf, i);
 | 
					 | 
				
			||||||
                        do_reply = false;
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    keystr++;
 | 
					 | 
				
			||||||
                    substr = strchr(keystr, ',');
 | 
					 | 
				
			||||||
                    if (!substr) {
 | 
					 | 
				
			||||||
                        pa_log_warn("%s misses value for argument #%d", buf, i);
 | 
					 | 
				
			||||||
                        do_reply = false;
 | 
					 | 
				
			||||||
                        break;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    substr++;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    key = atoi(keystr);
 | 
					 | 
				
			||||||
                    val = atoi(substr);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    switch (key) {
 | 
					 | 
				
			||||||
                        case 1:
 | 
					 | 
				
			||||||
                            pa_log_debug("Battery Level: %d0%%", val + 1);
 | 
					 | 
				
			||||||
                            pa_bluetooth_device_report_battery_level(t->device, (val + 1) * 10, "Apple accessory indication");
 | 
					 | 
				
			||||||
                            break;
 | 
					 | 
				
			||||||
                        case 2:
 | 
					 | 
				
			||||||
                            pa_log_debug("Dock Status: %s", val ? "docked" : "undocked");
 | 
					 | 
				
			||||||
                            break;
 | 
					 | 
				
			||||||
                        default:
 | 
					 | 
				
			||||||
                            pa_log_debug("Unexpected IPHONEACCEV key %#x", key);
 | 
					 | 
				
			||||||
                            break;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                if (!do_reply)
 | 
					 | 
				
			||||||
                    rfcomm_write_response(fd, "ERROR");
 | 
					 | 
				
			||||||
            } else if (t->config) { /* t->config is only non-null for hfp profile */
 | 
					 | 
				
			||||||
                do_reply = hfp_rfcomm_handle(fd, t, buf);
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                rfcomm_write_response(fd, "ERROR");
 | 
					 | 
				
			||||||
                do_reply = false;
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (do_reply)
 | 
					            t->sink_volume = hsp_gain_to_volume(gain);
 | 
				
			||||||
                rfcomm_write_response(fd, "OK");
 | 
					            pa_hook_fire(pa_bluetooth_discovery_hook(t->device->discovery, PA_BLUETOOTH_HOOK_TRANSPORT_SINK_VOLUME_CHANGED), t);
 | 
				
			||||||
 | 
					            do_reply = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (buf[0] == '\r') /* in case it is the command with format \r\nCOMMAND\r\n, skip the starting \r */
 | 
					        } else if (sscanf(buf, "AT+VGM=%d", &gain) == 1 || sscanf(buf, "\r\n+VGS%*[=:]%d\r\n", &gain) == 1) {
 | 
				
			||||||
                buf = buf + 1;
 | 
					            if (!t->set_source_volume) {
 | 
				
			||||||
 | 
					                pa_log_debug("HS/HF peer supports microphone gain control");
 | 
				
			||||||
 | 
					                t->set_source_volume = set_source_volume;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            buf = strstr(buf, "\r"); /* try to find the next AT command in the buf */
 | 
					            t->source_volume = hsp_gain_to_volume(gain);
 | 
				
			||||||
            if (!buf)
 | 
					            pa_hook_fire(pa_bluetooth_discovery_hook(t->device->discovery, PA_BLUETOOTH_HOOK_TRANSPORT_SOURCE_VOLUME_CHANGED), t);
 | 
				
			||||||
                break;
 | 
					            do_reply = true;
 | 
				
			||||||
            else if (buf[1] == '\n')
 | 
					        } else if (sscanf(buf, "AT+CKPD=%d", &dummy) == 1) {
 | 
				
			||||||
                buf = buf + 2; /* skip \r\n */
 | 
					            do_reply = true;
 | 
				
			||||||
            else
 | 
					        } else if (sscanf(buf, "AT+XAPL=%04x-%04x-%04x,%d", &vendor, &product, &version, &features) == 4) {
 | 
				
			||||||
                buf = buf + 1; /* skip \r */
 | 
					            if (features & 0x2)
 | 
				
			||||||
 | 
					                /* claim, that we support battery status reports */
 | 
				
			||||||
 | 
					                rfcomm_write_response(fd, "+XAPL=iPhone,6");
 | 
				
			||||||
 | 
					            do_reply = true;
 | 
				
			||||||
 | 
					        } else if (sscanf(buf, "AT+IPHONEACCEV=%d", &num) == 1) {
 | 
				
			||||||
 | 
					            char *substr = buf, *keystr;
 | 
				
			||||||
 | 
					            int key, val, i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            do_reply = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            for (i = 0; i < num; ++i) {
 | 
				
			||||||
 | 
					                keystr = strchr(substr, ',');
 | 
				
			||||||
 | 
					                if (!keystr) {
 | 
				
			||||||
 | 
					                    pa_log_warn("%s misses key for argument #%d", buf, i);
 | 
				
			||||||
 | 
					                    do_reply = false;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                keystr++;
 | 
				
			||||||
 | 
					                substr = strchr(keystr, ',');
 | 
				
			||||||
 | 
					                if (!substr) {
 | 
				
			||||||
 | 
					                    pa_log_warn("%s misses value for argument #%d", buf, i);
 | 
				
			||||||
 | 
					                    do_reply = false;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                substr++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                key = atoi(keystr);
 | 
				
			||||||
 | 
					                val = atoi(substr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                switch (key) {
 | 
				
			||||||
 | 
					                    case 1:
 | 
				
			||||||
 | 
					                        pa_log_notice("Battery Level: %d0%%", val + 1);
 | 
				
			||||||
 | 
					                        pa_bluetooth_device_report_battery_level(t->device, (val + 1) * 10, "Apple accessory indication");
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case 2:
 | 
				
			||||||
 | 
					                        pa_log_notice("Dock Status: %s", val ? "docked" : "undocked");
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    default:
 | 
				
			||||||
 | 
					                        pa_log_debug("Unexpected IPHONEACCEV key %#x", key);
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (!do_reply)
 | 
				
			||||||
 | 
					                rfcomm_write_response(fd, "ERROR");
 | 
				
			||||||
 | 
					        } else if (t->config) { /* t->config is only non-null for hfp profile */
 | 
				
			||||||
 | 
					            do_reply = hfp_rfcomm_handle(fd, t, buf);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            rfcomm_write_response(fd, "ERROR");
 | 
				
			||||||
 | 
					            do_reply = false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (do_reply)
 | 
				
			||||||
 | 
					            rfcomm_write_response(fd, "OK");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fail:
 | 
					fail:
 | 
				
			||||||
    /* Service Connection lost, reset indicators and event reporting to default values */
 | 
					 | 
				
			||||||
    b->cmer_indicator_reporting_enabled = false;
 | 
					 | 
				
			||||||
    for (i = 1; i < CIND_INDICATOR_MAX; i++)
 | 
					 | 
				
			||||||
        b->cind_enabled_indicators |= (1 << i);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_bluetooth_transport_unlink(t);
 | 
					    pa_bluetooth_transport_unlink(t);
 | 
				
			||||||
    pa_bluetooth_transport_free(t);
 | 
					    pa_bluetooth_transport_free(t);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1175,7 +1022,6 @@ static DBusMessage *profile_new_connection(DBusConnection *conn, DBusMessage *m,
 | 
				
			||||||
    trd = pa_xnew0(struct transport_data, 1);
 | 
					    trd = pa_xnew0(struct transport_data, 1);
 | 
				
			||||||
    trd->rfcomm_fd = fd;
 | 
					    trd->rfcomm_fd = fd;
 | 
				
			||||||
    trd->mainloop = b->core->mainloop;
 | 
					    trd->mainloop = b->core->mainloop;
 | 
				
			||||||
    trd->backend = b;
 | 
					 | 
				
			||||||
    trd->rfcomm_io = trd->mainloop->io_new(b->core->mainloop, fd, PA_IO_EVENT_INPUT,
 | 
					    trd->rfcomm_io = trd->mainloop->io_new(b->core->mainloop, fd, PA_IO_EVENT_INPUT,
 | 
				
			||||||
        rfcomm_io_callback, t);
 | 
					        rfcomm_io_callback, t);
 | 
				
			||||||
    t->userdata =  trd;
 | 
					    t->userdata =  trd;
 | 
				
			||||||
| 
						 | 
					@ -1342,7 +1188,6 @@ void pa_bluetooth_native_backend_enable_shared_profiles(pa_bluetooth_backend *na
 | 
				
			||||||
pa_bluetooth_backend *pa_bluetooth_native_backend_new(pa_core *c, pa_bluetooth_discovery *y, bool enable_shared_profiles) {
 | 
					pa_bluetooth_backend *pa_bluetooth_native_backend_new(pa_core *c, pa_bluetooth_discovery *y, bool enable_shared_profiles) {
 | 
				
			||||||
    pa_bluetooth_backend *backend;
 | 
					    pa_bluetooth_backend *backend;
 | 
				
			||||||
    DBusError err;
 | 
					    DBusError err;
 | 
				
			||||||
    int i;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_log_debug("Bluetooth Headset Backend API support using the native backend");
 | 
					    pa_log_debug("Bluetooth Headset Backend API support using the native backend");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1366,10 +1211,6 @@ pa_bluetooth_backend *pa_bluetooth_native_backend_new(pa_core *c, pa_bluetooth_d
 | 
				
			||||||
        pa_hook_connect(pa_bluetooth_discovery_hook(y, PA_BLUETOOTH_HOOK_ADAPTER_UUIDS_CHANGED), PA_HOOK_NORMAL,
 | 
					        pa_hook_connect(pa_bluetooth_discovery_hook(y, PA_BLUETOOTH_HOOK_ADAPTER_UUIDS_CHANGED), PA_HOOK_NORMAL,
 | 
				
			||||||
                        (pa_hook_cb_t) adapter_uuids_changed_cb, backend);
 | 
					                        (pa_hook_cb_t) adapter_uuids_changed_cb, backend);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    backend->host_battery_level_changed_slot =
 | 
					 | 
				
			||||||
        pa_hook_connect(pa_bluetooth_discovery_hook(y, PA_BLUETOOTH_HOOK_HOST_BATTERY_LEVEL_CHANGED), PA_HOOK_NORMAL,
 | 
					 | 
				
			||||||
                        (pa_hook_cb_t) host_battery_level_changed_cb, backend);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!backend->enable_hsp_hs && !backend->enable_hfp_hf)
 | 
					    if (!backend->enable_hsp_hs && !backend->enable_hfp_hf)
 | 
				
			||||||
        pa_log_warn("Both HSP HS and HFP HF bluetooth profiles disabled in native backend. Native backend will not register for headset connections.");
 | 
					        pa_log_warn("Both HSP HS and HFP HF bluetooth profiles disabled in native backend. Native backend will not register for headset connections.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1379,16 +1220,6 @@ pa_bluetooth_backend *pa_bluetooth_native_backend_new(pa_core *c, pa_bluetooth_d
 | 
				
			||||||
    if (backend->enable_shared_profiles)
 | 
					    if (backend->enable_shared_profiles)
 | 
				
			||||||
        native_backend_apply_profile_registration_change(backend, true);
 | 
					        native_backend_apply_profile_registration_change(backend, true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    backend->upower = pa_upower_backend_new(c, y);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* All CIND indicators are enabled by default until overriden by AT+BIA */
 | 
					 | 
				
			||||||
    for (i = 1; i < CIND_INDICATOR_MAX; i++)
 | 
					 | 
				
			||||||
        backend->cind_enabled_indicators |= (1 << i);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* While all CIND indicators are enabled, event reporting is not enabled by default */
 | 
					 | 
				
			||||||
    backend->cmer_indicator_reporting_enabled = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return backend;
 | 
					    return backend;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1400,18 +1231,12 @@ void pa_bluetooth_native_backend_free(pa_bluetooth_backend *backend) {
 | 
				
			||||||
    if (backend->adapter_uuids_changed_slot)
 | 
					    if (backend->adapter_uuids_changed_slot)
 | 
				
			||||||
        pa_hook_slot_free(backend->adapter_uuids_changed_slot);
 | 
					        pa_hook_slot_free(backend->adapter_uuids_changed_slot);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (backend->host_battery_level_changed_slot)
 | 
					 | 
				
			||||||
        pa_hook_slot_free(backend->host_battery_level_changed_slot);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (backend->enable_shared_profiles)
 | 
					    if (backend->enable_shared_profiles)
 | 
				
			||||||
        native_backend_apply_profile_registration_change(backend, false);
 | 
					        native_backend_apply_profile_registration_change(backend, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (backend->enable_hsp_hs)
 | 
					    if (backend->enable_hsp_hs)
 | 
				
			||||||
        profile_done(backend, PA_BLUETOOTH_PROFILE_HSP_HS);
 | 
					        profile_done(backend, PA_BLUETOOTH_PROFILE_HSP_HS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (backend->upower)
 | 
					 | 
				
			||||||
        pa_upower_backend_free(backend->upower);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_dbus_connection_unref(backend->connection);
 | 
					    pa_dbus_connection_unref(backend->connection);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_xfree(backend);
 | 
					    pa_xfree(backend);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1202,13 +1202,6 @@ bool pa_bluetooth_discovery_get_enable_msbc(pa_bluetooth_discovery *y)
 | 
				
			||||||
    return y->enable_msbc;
 | 
					    return y->enable_msbc;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pa_hashmap* pa_bluetooth_discovery_get_transports(pa_bluetooth_discovery *y) {
 | 
					 | 
				
			||||||
    pa_assert(y);
 | 
					 | 
				
			||||||
    pa_assert(PA_REFCNT_VALUE(y) > 0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return y->transports;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
pa_bluetooth_device* pa_bluetooth_discovery_get_device_by_address(pa_bluetooth_discovery *y, const char *remote, const char *local) {
 | 
					pa_bluetooth_device* pa_bluetooth_discovery_get_device_by_address(pa_bluetooth_discovery *y, const char *remote, const char *local) {
 | 
				
			||||||
    pa_bluetooth_device *d;
 | 
					    pa_bluetooth_device *d;
 | 
				
			||||||
    void *state = NULL;
 | 
					    void *state = NULL;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,14 +62,12 @@ typedef struct pa_bluetooth_device pa_bluetooth_device;
 | 
				
			||||||
typedef struct pa_bluetooth_adapter pa_bluetooth_adapter;
 | 
					typedef struct pa_bluetooth_adapter pa_bluetooth_adapter;
 | 
				
			||||||
typedef struct pa_bluetooth_discovery pa_bluetooth_discovery;
 | 
					typedef struct pa_bluetooth_discovery pa_bluetooth_discovery;
 | 
				
			||||||
typedef struct pa_bluetooth_backend pa_bluetooth_backend;
 | 
					typedef struct pa_bluetooth_backend pa_bluetooth_backend;
 | 
				
			||||||
typedef struct pa_upower_backend pa_upower_backend;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef enum pa_bluetooth_hook {
 | 
					typedef enum pa_bluetooth_hook {
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_ADAPTER_UUIDS_CHANGED,            /* Call data: pa_bluetooth_adapter */
 | 
					    PA_BLUETOOTH_HOOK_ADAPTER_UUIDS_CHANGED,            /* Call data: pa_bluetooth_adapter */
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED,        /* Call data: pa_bluetooth_device */
 | 
					    PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED,        /* Call data: pa_bluetooth_device */
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_DEVICE_UNLINK,                    /* Call data: pa_bluetooth_device */
 | 
					    PA_BLUETOOTH_HOOK_DEVICE_UNLINK,                    /* Call data: pa_bluetooth_device */
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_DEVICE_BATTERY_LEVEL_CHANGED,     /* Call data: pa_bluetooth_device */
 | 
					    PA_BLUETOOTH_HOOK_DEVICE_BATTERY_LEVEL_CHANGED,     /* Call data: pa_bluetooth_device */
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_HOST_BATTERY_LEVEL_CHANGED,       /* Call data: pa_upower_backend */
 | 
					 | 
				
			||||||
    PA_BLUETOOTH_HOOK_TRANSPORT_STATE_CHANGED,          /* Call data: pa_bluetooth_transport */
 | 
					    PA_BLUETOOTH_HOOK_TRANSPORT_STATE_CHANGED,          /* Call data: pa_bluetooth_transport */
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_TRANSPORT_SOURCE_VOLUME_CHANGED,  /* Call data: pa_bluetooth_transport */
 | 
					    PA_BLUETOOTH_HOOK_TRANSPORT_SOURCE_VOLUME_CHANGED,  /* Call data: pa_bluetooth_transport */
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_TRANSPORT_SINK_VOLUME_CHANGED,    /* Call data: pa_bluetooth_transport */
 | 
					    PA_BLUETOOTH_HOOK_TRANSPORT_SINK_VOLUME_CHANGED,    /* Call data: pa_bluetooth_transport */
 | 
				
			||||||
| 
						 | 
					@ -247,5 +245,4 @@ void pa_bluetooth_discovery_set_ofono_running(pa_bluetooth_discovery *y, bool is
 | 
				
			||||||
bool pa_bluetooth_discovery_get_enable_native_hsp_hs(pa_bluetooth_discovery *y);
 | 
					bool pa_bluetooth_discovery_get_enable_native_hsp_hs(pa_bluetooth_discovery *y);
 | 
				
			||||||
bool pa_bluetooth_discovery_get_enable_native_hfp_hf(pa_bluetooth_discovery *y);
 | 
					bool pa_bluetooth_discovery_get_enable_native_hfp_hf(pa_bluetooth_discovery *y);
 | 
				
			||||||
bool pa_bluetooth_discovery_get_enable_msbc(pa_bluetooth_discovery *y);
 | 
					bool pa_bluetooth_discovery_get_enable_msbc(pa_bluetooth_discovery *y);
 | 
				
			||||||
pa_hashmap* pa_bluetooth_discovery_get_transports(pa_bluetooth_discovery *y);
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,9 +26,6 @@ typedef struct pa_bt_codec {
 | 
				
			||||||
    /* Human readable codec description */
 | 
					    /* Human readable codec description */
 | 
				
			||||||
    const char *description;
 | 
					    const char *description;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* True if codec is bi-directional and supports backchannel */
 | 
					 | 
				
			||||||
    bool support_backchannel;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Initialize codec, returns codec info data and set sample_spec,
 | 
					    /* Initialize codec, returns codec info data and set sample_spec,
 | 
				
			||||||
     * for_encoding is true when codec_info is used for encoding,
 | 
					     * for_encoding is true when codec_info is used for encoding,
 | 
				
			||||||
     * for_backchannel is true when codec_info is used for backchannel */
 | 
					     * for_backchannel is true when codec_info is used for backchannel */
 | 
				
			||||||
| 
						 | 
					@ -67,7 +64,4 @@ typedef struct pa_bt_codec {
 | 
				
			||||||
     * returns size of filled ouput_buffer and set processed to size of
 | 
					     * returns size of filled ouput_buffer and set processed to size of
 | 
				
			||||||
     * processed input_buffer */
 | 
					     * processed input_buffer */
 | 
				
			||||||
    size_t (*decode_buffer)(void *codec_info, const uint8_t *input_buffer, size_t input_size, uint8_t *output_buffer, size_t output_size, size_t *processed);
 | 
					    size_t (*decode_buffer)(void *codec_info, const uint8_t *input_buffer, size_t input_size, uint8_t *output_buffer, size_t output_size, size_t *processed);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Get volume factor which needs to be applied to output samples */
 | 
					 | 
				
			||||||
    double (*get_source_output_volume_factor_dB)(void *codec_info);
 | 
					 | 
				
			||||||
} pa_bt_codec;
 | 
					} pa_bt_codec;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,8 +16,6 @@ libbluez5_util_headers = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if get_option('bluez5-native-headset')
 | 
					if get_option('bluez5-native-headset')
 | 
				
			||||||
  libbluez5_util_sources += [ 'backend-native.c' ]
 | 
					  libbluez5_util_sources += [ 'backend-native.c' ]
 | 
				
			||||||
  libbluez5_util_sources += [ 'upower.c' ]
 | 
					 | 
				
			||||||
  libbluez5_util_headers += [ 'upower.h' ]
 | 
					 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if get_option('bluez5-ofono-headset')
 | 
					if get_option('bluez5-ofono-headset')
 | 
				
			||||||
| 
						 | 
					@ -37,7 +35,7 @@ libbluez5_util = shared_library('bluez5-util',
 | 
				
			||||||
  c_args : [pa_c_args, server_c_args],
 | 
					  c_args : [pa_c_args, server_c_args],
 | 
				
			||||||
  link_args : [nodelete_link_args],
 | 
					  link_args : [nodelete_link_args],
 | 
				
			||||||
  include_directories : [configinc, topinc],
 | 
					  include_directories : [configinc, topinc],
 | 
				
			||||||
  dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, bluez_dep, dbus_dep, sbc_dep, libintl_dep, bluez5_gst_dep, bluez5_gstapp_dep, libm_dep],
 | 
					  dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, bluez_dep, dbus_dep, sbc_dep, libintl_dep, bluez5_gst_dep, bluez5_gstapp_dep],
 | 
				
			||||||
  install : true,
 | 
					  install : true,
 | 
				
			||||||
  install_rpath : privlibdir,
 | 
					  install_rpath : privlibdir,
 | 
				
			||||||
  install_dir : modlibexecdir,
 | 
					  install_dir : modlibexecdir,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,8 +116,6 @@ struct userdata {
 | 
				
			||||||
    pa_hook_slot *sink_volume_changed_slot;
 | 
					    pa_hook_slot *sink_volume_changed_slot;
 | 
				
			||||||
    pa_hook_slot *source_volume_changed_slot;
 | 
					    pa_hook_slot *source_volume_changed_slot;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_hook_slot *source_output_new_hook_slot;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_bluetooth_discovery *discovery;
 | 
					    pa_bluetooth_discovery *discovery;
 | 
				
			||||||
    pa_bluetooth_device *device;
 | 
					    pa_bluetooth_device *device;
 | 
				
			||||||
    pa_bluetooth_transport *transport;
 | 
					    pa_bluetooth_transport *transport;
 | 
				
			||||||
| 
						 | 
					@ -394,8 +392,6 @@ static int bt_process_render(struct userdata *u) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (processed != u->write_memchunk.length) {
 | 
					    if (processed != u->write_memchunk.length) {
 | 
				
			||||||
        pa_log_error("Encoding error");
 | 
					        pa_log_error("Encoding error");
 | 
				
			||||||
        pa_memblock_unref(u->write_memchunk.memblock);
 | 
					 | 
				
			||||||
        pa_memchunk_reset(&u->write_memchunk);
 | 
					 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -539,7 +535,6 @@ static int bt_process_push(struct userdata *u) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (processed != (size_t) received) {
 | 
					    if (processed != (size_t) received) {
 | 
				
			||||||
        pa_log_error("Decoding error");
 | 
					        pa_log_error("Decoding error");
 | 
				
			||||||
        pa_memblock_unref(memchunk.memblock);
 | 
					 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -966,12 +961,6 @@ static void source_setup_volume_callback(pa_source *s) {
 | 
				
			||||||
    if (pa_bluetooth_profile_is_a2dp(u->profile) && !u->transport->device->avrcp_absolute_volume)
 | 
					    if (pa_bluetooth_profile_is_a2dp(u->profile) && !u->transport->device->avrcp_absolute_volume)
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Do not use hardware volume controls for backchannel of A2DP sink */
 | 
					 | 
				
			||||||
    if (u->profile == PA_BLUETOOTH_PROFILE_A2DP_SINK) {
 | 
					 | 
				
			||||||
        pa_assert_fp(u->transport->bt_codec && u->transport->bt_codec->support_backchannel);
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Remote volume control has to be supported for the callback to make sense,
 | 
					    /* Remote volume control has to be supported for the callback to make sense,
 | 
				
			||||||
     * otherwise this source should continue performing attenuation in software
 | 
					     * otherwise this source should continue performing attenuation in software
 | 
				
			||||||
     * without HW_VOLUME_CTL.
 | 
					     * without HW_VOLUME_CTL.
 | 
				
			||||||
| 
						 | 
					@ -1040,12 +1029,6 @@ static int add_source(struct userdata *u) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!u->transport_acquired)
 | 
					    if (!u->transport_acquired)
 | 
				
			||||||
        switch (u->profile) {
 | 
					        switch (u->profile) {
 | 
				
			||||||
            case PA_BLUETOOTH_PROFILE_A2DP_SINK:
 | 
					 | 
				
			||||||
                if (u->bt_codec && u->bt_codec->support_backchannel)
 | 
					 | 
				
			||||||
                    data.suspend_cause = PA_SUSPEND_USER;
 | 
					 | 
				
			||||||
                else
 | 
					 | 
				
			||||||
                    pa_assert_not_reached();
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            case PA_BLUETOOTH_PROFILE_A2DP_SOURCE:
 | 
					            case PA_BLUETOOTH_PROFILE_A2DP_SOURCE:
 | 
				
			||||||
            case PA_BLUETOOTH_PROFILE_HFP_AG:
 | 
					            case PA_BLUETOOTH_PROFILE_HFP_AG:
 | 
				
			||||||
            case PA_BLUETOOTH_PROFILE_HSP_AG:
 | 
					            case PA_BLUETOOTH_PROFILE_HSP_AG:
 | 
				
			||||||
| 
						 | 
					@ -1060,6 +1043,7 @@ static int add_source(struct userdata *u) {
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                    pa_assert_not_reached();
 | 
					                    pa_assert_not_reached();
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					            case PA_BLUETOOTH_PROFILE_A2DP_SINK:
 | 
				
			||||||
            case PA_BLUETOOTH_PROFILE_OFF:
 | 
					            case PA_BLUETOOTH_PROFILE_OFF:
 | 
				
			||||||
                pa_assert_not_reached();
 | 
					                pa_assert_not_reached();
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
| 
						 | 
					@ -1214,12 +1198,6 @@ static void sink_setup_volume_callback(pa_sink *s) {
 | 
				
			||||||
    if (pa_bluetooth_profile_is_a2dp(u->profile) && !u->transport->device->avrcp_absolute_volume)
 | 
					    if (pa_bluetooth_profile_is_a2dp(u->profile) && !u->transport->device->avrcp_absolute_volume)
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Do not use hardware volume controls for backchannel of A2DP source */
 | 
					 | 
				
			||||||
    if (u->profile == PA_BLUETOOTH_PROFILE_A2DP_SOURCE) {
 | 
					 | 
				
			||||||
        pa_assert_fp(u->transport->bt_codec && u->transport->bt_codec->support_backchannel);
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Remote volume control has to be supported for the callback to make sense,
 | 
					    /* Remote volume control has to be supported for the callback to make sense,
 | 
				
			||||||
     * otherwise this sink should continue performing attenuation in software
 | 
					     * otherwise this sink should continue performing attenuation in software
 | 
				
			||||||
     * without HW_VOLUME_CTL.
 | 
					     * without HW_VOLUME_CTL.
 | 
				
			||||||
| 
						 | 
					@ -1344,7 +1322,6 @@ static pa_direction_t get_profile_direction(pa_bluetooth_profile_t p) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Run from main thread */
 | 
					/* Run from main thread */
 | 
				
			||||||
static int transport_config(struct userdata *u) {
 | 
					static int transport_config(struct userdata *u) {
 | 
				
			||||||
    bool reverse_backchannel;
 | 
					 | 
				
			||||||
    pa_assert(u);
 | 
					    pa_assert(u);
 | 
				
			||||||
    pa_assert(u->transport);
 | 
					    pa_assert(u->transport);
 | 
				
			||||||
    pa_assert(!u->bt_codec);
 | 
					    pa_assert(!u->bt_codec);
 | 
				
			||||||
| 
						 | 
					@ -1357,18 +1334,15 @@ static int transport_config(struct userdata *u) {
 | 
				
			||||||
    /* reset encoder buffer contents */
 | 
					    /* reset encoder buffer contents */
 | 
				
			||||||
    u->encoder_buffer_used = 0;
 | 
					    u->encoder_buffer_used = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* forward encoding direction */
 | 
					    if (get_profile_direction(u->profile) & PA_DIRECTION_OUTPUT) {
 | 
				
			||||||
    reverse_backchannel = u->bt_codec->support_backchannel && !(get_profile_direction(u->profile) & PA_DIRECTION_OUTPUT);
 | 
					        u->encoder_info = u->bt_codec->init(true, false, u->transport->config, u->transport->config_size, &u->encoder_sample_spec, u->core);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    if ((get_profile_direction(u->profile) & PA_DIRECTION_OUTPUT) || u->bt_codec->support_backchannel) {
 | 
					 | 
				
			||||||
        u->encoder_info = u->bt_codec->init(true, reverse_backchannel, u->transport->config, u->transport->config_size, &u->encoder_sample_spec, u->core);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!u->encoder_info)
 | 
					        if (!u->encoder_info)
 | 
				
			||||||
            return -1;
 | 
					            return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((get_profile_direction(u->profile) & PA_DIRECTION_INPUT) || u->bt_codec->support_backchannel) {
 | 
					    if (get_profile_direction(u->profile) & PA_DIRECTION_INPUT) {
 | 
				
			||||||
        u->decoder_info = u->bt_codec->init(false, reverse_backchannel, u->transport->config, u->transport->config_size, &u->decoder_sample_spec, u->core);
 | 
					        u->decoder_info = u->bt_codec->init(false, false, u->transport->config, u->transport->config_size, &u->decoder_sample_spec, u->core);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!u->decoder_info) {
 | 
					        if (!u->decoder_info) {
 | 
				
			||||||
            if (u->encoder_info) {
 | 
					            if (u->encoder_info) {
 | 
				
			||||||
| 
						 | 
					@ -1426,11 +1400,11 @@ static int init_profile(struct userdata *u) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_assert(u->transport);
 | 
					    pa_assert(u->transport);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((get_profile_direction(u->profile) & PA_DIRECTION_OUTPUT) || u->bt_codec->support_backchannel)
 | 
					    if (get_profile_direction (u->profile) & PA_DIRECTION_OUTPUT)
 | 
				
			||||||
        if (add_sink(u) < 0)
 | 
					        if (add_sink(u) < 0)
 | 
				
			||||||
            r = -1;
 | 
					            r = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((get_profile_direction(u->profile) & PA_DIRECTION_INPUT) || u->bt_codec->support_backchannel)
 | 
					    if (get_profile_direction (u->profile) & PA_DIRECTION_INPUT)
 | 
				
			||||||
        if (add_source(u) < 0)
 | 
					        if (add_source(u) < 0)
 | 
				
			||||||
            r = -1;
 | 
					            r = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1549,8 +1523,8 @@ static void thread_func(void *userdata) {
 | 
				
			||||||
                    writable = true;
 | 
					                    writable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                /* If we have a source, we let the source determine the timing
 | 
					                /* If we have a source, we let the source determine the timing
 | 
				
			||||||
                 * for the sink unless peer has not sent any data yet */
 | 
					                 * for the sink */
 | 
				
			||||||
                if (have_source && u->read_index > 0) {
 | 
					                if (have_source) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    /* If the stream is writable, send some data if necessary */
 | 
					                    /* If the stream is writable, send some data if necessary */
 | 
				
			||||||
                    if (writable) {
 | 
					                    if (writable) {
 | 
				
			||||||
| 
						 | 
					@ -1631,15 +1605,13 @@ static void thread_func(void *userdata) {
 | 
				
			||||||
                                skip_bytes -= bytes_to_render;
 | 
					                                skip_bytes -= bytes_to_render;
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            if (u->write_index > 0 && (get_profile_direction(u->profile) & PA_DIRECTION_OUTPUT || u->bt_codec->support_backchannel)) {
 | 
					                            if (u->write_index > 0 && (get_profile_direction(u->profile) & PA_DIRECTION_OUTPUT)) {
 | 
				
			||||||
                                if (u->bt_codec->reduce_encoder_bitrate) {
 | 
					                                size_t new_write_block_size = u->bt_codec->reduce_encoder_bitrate(u->encoder_info, u->write_link_mtu);
 | 
				
			||||||
                                    size_t new_write_block_size = u->bt_codec->reduce_encoder_bitrate(u->encoder_info, u->write_link_mtu);
 | 
					                                if (new_write_block_size) {
 | 
				
			||||||
                                    if (new_write_block_size) {
 | 
					                                    u->write_block_size = new_write_block_size;
 | 
				
			||||||
                                        u->write_block_size = new_write_block_size;
 | 
					                                    handle_sink_block_size_change(u);
 | 
				
			||||||
                                        handle_sink_block_size_change(u);
 | 
					 | 
				
			||||||
                                    }
 | 
					 | 
				
			||||||
                                    pa_gettimeofday(&tv_last_output_rate_change);
 | 
					 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
 | 
					                                pa_gettimeofday(&tv_last_output_rate_change);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1663,12 +1635,6 @@ static void thread_func(void *userdata) {
 | 
				
			||||||
                            goto fail;
 | 
					                            goto fail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (result) {
 | 
					                        if (result) {
 | 
				
			||||||
                            if (have_source && u->read_index <= 0) {
 | 
					 | 
				
			||||||
                                /* We have a source but peer has not sent any data yet, log this */
 | 
					 | 
				
			||||||
                                if (pa_log_ratelimit(PA_LOG_DEBUG))
 | 
					 | 
				
			||||||
                                    pa_log_debug("Still no data received from source, sent one more block to sink");
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            writable = false;
 | 
					                            writable = false;
 | 
				
			||||||
                            have_written = true;
 | 
					                            have_written = true;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
| 
						 | 
					@ -1688,7 +1654,7 @@ static void thread_func(void *userdata) {
 | 
				
			||||||
                            sleep_for = time_passed < next_write_at ? next_write_at - time_passed : 0;
 | 
					                            sleep_for = time_passed < next_write_at ? next_write_at - time_passed : 0;
 | 
				
			||||||
                            /* pa_log("Sleeping for %lu; time passed %lu, next write at %lu", (unsigned long) sleep_for, (unsigned long) time_passed, (unsigned long)next_write_at); */
 | 
					                            /* pa_log("Sleeping for %lu; time passed %lu, next write at %lu", (unsigned long) sleep_for, (unsigned long) time_passed, (unsigned long)next_write_at); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            if ((get_profile_direction(u->profile) & PA_DIRECTION_OUTPUT || u->bt_codec->support_backchannel) && u->write_memchunk.memblock == NULL) {
 | 
					                            if ((get_profile_direction(u->profile) & PA_DIRECTION_OUTPUT) && u->write_memchunk.memblock == NULL) {
 | 
				
			||||||
                                /* bt_write_buffer() is keeping up with input, try increasing bitrate */
 | 
					                                /* bt_write_buffer() is keeping up with input, try increasing bitrate */
 | 
				
			||||||
                                if (u->bt_codec->increase_encoder_bitrate
 | 
					                                if (u->bt_codec->increase_encoder_bitrate
 | 
				
			||||||
                                    && pa_timeval_age(&tv_last_output_rate_change) >= u->device->output_rate_refresh_interval_ms * PA_USEC_PER_MSEC) {
 | 
					                                    && pa_timeval_age(&tv_last_output_rate_change) >= u->device->output_rate_refresh_interval_ms * PA_USEC_PER_MSEC) {
 | 
				
			||||||
| 
						 | 
					@ -1920,10 +1886,10 @@ static pa_available_t get_port_availability(struct userdata *u, pa_direction_t d
 | 
				
			||||||
    for (i = 0; i < PA_BLUETOOTH_PROFILE_COUNT; i++) {
 | 
					    for (i = 0; i < PA_BLUETOOTH_PROFILE_COUNT; i++) {
 | 
				
			||||||
        pa_bluetooth_transport *transport;
 | 
					        pa_bluetooth_transport *transport;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!(transport = u->device->transports[i]))
 | 
					        if (!(get_profile_direction(i) & direction))
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!(get_profile_direction(i) & direction || (transport->bt_codec && transport->bt_codec->support_backchannel)))
 | 
					        if (!(transport = u->device->transports[i]))
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        switch(transport->state) {
 | 
					        switch(transport->state) {
 | 
				
			||||||
| 
						 | 
					@ -2763,30 +2729,6 @@ static int device_process_msg(pa_msgobject *obj, int code, void *data, int64_t o
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Run from main thread */
 | 
					 | 
				
			||||||
static pa_hook_result_t a2dp_source_output_fixate_hook_callback(pa_core *c, pa_source_output_new_data *new_data, struct userdata *u) {
 | 
					 | 
				
			||||||
    double volume_factor_dB;
 | 
					 | 
				
			||||||
    pa_cvolume cv;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert(c);
 | 
					 | 
				
			||||||
    pa_assert(new_data);
 | 
					 | 
				
			||||||
    pa_assert(u);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* When transport is released, there is no decoder and no codec */
 | 
					 | 
				
			||||||
    if (!u->bt_codec || !u->decoder_info)
 | 
					 | 
				
			||||||
        return PA_HOOK_OK;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!u->bt_codec->get_source_output_volume_factor_dB)
 | 
					 | 
				
			||||||
        return PA_HOOK_OK;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    volume_factor_dB = u->bt_codec->get_source_output_volume_factor_dB(u->decoder_info);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_cvolume_set(&cv, u->decoder_sample_spec.channels, pa_sw_volume_from_dB(volume_factor_dB));
 | 
					 | 
				
			||||||
    pa_source_output_new_data_apply_volume_factor_source(new_data, &cv);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return PA_HOOK_OK;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int pa__init(pa_module* m) {
 | 
					int pa__init(pa_module* m) {
 | 
				
			||||||
    struct userdata *u;
 | 
					    struct userdata *u;
 | 
				
			||||||
    const char *path;
 | 
					    const char *path;
 | 
				
			||||||
| 
						 | 
					@ -2868,8 +2810,6 @@ int pa__init(pa_module* m) {
 | 
				
			||||||
    u->transport_source_volume_changed_slot =
 | 
					    u->transport_source_volume_changed_slot =
 | 
				
			||||||
        pa_hook_connect(pa_bluetooth_discovery_hook(u->discovery, PA_BLUETOOTH_HOOK_TRANSPORT_SOURCE_VOLUME_CHANGED), PA_HOOK_NORMAL, (pa_hook_cb_t) transport_source_volume_changed_cb, u);
 | 
					        pa_hook_connect(pa_bluetooth_discovery_hook(u->discovery, PA_BLUETOOTH_HOOK_TRANSPORT_SOURCE_VOLUME_CHANGED), PA_HOOK_NORMAL, (pa_hook_cb_t) transport_source_volume_changed_cb, u);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    u->source_output_new_hook_slot = pa_hook_connect(&m->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) a2dp_source_output_fixate_hook_callback, u);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (add_card(u) < 0)
 | 
					    if (add_card(u) < 0)
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2933,9 +2873,6 @@ void pa__done(pa_module *m) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    stop_thread(u);
 | 
					    stop_thread(u);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (u->source_output_new_hook_slot)
 | 
					 | 
				
			||||||
        pa_hook_slot_free(u->source_output_new_hook_slot);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (u->device_connection_changed_slot)
 | 
					    if (u->device_connection_changed_slot)
 | 
				
			||||||
        pa_hook_slot_free(u->device_connection_changed_slot);
 | 
					        pa_hook_slot_free(u->device_connection_changed_slot);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,300 +0,0 @@
 | 
				
			||||||
/***
 | 
					 | 
				
			||||||
  This file is part of PulseAudio.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Copyright 2022 Dylan Van Assche <me@dylanvanassche.be>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  PulseAudio is free software; you can redistribute it and/or modify
 | 
					 | 
				
			||||||
  it under the terms of the GNU Lesser General Public License as
 | 
					 | 
				
			||||||
  published by the Free Software Foundation; either version 2.1 of the
 | 
					 | 
				
			||||||
  License, or (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  PulseAudio is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
  WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | 
					 | 
				
			||||||
  General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 | 
				
			||||||
  License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
***/
 | 
					 | 
				
			||||||
#ifdef HAVE_CONFIG_H
 | 
					 | 
				
			||||||
#include <config.h>
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <math.h>
 | 
					 | 
				
			||||||
#include <pulsecore/core-error.h>
 | 
					 | 
				
			||||||
#include <pulsecore/core-util.h>
 | 
					 | 
				
			||||||
#include <pulsecore/dbus-shared.h>
 | 
					 | 
				
			||||||
#include <pulsecore/log.h>
 | 
					 | 
				
			||||||
#include <pulse/timeval.h>
 | 
					 | 
				
			||||||
#include <pulse/rtclock.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "upower.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static pa_dbus_pending* send_and_add_to_pending(pa_upower_backend *backend, DBusMessage *m,
 | 
					 | 
				
			||||||
        DBusPendingCallNotifyFunction func, void *call_data) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_dbus_pending *p;
 | 
					 | 
				
			||||||
    DBusPendingCall *call;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert(backend);
 | 
					 | 
				
			||||||
    pa_assert(m);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert_se(dbus_connection_send_with_reply(pa_dbus_connection_get(backend->connection), m, &call, -1));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    p = pa_dbus_pending_new(pa_dbus_connection_get(backend->connection), m, call, backend, call_data);
 | 
					 | 
				
			||||||
    PA_LLIST_PREPEND(pa_dbus_pending, backend->pending, p);
 | 
					 | 
				
			||||||
    dbus_pending_call_set_notify(call, func, p, NULL);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return p;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void parse_percentage(pa_upower_backend *b, DBusMessageIter *i) {
 | 
					 | 
				
			||||||
    double percentage;
 | 
					 | 
				
			||||||
    unsigned int battery_level;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert(i);
 | 
					 | 
				
			||||||
    pa_assert(dbus_message_iter_get_arg_type(i) == DBUS_TYPE_DOUBLE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    dbus_message_iter_get_basic(i, &percentage);
 | 
					 | 
				
			||||||
    battery_level = (unsigned int) round(percentage / 20.0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (battery_level != b->battery_level) {
 | 
					 | 
				
			||||||
        b->battery_level = battery_level;
 | 
					 | 
				
			||||||
        pa_log_debug("AG battery level updated (%d/5)", b->battery_level);
 | 
					 | 
				
			||||||
        pa_hook_fire(pa_bluetooth_discovery_hook(b->discovery, PA_BLUETOOTH_HOOK_HOST_BATTERY_LEVEL_CHANGED), b);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void get_percentage_reply(DBusPendingCall *pending, void *userdata) {
 | 
					 | 
				
			||||||
    pa_dbus_pending *p;
 | 
					 | 
				
			||||||
    pa_upower_backend *b;
 | 
					 | 
				
			||||||
    DBusMessage *r;
 | 
					 | 
				
			||||||
    DBusMessageIter arg_i, variant_i;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert(pending);
 | 
					 | 
				
			||||||
    pa_assert_se(p = userdata);
 | 
					 | 
				
			||||||
    pa_assert_se(b = p->context_data);
 | 
					 | 
				
			||||||
    pa_assert_se(r = dbus_pending_call_steal_reply(pending));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (dbus_message_is_error(r, DBUS_ERROR_UNKNOWN_METHOD)) {
 | 
					 | 
				
			||||||
        pa_log_warn("UPower D-Bus Display Device not available");
 | 
					 | 
				
			||||||
        goto finish;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) {
 | 
					 | 
				
			||||||
        pa_log_error("Get() failed: %s: %s", dbus_message_get_error_name(r), pa_dbus_get_error_message(r));
 | 
					 | 
				
			||||||
        goto finish;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!dbus_message_iter_init(r, &arg_i) || !pa_streq(dbus_message_get_signature(r), "v")) {
 | 
					 | 
				
			||||||
        pa_log_error("Invalid reply signature for Get()");
 | 
					 | 
				
			||||||
        goto finish;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    dbus_message_iter_recurse(&arg_i, &variant_i);
 | 
					 | 
				
			||||||
    parse_percentage(b, &variant_i);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
finish:
 | 
					 | 
				
			||||||
    dbus_message_unref(r);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PA_LLIST_REMOVE(pa_dbus_pending, b->pending, p);
 | 
					 | 
				
			||||||
    pa_dbus_pending_free(p);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static const char *check_variant_property(DBusMessageIter *i) {
 | 
					 | 
				
			||||||
    const char *key;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert(i);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (dbus_message_iter_get_arg_type(i) != DBUS_TYPE_STRING) {
 | 
					 | 
				
			||||||
        pa_log_error("Property name not a string.");
 | 
					 | 
				
			||||||
        return NULL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    dbus_message_iter_get_basic(i, &key);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!dbus_message_iter_next(i)) {
 | 
					 | 
				
			||||||
        pa_log_error("Property value missing");
 | 
					 | 
				
			||||||
        return NULL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (dbus_message_iter_get_arg_type(i) != DBUS_TYPE_VARIANT) {
 | 
					 | 
				
			||||||
        pa_log_error("Property value not a variant.");
 | 
					 | 
				
			||||||
        return NULL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return key;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static DBusHandlerResult filter_cb(DBusConnection *bus, DBusMessage *m, void *data) {
 | 
					 | 
				
			||||||
    DBusError err;
 | 
					 | 
				
			||||||
    DBusMessage *m2;
 | 
					 | 
				
			||||||
    static const char* upower_device_interface = UPOWER_SERVICE UPOWER_DEVICE_INTERFACE;
 | 
					 | 
				
			||||||
    static const char* percentage_property = "Percentage";
 | 
					 | 
				
			||||||
    pa_upower_backend *b = data;
 | 
					 | 
				
			||||||
    const char *path, *interface, *member;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_assert(bus);
 | 
					 | 
				
			||||||
    pa_assert(m);
 | 
					 | 
				
			||||||
    pa_assert(b);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    dbus_error_init(&err);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    path = dbus_message_get_path(m);
 | 
					 | 
				
			||||||
    interface = dbus_message_get_interface(m);
 | 
					 | 
				
			||||||
    member = dbus_message_get_member(m);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_log_debug("dbus: path=%s, interface=%s, member=%s", path, interface, member);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* UPower D-Bus status change */
 | 
					 | 
				
			||||||
    if (dbus_message_is_signal(m, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) {
 | 
					 | 
				
			||||||
        const char *name, *old_owner, *new_owner;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!dbus_message_get_args(m, &err,
 | 
					 | 
				
			||||||
                                   DBUS_TYPE_STRING, &name,
 | 
					 | 
				
			||||||
                                   DBUS_TYPE_STRING, &old_owner,
 | 
					 | 
				
			||||||
                                   DBUS_TYPE_STRING, &new_owner,
 | 
					 | 
				
			||||||
                                   DBUS_TYPE_INVALID)) {
 | 
					 | 
				
			||||||
            pa_log_error("Failed to parse " DBUS_INTERFACE_DBUS ".NameOwnerChanged: %s", err.message);
 | 
					 | 
				
			||||||
            goto fail;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (pa_streq(name, UPOWER_SERVICE)) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            /* UPower disappeared from D-Bus */
 | 
					 | 
				
			||||||
            if (old_owner && *old_owner) {
 | 
					 | 
				
			||||||
                pa_log_debug("UPower disappeared from D-Bus");
 | 
					 | 
				
			||||||
                b->battery_level = 0;
 | 
					 | 
				
			||||||
                pa_hook_fire(pa_bluetooth_discovery_hook(b->discovery, PA_BLUETOOTH_HOOK_HOST_BATTERY_LEVEL_CHANGED), b);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            /* UPower appeared on D-Bus */
 | 
					 | 
				
			||||||
            if (new_owner && *new_owner) {
 | 
					 | 
				
			||||||
                pa_log_debug("UPower appeared on D-Bus");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                /* Update battery level */
 | 
					 | 
				
			||||||
                pa_assert_se(m2 = dbus_message_new_method_call(UPOWER_SERVICE, UPOWER_DISPLAY_DEVICE_OBJECT, DBUS_INTERFACE_PROPERTIES, "Get"));
 | 
					 | 
				
			||||||
                pa_assert_se(dbus_message_append_args(m2,
 | 
					 | 
				
			||||||
                    DBUS_TYPE_STRING, &upower_device_interface,
 | 
					 | 
				
			||||||
                    DBUS_TYPE_STRING, &percentage_property,
 | 
					 | 
				
			||||||
                    DBUS_TYPE_INVALID));
 | 
					 | 
				
			||||||
                send_and_add_to_pending(b, m2, get_percentage_reply, NULL);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 | 
					 | 
				
			||||||
    /* UPower battery level property updates */
 | 
					 | 
				
			||||||
    } else if (dbus_message_is_signal(m, DBUS_INTERFACE_PROPERTIES, "PropertiesChanged")) {
 | 
					 | 
				
			||||||
        DBusMessageIter arg_i, element_i;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!dbus_message_iter_init(m, &arg_i) || !pa_streq(dbus_message_get_signature(m), "sa{sv}as")) {
 | 
					 | 
				
			||||||
            pa_log_error("Invalid signature found in PropertiesChanged");
 | 
					 | 
				
			||||||
            goto fail;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Skip interface name */
 | 
					 | 
				
			||||||
        pa_assert_se(dbus_message_iter_next(&arg_i));
 | 
					 | 
				
			||||||
        pa_assert(dbus_message_iter_get_arg_type(&arg_i) == DBUS_TYPE_ARRAY);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        dbus_message_iter_recurse(&arg_i, &element_i);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Parse UPower property updates */
 | 
					 | 
				
			||||||
        while (dbus_message_iter_get_arg_type(&element_i) == DBUS_TYPE_DICT_ENTRY) {
 | 
					 | 
				
			||||||
            DBusMessageIter dict_i, variant_i;
 | 
					 | 
				
			||||||
            const char *key;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            dbus_message_iter_recurse(&element_i, &dict_i);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            /* Retrieve property name */
 | 
					 | 
				
			||||||
            key = check_variant_property(&dict_i);
 | 
					 | 
				
			||||||
            if (key == NULL) {
 | 
					 | 
				
			||||||
                pa_log_error("Received invalid property!");
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            dbus_message_iter_recurse(&dict_i, &variant_i);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if(pa_streq(path, UPOWER_DISPLAY_DEVICE_OBJECT)) {
 | 
					 | 
				
			||||||
                pa_log_debug("UPower Device property updated: %s", key);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                if(pa_streq(key, "Percentage"))
 | 
					 | 
				
			||||||
                    parse_percentage(b, &variant_i);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            dbus_message_iter_next(&element_i);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fail:
 | 
					 | 
				
			||||||
    dbus_error_free(&err);
 | 
					 | 
				
			||||||
    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
unsigned int pa_upower_get_battery_level(pa_upower_backend *backend) {
 | 
					 | 
				
			||||||
    return backend->battery_level;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
pa_upower_backend *pa_upower_backend_new(pa_core *c, pa_bluetooth_discovery *d) {
 | 
					 | 
				
			||||||
    pa_upower_backend *backend;
 | 
					 | 
				
			||||||
    DBusError err;
 | 
					 | 
				
			||||||
    DBusMessage *m;
 | 
					 | 
				
			||||||
    static const char* upower_device_interface = UPOWER_SERVICE UPOWER_DEVICE_INTERFACE;
 | 
					 | 
				
			||||||
    static const char* percentage_property = "Percentage";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_log_debug("Native backend enabled UPower battery status reporting");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    backend = pa_xnew0(pa_upower_backend, 1);
 | 
					 | 
				
			||||||
    backend->core = c;
 | 
					 | 
				
			||||||
    backend->discovery = d;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Get DBus connection */
 | 
					 | 
				
			||||||
    dbus_error_init(&err);
 | 
					 | 
				
			||||||
    if (!(backend->connection = pa_dbus_bus_get(c, DBUS_BUS_SYSTEM, &err))) {
 | 
					 | 
				
			||||||
        pa_log("Failed to get D-Bus connection: %s", err.message);
 | 
					 | 
				
			||||||
        dbus_error_free(&err);
 | 
					 | 
				
			||||||
        pa_xfree(backend);
 | 
					 | 
				
			||||||
        return NULL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Add filter callback for DBus connection */
 | 
					 | 
				
			||||||
    if (!dbus_connection_add_filter(pa_dbus_connection_get(backend->connection), filter_cb, backend, NULL)) {
 | 
					 | 
				
			||||||
        pa_log_error("Failed to add filter function");
 | 
					 | 
				
			||||||
        pa_dbus_connection_unref(backend->connection);
 | 
					 | 
				
			||||||
        pa_xfree(backend);
 | 
					 | 
				
			||||||
        return NULL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Register for battery level changes from UPower */
 | 
					 | 
				
			||||||
    if (pa_dbus_add_matches(pa_dbus_connection_get(backend->connection), &err,
 | 
					 | 
				
			||||||
            "type='signal',sender='" DBUS_SERVICE_DBUS "',interface='" DBUS_INTERFACE_DBUS "',member='NameOwnerChanged',"
 | 
					 | 
				
			||||||
            "arg0='" UPOWER_SERVICE "'",
 | 
					 | 
				
			||||||
            "type='signal',sender='" UPOWER_SERVICE "',interface='" DBUS_INTERFACE_PROPERTIES "',member='PropertiesChanged'",
 | 
					 | 
				
			||||||
            NULL) < 0) {
 | 
					 | 
				
			||||||
        pa_log("Failed to add UPower D-Bus matches: %s", err.message);
 | 
					 | 
				
			||||||
        dbus_connection_remove_filter(pa_dbus_connection_get(backend->connection), filter_cb, backend);
 | 
					 | 
				
			||||||
        pa_dbus_connection_unref(backend->connection);
 | 
					 | 
				
			||||||
        pa_xfree(backend);
 | 
					 | 
				
			||||||
        return NULL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Initialize battery level by requesting it from UPower */
 | 
					 | 
				
			||||||
    pa_assert_se(m = dbus_message_new_method_call(UPOWER_SERVICE, UPOWER_DISPLAY_DEVICE_OBJECT, DBUS_INTERFACE_PROPERTIES, "Get"));
 | 
					 | 
				
			||||||
    pa_assert_se(dbus_message_append_args(m,
 | 
					 | 
				
			||||||
        DBUS_TYPE_STRING, &upower_device_interface,
 | 
					 | 
				
			||||||
        DBUS_TYPE_STRING, &percentage_property,
 | 
					 | 
				
			||||||
        DBUS_TYPE_INVALID));
 | 
					 | 
				
			||||||
    send_and_add_to_pending(backend, m, get_percentage_reply, NULL);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return backend;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void pa_upower_backend_free(pa_upower_backend *backend) {
 | 
					 | 
				
			||||||
    pa_assert(backend);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_dbus_free_pending_list(&backend->pending);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_dbus_connection_unref(backend->connection);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_xfree(backend);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,39 +0,0 @@
 | 
				
			||||||
#pragma once
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***
 | 
					 | 
				
			||||||
  This file is part of PulseAudio.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Copyright 2022 Dylan Van Assche <me@dylanvanassche.be>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  PulseAudio is free software; you can redistribute it and/or modify
 | 
					 | 
				
			||||||
  it under the terms of the GNU Lesser General Public License as
 | 
					 | 
				
			||||||
  published by the Free Software Foundation; either version 2.1 of the
 | 
					 | 
				
			||||||
  License, or (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  PulseAudio is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
  WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | 
					 | 
				
			||||||
  General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  You should have received a copy of the GNU Lesser General Public
 | 
					 | 
				
			||||||
  License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
***/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "bluez5-util.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define UPOWER_SERVICE "org.freedesktop.UPower"
 | 
					 | 
				
			||||||
#define UPOWER_DEVICE_INTERFACE ".Device"
 | 
					 | 
				
			||||||
#define UPOWER_DISPLAY_DEVICE_OBJECT "/org/freedesktop/UPower/devices/DisplayDevice"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct pa_upower_backend {
 | 
					 | 
				
			||||||
    pa_core *core;
 | 
					 | 
				
			||||||
    pa_dbus_connection *connection;
 | 
					 | 
				
			||||||
    pa_bluetooth_discovery *discovery;
 | 
					 | 
				
			||||||
    unsigned int battery_level;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PA_LLIST_HEAD(pa_dbus_pending, pending);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
pa_upower_backend *pa_upower_backend_new(pa_core *c, pa_bluetooth_discovery *d);
 | 
					 | 
				
			||||||
void pa_upower_backend_free(pa_upower_backend *backend);
 | 
					 | 
				
			||||||
unsigned int pa_upower_get_battery_level(pa_upower_backend *backend);
 | 
					 | 
				
			||||||
| 
						 | 
					@ -3,28 +3,19 @@
 | 
				
			||||||
# even conditional ones).
 | 
					# even conditional ones).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# This library requires a symbol from module-echo-cancel, hence we need
 | 
					# This library requires a symbol from module-echo-cancel, hence we need
 | 
				
			||||||
# '-Wl,--unresolved-symbols=ignore-in-object-files', or
 | 
					# '-Wl,--unresolved-symbols=ignore-in-object-files' otherwise it fails
 | 
				
			||||||
# '-Wl,-undefined,dynamic_lookup' on macOS, otherwise it fails
 | 
					 | 
				
			||||||
# at link time.
 | 
					# at link time.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_languages('cpp')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libwebrtc_util_sources = [
 | 
					libwebrtc_util_sources = [
 | 
				
			||||||
  'webrtc.cc'
 | 
					  'webrtc.cc'
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if host_machine.system() == 'darwin'
 | 
					 | 
				
			||||||
  ignore_unresolved_symbols_link_args = ['-Wl,-undefined,dynamic_lookup']
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  ignore_unresolved_symbols_link_args = ['-Wl,--unresolved-symbols=ignore-in-object-files']
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libwebrtc_util = shared_library('webrtc-util',
 | 
					libwebrtc_util = shared_library('webrtc-util',
 | 
				
			||||||
  libwebrtc_util_sources,
 | 
					  libwebrtc_util_sources,
 | 
				
			||||||
  cpp_args : [pa_c_args, server_c_args],
 | 
					  cpp_args : [pa_c_args, server_c_args],
 | 
				
			||||||
  include_directories : [configinc, topinc],
 | 
					  include_directories : [configinc, topinc],
 | 
				
			||||||
  dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libatomic_ops_dep, webrtc_dep, libintl_dep],
 | 
					  dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libatomic_ops_dep, webrtc_dep, libintl_dep],
 | 
				
			||||||
  link_args : [nodelete_link_args, ignore_unresolved_symbols_link_args],
 | 
					  link_args : [nodelete_link_args, '-Wl,--unresolved-symbols=ignore-in-object-files'],
 | 
				
			||||||
  install : true,
 | 
					  install : true,
 | 
				
			||||||
  install_rpath : privlibdir,
 | 
					  install_rpath : privlibdir,
 | 
				
			||||||
  install_dir : modlibexecdir,
 | 
					  install_dir : modlibexecdir,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2370,6 +2370,8 @@ int main(int argc, char* argv[]) {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    u.ec->done(u.ec);
 | 
					    u.ec->done(u.ec);
 | 
				
			||||||
 | 
					    u.ec->msg->dead = true;
 | 
				
			||||||
 | 
					    pa_echo_canceller_msg_unref(u.ec->msg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
out:
 | 
					out:
 | 
				
			||||||
    if (u.captured_file)
 | 
					    if (u.captured_file)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,8 +3,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Copyright 2011 Collabora Ltd.
 | 
					    Copyright 2011 Collabora Ltd.
 | 
				
			||||||
              2015 Aldebaran SoftBank Group
 | 
					              2015 Aldebaran SoftBank Group
 | 
				
			||||||
              2020 Arun Raghavan <arun@asymptotic.io>
 | 
					
 | 
				
			||||||
              2020 Eero Nurkkala <eero.nurkkala@offcode.fi>
 | 
					    Contributor: Arun Raghavan <mail@arunraghavan.net>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PulseAudio is free software; you can redistribute it and/or modify
 | 
					    PulseAudio is free software; you can redistribute it and/or modify
 | 
				
			||||||
    it under the terms of the GNU Lesser General Public License as published
 | 
					    it under the terms of the GNU Lesser General Public License as published
 | 
				
			||||||
| 
						 | 
					@ -34,47 +34,80 @@ PA_C_DECL_BEGIN
 | 
				
			||||||
#include "echo-cancel.h"
 | 
					#include "echo-cancel.h"
 | 
				
			||||||
PA_C_DECL_END
 | 
					PA_C_DECL_END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WEBRTC_APM_DEBUG_DUMP 0
 | 
					#include <webrtc/modules/audio_processing/include/audio_processing.h>
 | 
				
			||||||
 | 
					#include <webrtc/modules/interface/module_common_types.h>
 | 
				
			||||||
#include <modules/audio_processing/include/audio_processing.h>
 | 
					#include <webrtc/system_wrappers/include/trace.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define BLOCK_SIZE_US 10000
 | 
					#define BLOCK_SIZE_US 10000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DEFAULT_HIGH_PASS_FILTER true
 | 
					#define DEFAULT_HIGH_PASS_FILTER true
 | 
				
			||||||
#define DEFAULT_NOISE_SUPPRESSION true
 | 
					#define DEFAULT_NOISE_SUPPRESSION true
 | 
				
			||||||
#define DEFAULT_TRANSIENT_NOISE_SUPPRESSION true
 | 
					 | 
				
			||||||
#define DEFAULT_ANALOG_GAIN_CONTROL true
 | 
					#define DEFAULT_ANALOG_GAIN_CONTROL true
 | 
				
			||||||
#define DEFAULT_DIGITAL_GAIN_CONTROL false
 | 
					#define DEFAULT_DIGITAL_GAIN_CONTROL false
 | 
				
			||||||
#define DEFAULT_MOBILE false
 | 
					#define DEFAULT_MOBILE false
 | 
				
			||||||
 | 
					#define DEFAULT_ROUTING_MODE "speakerphone"
 | 
				
			||||||
#define DEFAULT_COMFORT_NOISE true
 | 
					#define DEFAULT_COMFORT_NOISE true
 | 
				
			||||||
#define DEFAULT_DRIFT_COMPENSATION false
 | 
					#define DEFAULT_DRIFT_COMPENSATION false
 | 
				
			||||||
#define DEFAULT_VAD false
 | 
					#define DEFAULT_VAD true
 | 
				
			||||||
 | 
					#define DEFAULT_EXTENDED_FILTER false
 | 
				
			||||||
 | 
					#define DEFAULT_INTELLIGIBILITY_ENHANCER false
 | 
				
			||||||
 | 
					#define DEFAULT_EXPERIMENTAL_AGC false
 | 
				
			||||||
#define DEFAULT_AGC_START_VOLUME 85
 | 
					#define DEFAULT_AGC_START_VOLUME 85
 | 
				
			||||||
#define DEFAULT_POSTAMP_ENABLE false
 | 
					#define DEFAULT_BEAMFORMING false
 | 
				
			||||||
#define DEFAULT_POSTAMP_GAIN_DB 0
 | 
					#define DEFAULT_TRACE false
 | 
				
			||||||
#define DEFAULT_PREAMP_ENABLE false
 | 
					 | 
				
			||||||
#define DEFAULT_PREAMP_GAIN_DB 0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WEBRTC_AGC_MAX_VOLUME 255
 | 
					#define WEBRTC_AGC_MAX_VOLUME 255
 | 
				
			||||||
#define WEBRTC_POSTAMP_GAIN_MAX_DB 90
 | 
					 | 
				
			||||||
#define WEBRTC_PREAMP_GAIN_MAX_DB 90
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const char* const valid_modargs[] = {
 | 
					static const char* const valid_modargs[] = {
 | 
				
			||||||
    "agc_start_volume",
 | 
					    "high_pass_filter",
 | 
				
			||||||
 | 
					    "noise_suppression",
 | 
				
			||||||
    "analog_gain_control",
 | 
					    "analog_gain_control",
 | 
				
			||||||
    "digital_gain_control",
 | 
					    "digital_gain_control",
 | 
				
			||||||
    "high_pass_filter",
 | 
					 | 
				
			||||||
    "mobile",
 | 
					    "mobile",
 | 
				
			||||||
    "noise_suppression",
 | 
					    "routing_mode",
 | 
				
			||||||
    "post_amplifier",
 | 
					    "comfort_noise",
 | 
				
			||||||
    "post_amplifier_gain",
 | 
					    "drift_compensation",
 | 
				
			||||||
    "pre_amplifier",
 | 
					 | 
				
			||||||
    "pre_amplifier_gain",
 | 
					 | 
				
			||||||
    "transient_noise_suppression",
 | 
					 | 
				
			||||||
    "voice_detection",
 | 
					    "voice_detection",
 | 
				
			||||||
 | 
					    "extended_filter",
 | 
				
			||||||
 | 
					    "intelligibility_enhancer",
 | 
				
			||||||
 | 
					    "experimental_agc",
 | 
				
			||||||
 | 
					    "agc_start_volume",
 | 
				
			||||||
 | 
					    "beamforming",
 | 
				
			||||||
 | 
					    "mic_geometry", /* documented in parse_mic_geometry() */
 | 
				
			||||||
 | 
					    "target_direction", /* documented in parse_mic_geometry() */
 | 
				
			||||||
 | 
					    "trace",
 | 
				
			||||||
    NULL
 | 
					    NULL
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int routing_mode_from_string(const char *rmode) {
 | 
				
			||||||
 | 
					    if (pa_streq(rmode, "quiet-earpiece-or-headset"))
 | 
				
			||||||
 | 
					        return webrtc::EchoControlMobile::kQuietEarpieceOrHeadset;
 | 
				
			||||||
 | 
					    else if (pa_streq(rmode, "earpiece"))
 | 
				
			||||||
 | 
					        return webrtc::EchoControlMobile::kEarpiece;
 | 
				
			||||||
 | 
					    else if (pa_streq(rmode, "loud-earpiece"))
 | 
				
			||||||
 | 
					        return webrtc::EchoControlMobile::kLoudEarpiece;
 | 
				
			||||||
 | 
					    else if (pa_streq(rmode, "speakerphone"))
 | 
				
			||||||
 | 
					        return webrtc::EchoControlMobile::kSpeakerphone;
 | 
				
			||||||
 | 
					    else if (pa_streq(rmode, "loud-speakerphone"))
 | 
				
			||||||
 | 
					        return webrtc::EchoControlMobile::kLoudSpeakerphone;
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        return -1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class PaWebrtcTraceCallback : public webrtc::TraceCallback {
 | 
				
			||||||
 | 
					    void Print(webrtc::TraceLevel level, const char *message, int length)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (level & webrtc::kTraceError || level & webrtc::kTraceCritical)
 | 
				
			||||||
 | 
					            pa_log("%s", message);
 | 
				
			||||||
 | 
					        else if (level & webrtc::kTraceWarning)
 | 
				
			||||||
 | 
					            pa_log_warn("%s", message);
 | 
				
			||||||
 | 
					        else if (level & webrtc::kTraceInfo)
 | 
				
			||||||
 | 
					            pa_log_info("%s", message);
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            pa_log_debug("%s", message);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int webrtc_volume_from_pa(pa_volume_t v)
 | 
					static int webrtc_volume_from_pa(pa_volume_t v)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    return (v * WEBRTC_AGC_MAX_VOLUME) / PA_VOLUME_NORM;
 | 
					    return (v * WEBRTC_AGC_MAX_VOLUME) / PA_VOLUME_NORM;
 | 
				
			||||||
| 
						 | 
					@ -87,7 +120,8 @@ static pa_volume_t webrtc_volume_to_pa(int v)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void webrtc_ec_fixate_spec(pa_sample_spec *rec_ss, pa_channel_map *rec_map,
 | 
					static void webrtc_ec_fixate_spec(pa_sample_spec *rec_ss, pa_channel_map *rec_map,
 | 
				
			||||||
                                  pa_sample_spec *play_ss, pa_channel_map *play_map,
 | 
					                                  pa_sample_spec *play_ss, pa_channel_map *play_map,
 | 
				
			||||||
                                  pa_sample_spec *out_ss, pa_channel_map *out_map)
 | 
					                                  pa_sample_spec *out_ss, pa_channel_map *out_map,
 | 
				
			||||||
 | 
					                                  bool beamforming)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    rec_ss->format = PA_SAMPLE_FLOAT32NE;
 | 
					    rec_ss->format = PA_SAMPLE_FLOAT32NE;
 | 
				
			||||||
    play_ss->format = PA_SAMPLE_FLOAT32NE;
 | 
					    play_ss->format = PA_SAMPLE_FLOAT32NE;
 | 
				
			||||||
| 
						 | 
					@ -105,22 +139,110 @@ static void webrtc_ec_fixate_spec(pa_sample_spec *rec_ss, pa_channel_map *rec_ma
 | 
				
			||||||
    *out_ss = *rec_ss;
 | 
					    *out_ss = *rec_ss;
 | 
				
			||||||
    *out_map = *rec_map;
 | 
					    *out_map = *rec_map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (beamforming) {
 | 
				
			||||||
 | 
					        /* The beamformer gives us a single channel */
 | 
				
			||||||
 | 
					        out_ss->channels = 1;
 | 
				
			||||||
 | 
					        pa_channel_map_init_mono(out_map);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Playback stream rate needs to be the same as capture */
 | 
					    /* Playback stream rate needs to be the same as capture */
 | 
				
			||||||
    play_ss->rate = rec_ss->rate;
 | 
					    play_ss->rate = rec_ss->rate;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static bool parse_point(const char **point, float (&f)[3]) {
 | 
				
			||||||
 | 
					    int ret, length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ret = sscanf(*point, "%g,%g,%g%n", &f[0], &f[1], &f[2], &length);
 | 
				
			||||||
 | 
					    if (ret != 3)
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Consume the bytes we've read so far */
 | 
				
			||||||
 | 
					    *point += length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static bool parse_mic_geometry(const char **mic_geometry, std::vector<webrtc::Point>& geometry) {
 | 
				
			||||||
 | 
					    /* The microphone geometry is expressed as cartesian point form:
 | 
				
			||||||
 | 
					     *   x1,y1,z1,x2,y2,z2,...
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * Where x1,y1,z1 is the position of the first microphone with regards to
 | 
				
			||||||
 | 
					     * the array's "center", x2,y2,z2 the position of the second, and so on.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * 'x' is the horizontal coordinate, with positive values being to the
 | 
				
			||||||
 | 
					     * right from the mic array's perspective.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * 'y' is the depth coordinate, with positive values being in front of the
 | 
				
			||||||
 | 
					     * array.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * 'z' is the vertical coordinate, with positive values being above the
 | 
				
			||||||
 | 
					     * array.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * All distances are in meters.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* The target direction is expected to be in spherical point form:
 | 
				
			||||||
 | 
					     *   a,e,r
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * Where 'a' is the azimuth of the target point relative to the center of
 | 
				
			||||||
 | 
					     * the array, 'e' its elevation, and 'r' the radius.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * 0 radians azimuth is to the right of the array, and positive angles
 | 
				
			||||||
 | 
					     * move in a counter-clockwise direction.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * 0 radians elevation is horizontal w.r.t. the array, and positive
 | 
				
			||||||
 | 
					     * angles go upwards.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * radius is distance from the array center in meters.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    long unsigned int i;
 | 
				
			||||||
 | 
					    float f[3];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i = 0; i < geometry.size(); i++) {
 | 
				
			||||||
 | 
					        if (!parse_point(mic_geometry, f)) {
 | 
				
			||||||
 | 
					            pa_log("Failed to parse channel %lu in mic_geometry", i);
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* Except for the last point, we should have a trailing comma */
 | 
				
			||||||
 | 
					        if (i != geometry.size() - 1) {
 | 
				
			||||||
 | 
					            if (**mic_geometry != ',') {
 | 
				
			||||||
 | 
					                pa_log("Failed to parse channel %lu in mic_geometry", i);
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            (*mic_geometry)++;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        pa_log_debug("Got mic #%lu position: (%g, %g, %g)", i, f[0], f[1], f[2]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        geometry[i].c[0] = f[0];
 | 
				
			||||||
 | 
					        geometry[i].c[1] = f[1];
 | 
				
			||||||
 | 
					        geometry[i].c[2] = f[2];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (**mic_geometry != '\0') {
 | 
				
			||||||
 | 
					        pa_log("Failed to parse mic_geometry value: more parameters than expected");
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
					bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
				
			||||||
                       pa_sample_spec *rec_ss, pa_channel_map *rec_map,
 | 
					                       pa_sample_spec *rec_ss, pa_channel_map *rec_map,
 | 
				
			||||||
                       pa_sample_spec *play_ss, pa_channel_map *play_map,
 | 
					                       pa_sample_spec *play_ss, pa_channel_map *play_map,
 | 
				
			||||||
                       pa_sample_spec *out_ss, pa_channel_map *out_map,
 | 
					                       pa_sample_spec *out_ss, pa_channel_map *out_map,
 | 
				
			||||||
                       uint32_t *nframes, const char *args) {
 | 
					                       uint32_t *nframes, const char *args) {
 | 
				
			||||||
    webrtc::AudioProcessing *apm = webrtc::AudioProcessingBuilder().Create();
 | 
					    webrtc::AudioProcessing *apm = NULL;
 | 
				
			||||||
    webrtc::ProcessingConfig pconfig;
 | 
					    webrtc::ProcessingConfig pconfig;
 | 
				
			||||||
    webrtc::AudioProcessing::Config config;
 | 
					    webrtc::Config config;
 | 
				
			||||||
    bool hpf, ns, tns, agc, dgc, mobile, pre_amp, vad, post_amp;
 | 
					    bool hpf, ns, agc, dgc, mobile, cn, vad, ext_filter, intelligibility, experimental_agc, beamforming;
 | 
				
			||||||
    int i;
 | 
					    int rm = -1, i;
 | 
				
			||||||
    uint32_t agc_start_volume, pre_amp_gain, post_amp_gain;
 | 
					    uint32_t agc_start_volume;
 | 
				
			||||||
    pa_modargs *ma;
 | 
					    pa_modargs *ma;
 | 
				
			||||||
 | 
					    bool trace = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(ma = pa_modargs_new(args, valid_modargs))) {
 | 
					    if (!(ma = pa_modargs_new(args, valid_modargs))) {
 | 
				
			||||||
        pa_log("Failed to parse submodule arguments.");
 | 
					        pa_log("Failed to parse submodule arguments.");
 | 
				
			||||||
| 
						 | 
					@ -139,12 +261,6 @@ bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    tns = DEFAULT_TRANSIENT_NOISE_SUPPRESSION;
 | 
					 | 
				
			||||||
    if (pa_modargs_get_value_boolean(ma, "transient_noise_suppression", &tns) < 0) {
 | 
					 | 
				
			||||||
        pa_log("Failed to parse transient_noise_suppression value");
 | 
					 | 
				
			||||||
        goto fail;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    agc = DEFAULT_ANALOG_GAIN_CONTROL;
 | 
					    agc = DEFAULT_ANALOG_GAIN_CONTROL;
 | 
				
			||||||
    if (pa_modargs_get_value_boolean(ma, "analog_gain_control", &agc) < 0) {
 | 
					    if (pa_modargs_get_value_boolean(ma, "analog_gain_control", &agc) < 0) {
 | 
				
			||||||
        pa_log("Failed to parse analog_gain_control value");
 | 
					        pa_log("Failed to parse analog_gain_control value");
 | 
				
			||||||
| 
						 | 
					@ -162,36 +278,6 @@ bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pre_amp = DEFAULT_PREAMP_ENABLE;
 | 
					 | 
				
			||||||
    if (pa_modargs_get_value_boolean(ma, "pre_amplifier", &pre_amp) < 0) {
 | 
					 | 
				
			||||||
        pa_log("Failed to parse pre_amplifier value");
 | 
					 | 
				
			||||||
        goto fail;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    pre_amp_gain = DEFAULT_PREAMP_GAIN_DB;
 | 
					 | 
				
			||||||
    if (pa_modargs_get_value_u32(ma, "pre_amplifier_gain", &pre_amp_gain) < 0) {
 | 
					 | 
				
			||||||
        pa_log("Failed to parse pre_amplifier_gain value");
 | 
					 | 
				
			||||||
        goto fail;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (pre_amp_gain > WEBRTC_PREAMP_GAIN_MAX_DB) {
 | 
					 | 
				
			||||||
        pa_log("Preamp gain must not exceed %u", WEBRTC_PREAMP_GAIN_MAX_DB);
 | 
					 | 
				
			||||||
        goto fail;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    post_amp = DEFAULT_POSTAMP_ENABLE;
 | 
					 | 
				
			||||||
    if (pa_modargs_get_value_boolean(ma, "post_amplifier", &post_amp) < 0) {
 | 
					 | 
				
			||||||
        pa_log("Failed to parse post_amplifier value");
 | 
					 | 
				
			||||||
        goto fail;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    post_amp_gain = DEFAULT_POSTAMP_GAIN_DB;
 | 
					 | 
				
			||||||
    if (pa_modargs_get_value_u32(ma, "post_amplifier_gain", &post_amp_gain) < 0) {
 | 
					 | 
				
			||||||
        pa_log("Failed to parse post_amplifier_gain value");
 | 
					 | 
				
			||||||
        goto fail;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (post_amp_gain > WEBRTC_POSTAMP_GAIN_MAX_DB) {
 | 
					 | 
				
			||||||
        pa_log("Postamp gain must not exceed %u", WEBRTC_POSTAMP_GAIN_MAX_DB);
 | 
					 | 
				
			||||||
        goto fail;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    mobile = DEFAULT_MOBILE;
 | 
					    mobile = DEFAULT_MOBILE;
 | 
				
			||||||
    if (pa_modargs_get_value_boolean(ma, "mobile", &mobile) < 0) {
 | 
					    if (pa_modargs_get_value_boolean(ma, "mobile", &mobile) < 0) {
 | 
				
			||||||
        pa_log("Failed to parse mobile value");
 | 
					        pa_log("Failed to parse mobile value");
 | 
				
			||||||
| 
						 | 
					@ -199,6 +285,33 @@ bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ec->params.drift_compensation = DEFAULT_DRIFT_COMPENSATION;
 | 
					    ec->params.drift_compensation = DEFAULT_DRIFT_COMPENSATION;
 | 
				
			||||||
 | 
					    if (pa_modargs_get_value_boolean(ma, "drift_compensation", &ec->params.drift_compensation) < 0) {
 | 
				
			||||||
 | 
					        pa_log("Failed to parse drift_compensation value");
 | 
				
			||||||
 | 
					        goto fail;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (mobile) {
 | 
				
			||||||
 | 
					        if (ec->params.drift_compensation) {
 | 
				
			||||||
 | 
					            pa_log("Can't use drift_compensation in mobile mode");
 | 
				
			||||||
 | 
					            goto fail;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ((rm = routing_mode_from_string(pa_modargs_get_value(ma, "routing_mode", DEFAULT_ROUTING_MODE))) < 0) {
 | 
				
			||||||
 | 
					            pa_log("Failed to parse routing_mode value");
 | 
				
			||||||
 | 
					            goto fail;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cn = DEFAULT_COMFORT_NOISE;
 | 
				
			||||||
 | 
					        if (pa_modargs_get_value_boolean(ma, "comfort_noise", &cn) < 0) {
 | 
				
			||||||
 | 
					            pa_log("Failed to parse cn value");
 | 
				
			||||||
 | 
					            goto fail;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        if (pa_modargs_get_value(ma, "comfort_noise", NULL) || pa_modargs_get_value(ma, "routing_mode", NULL)) {
 | 
				
			||||||
 | 
					            pa_log("The routing_mode and comfort_noise options are only valid with mobile=true");
 | 
				
			||||||
 | 
					            goto fail;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    vad = DEFAULT_VAD;
 | 
					    vad = DEFAULT_VAD;
 | 
				
			||||||
    if (pa_modargs_get_value_boolean(ma, "voice_detection", &vad) < 0) {
 | 
					    if (pa_modargs_get_value_boolean(ma, "voice_detection", &vad) < 0) {
 | 
				
			||||||
| 
						 | 
					@ -206,6 +319,24 @@ bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ext_filter = DEFAULT_EXTENDED_FILTER;
 | 
				
			||||||
 | 
					    if (pa_modargs_get_value_boolean(ma, "extended_filter", &ext_filter) < 0) {
 | 
				
			||||||
 | 
					        pa_log("Failed to parse extended_filter value");
 | 
				
			||||||
 | 
					        goto fail;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    intelligibility = DEFAULT_INTELLIGIBILITY_ENHANCER;
 | 
				
			||||||
 | 
					    if (pa_modargs_get_value_boolean(ma, "intelligibility_enhancer", &intelligibility) < 0) {
 | 
				
			||||||
 | 
					        pa_log("Failed to parse intelligibility_enhancer value");
 | 
				
			||||||
 | 
					        goto fail;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    experimental_agc = DEFAULT_EXPERIMENTAL_AGC;
 | 
				
			||||||
 | 
					    if (pa_modargs_get_value_boolean(ma, "experimental_agc", &experimental_agc) < 0) {
 | 
				
			||||||
 | 
					        pa_log("Failed to parse experimental_agc value");
 | 
				
			||||||
 | 
					        goto fail;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    agc_start_volume = DEFAULT_AGC_START_VOLUME;
 | 
					    agc_start_volume = DEFAULT_AGC_START_VOLUME;
 | 
				
			||||||
    if (pa_modargs_get_value_u32(ma, "agc_start_volume", &agc_start_volume) < 0) {
 | 
					    if (pa_modargs_get_value_u32(ma, "agc_start_volume", &agc_start_volume) < 0) {
 | 
				
			||||||
        pa_log("Failed to parse agc_start_volume value");
 | 
					        pa_log("Failed to parse agc_start_volume value");
 | 
				
			||||||
| 
						 | 
					@ -217,7 +348,82 @@ bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    ec->params.webrtc.agc_start_volume = agc_start_volume;
 | 
					    ec->params.webrtc.agc_start_volume = agc_start_volume;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    webrtc_ec_fixate_spec(rec_ss, rec_map, play_ss, play_map, out_ss, out_map);
 | 
					    beamforming = DEFAULT_BEAMFORMING;
 | 
				
			||||||
 | 
					    if (pa_modargs_get_value_boolean(ma, "beamforming", &beamforming) < 0) {
 | 
				
			||||||
 | 
					        pa_log("Failed to parse beamforming value");
 | 
				
			||||||
 | 
					        goto fail;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ext_filter)
 | 
				
			||||||
 | 
					        config.Set<webrtc::ExtendedFilter>(new webrtc::ExtendedFilter(true));
 | 
				
			||||||
 | 
					    if (intelligibility)
 | 
				
			||||||
 | 
					        pa_log_warn("The intelligibility enhancer is not currently supported");
 | 
				
			||||||
 | 
					    if (experimental_agc)
 | 
				
			||||||
 | 
					        config.Set<webrtc::ExperimentalAgc>(new webrtc::ExperimentalAgc(true, ec->params.webrtc.agc_start_volume));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    trace = DEFAULT_TRACE;
 | 
				
			||||||
 | 
					    if (pa_modargs_get_value_boolean(ma, "trace", &trace) < 0) {
 | 
				
			||||||
 | 
					        pa_log("Failed to parse trace value");
 | 
				
			||||||
 | 
					        goto fail;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (trace) {
 | 
				
			||||||
 | 
					        webrtc::Trace::CreateTrace();
 | 
				
			||||||
 | 
					        webrtc::Trace::set_level_filter(webrtc::kTraceAll);
 | 
				
			||||||
 | 
					        ec->params.webrtc.trace_callback = new PaWebrtcTraceCallback();
 | 
				
			||||||
 | 
					        webrtc::Trace::SetTraceCallback((PaWebrtcTraceCallback *) ec->params.webrtc.trace_callback);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    webrtc_ec_fixate_spec(rec_ss, rec_map, play_ss, play_map, out_ss, out_map, beamforming);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* We do this after fixate because we need the capture channel count */
 | 
				
			||||||
 | 
					    if (beamforming) {
 | 
				
			||||||
 | 
					        std::vector<webrtc::Point> geometry(rec_ss->channels);
 | 
				
			||||||
 | 
					        webrtc::SphericalPointf direction(0.0f, 0.0f, 0.0f);
 | 
				
			||||||
 | 
					        const char *mic_geometry, *target_direction;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!(mic_geometry = pa_modargs_get_value(ma, "mic_geometry", NULL))) {
 | 
				
			||||||
 | 
					            pa_log("mic_geometry must be set if beamforming is enabled");
 | 
				
			||||||
 | 
					            goto fail;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!parse_mic_geometry(&mic_geometry, geometry)) {
 | 
				
			||||||
 | 
					            pa_log("Failed to parse mic_geometry value");
 | 
				
			||||||
 | 
					            goto fail;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ((target_direction = pa_modargs_get_value(ma, "target_direction", NULL))) {
 | 
				
			||||||
 | 
					            float f[3];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (!parse_point(&target_direction, f)) {
 | 
				
			||||||
 | 
					                pa_log("Failed to parse target_direction value");
 | 
				
			||||||
 | 
					                goto fail;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (*target_direction != '\0') {
 | 
				
			||||||
 | 
					                pa_log("Failed to parse target_direction value: more parameters than expected");
 | 
				
			||||||
 | 
					                goto fail;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define IS_ZERO(f) ((f) < 0.000001 && (f) > -0.000001)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (!IS_ZERO(f[1]) || !IS_ZERO(f[2])) {
 | 
				
			||||||
 | 
					                pa_log("The beamformer currently only supports targeting along the azimuth");
 | 
				
			||||||
 | 
					                goto fail;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            direction.s[0] = f[0];
 | 
				
			||||||
 | 
					            direction.s[1] = f[1];
 | 
				
			||||||
 | 
					            direction.s[2] = f[2];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!target_direction)
 | 
				
			||||||
 | 
					            config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry));
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry, direction));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    apm = webrtc::AudioProcessing::Create(config);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pconfig = {
 | 
					    pconfig = {
 | 
				
			||||||
        webrtc::StreamConfig(rec_ss->rate, rec_ss->channels, false), /* input stream */
 | 
					        webrtc::StreamConfig(rec_ss->rate, rec_ss->channels, false), /* input stream */
 | 
				
			||||||
| 
						 | 
					@ -230,62 +436,46 @@ bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (pre_amp) {
 | 
					 | 
				
			||||||
       config.pre_amplifier.enabled = true;
 | 
					 | 
				
			||||||
       config.pre_amplifier.fixed_gain_factor = (float)pre_amp_gain;
 | 
					 | 
				
			||||||
    } else
 | 
					 | 
				
			||||||
       config.pre_amplifier.enabled = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (hpf)
 | 
					    if (hpf)
 | 
				
			||||||
        config.high_pass_filter.enabled = true;
 | 
					        apm->high_pass_filter()->Enable(true);
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        config.high_pass_filter.enabled = false;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    config.echo_canceller.enabled = true;
 | 
					    if (!mobile) {
 | 
				
			||||||
    config.pipeline.multi_channel_capture = rec_ss->channels > 1;
 | 
					        apm->echo_cancellation()->enable_drift_compensation(ec->params.drift_compensation);
 | 
				
			||||||
    config.pipeline.multi_channel_render = play_ss->channels > 1;
 | 
					        apm->echo_cancellation()->Enable(true);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        apm->echo_control_mobile()->set_routing_mode(static_cast<webrtc::EchoControlMobile::RoutingMode>(rm));
 | 
				
			||||||
 | 
					        apm->echo_control_mobile()->enable_comfort_noise(cn);
 | 
				
			||||||
 | 
					        apm->echo_control_mobile()->Enable(true);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!mobile)
 | 
					    if (ns) {
 | 
				
			||||||
        config.echo_canceller.mobile_mode = false;
 | 
					        apm->noise_suppression()->set_level(webrtc::NoiseSuppression::kHigh);
 | 
				
			||||||
    else
 | 
					        apm->noise_suppression()->Enable(true);
 | 
				
			||||||
        config.echo_canceller.mobile_mode = true;
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (ns)
 | 
					    if (agc || dgc) {
 | 
				
			||||||
       config.noise_suppression.enabled = true;
 | 
					        if (mobile && rm <= webrtc::EchoControlMobile::kEarpiece) {
 | 
				
			||||||
    else
 | 
					            /* Maybe this should be a knob, but we've got a lot of knobs already */
 | 
				
			||||||
       config.noise_suppression.enabled = false;
 | 
					            apm->gain_control()->set_mode(webrtc::GainControl::kFixedDigital);
 | 
				
			||||||
 | 
					            ec->params.webrtc.agc = false;
 | 
				
			||||||
 | 
					        } else if (dgc) {
 | 
				
			||||||
 | 
					            apm->gain_control()->set_mode(webrtc::GainControl::kAdaptiveDigital);
 | 
				
			||||||
 | 
					            ec->params.webrtc.agc = false;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            apm->gain_control()->set_mode(webrtc::GainControl::kAdaptiveAnalog);
 | 
				
			||||||
 | 
					            if (apm->gain_control()->set_analog_level_limits(0, WEBRTC_AGC_MAX_VOLUME) !=
 | 
				
			||||||
 | 
					                    webrtc::AudioProcessing::kNoError) {
 | 
				
			||||||
 | 
					                pa_log("Failed to initialise AGC");
 | 
				
			||||||
 | 
					                goto fail;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            ec->params.webrtc.agc = true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (tns)
 | 
					        apm->gain_control()->Enable(true);
 | 
				
			||||||
       config.transient_suppression.enabled = true;
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
       config.transient_suppression.enabled = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (dgc) {
 | 
					 | 
				
			||||||
        ec->params.webrtc.agc = false;
 | 
					 | 
				
			||||||
        config.gain_controller1.enabled = true;
 | 
					 | 
				
			||||||
        if (mobile)
 | 
					 | 
				
			||||||
            config.gain_controller1.mode = webrtc::AudioProcessing::Config::GainController1::kFixedDigital;
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            config.gain_controller1.mode = webrtc::AudioProcessing::Config::GainController1::kAdaptiveDigital;
 | 
					 | 
				
			||||||
    } else if (agc) {
 | 
					 | 
				
			||||||
        ec->params.webrtc.agc = true;
 | 
					 | 
				
			||||||
        config.gain_controller1.enabled = true;
 | 
					 | 
				
			||||||
        config.gain_controller1.mode = webrtc::AudioProcessing::Config::GainController1::kAdaptiveAnalog;
 | 
					 | 
				
			||||||
        config.gain_controller1.analog_level_minimum = 0;
 | 
					 | 
				
			||||||
        config.gain_controller1.analog_level_maximum = WEBRTC_AGC_MAX_VOLUME;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (vad)
 | 
					    if (vad)
 | 
				
			||||||
        config.voice_detection.enabled = true;
 | 
					        apm->voice_detection()->Enable(true);
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        config.voice_detection.enabled = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (post_amp) {
 | 
					 | 
				
			||||||
        config.gain_controller2.enabled = true;
 | 
					 | 
				
			||||||
        config.gain_controller2.fixed_digital.gain_db = (float)post_amp_gain;
 | 
					 | 
				
			||||||
        config.gain_controller2.adaptive_digital.enabled = false;
 | 
					 | 
				
			||||||
    } else
 | 
					 | 
				
			||||||
        config.gain_controller2.enabled = false;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ec->params.webrtc.apm = apm;
 | 
					    ec->params.webrtc.apm = apm;
 | 
				
			||||||
    ec->params.webrtc.rec_ss = *rec_ss;
 | 
					    ec->params.webrtc.rec_ss = *rec_ss;
 | 
				
			||||||
| 
						 | 
					@ -295,8 +485,6 @@ bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
				
			||||||
    *nframes = ec->params.webrtc.blocksize;
 | 
					    *nframes = ec->params.webrtc.blocksize;
 | 
				
			||||||
    ec->params.webrtc.first = true;
 | 
					    ec->params.webrtc.first = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    apm->ApplyConfig(config);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for (i = 0; i < rec_ss->channels; i++)
 | 
					    for (i = 0; i < rec_ss->channels; i++)
 | 
				
			||||||
        ec->params.webrtc.rec_buffer[i] = pa_xnew(float, *nframes);
 | 
					        ec->params.webrtc.rec_buffer[i] = pa_xnew(float, *nframes);
 | 
				
			||||||
    for (i = 0; i < play_ss->channels; i++)
 | 
					    for (i = 0; i < play_ss->channels; i++)
 | 
				
			||||||
| 
						 | 
					@ -308,7 +496,10 @@ bool pa_webrtc_ec_init(pa_core *c, pa_echo_canceller *ec,
 | 
				
			||||||
fail:
 | 
					fail:
 | 
				
			||||||
    if (ma)
 | 
					    if (ma)
 | 
				
			||||||
        pa_modargs_free(ma);
 | 
					        pa_modargs_free(ma);
 | 
				
			||||||
    if (apm)
 | 
					    if (ec->params.webrtc.trace_callback) {
 | 
				
			||||||
 | 
					        webrtc::Trace::ReturnTrace();
 | 
				
			||||||
 | 
					        delete ((PaWebrtcTraceCallback *) ec->params.webrtc.trace_callback);
 | 
				
			||||||
 | 
					    } if (apm)
 | 
				
			||||||
        delete apm;
 | 
					        delete apm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return false;
 | 
					    return false;
 | 
				
			||||||
| 
						 | 
					@ -324,6 +515,12 @@ void pa_webrtc_ec_play(pa_echo_canceller *ec, const uint8_t *play) {
 | 
				
			||||||
    pa_deinterleave(play, (void **) buf, ss->channels, pa_sample_size(ss), n);
 | 
					    pa_deinterleave(play, (void **) buf, ss->channels, pa_sample_size(ss), n);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_assert_se(apm->ProcessReverseStream(buf, config, config, buf) == webrtc::AudioProcessing::kNoError);
 | 
					    pa_assert_se(apm->ProcessReverseStream(buf, config, config, buf) == webrtc::AudioProcessing::kNoError);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* FIXME: If ProcessReverseStream() makes any changes to the audio, such as
 | 
				
			||||||
 | 
					     * applying intelligibility enhancement, those changes don't have any
 | 
				
			||||||
 | 
					     * effect. This function is called at the source side, but the processing
 | 
				
			||||||
 | 
					     * would have to be done in the sink to be able to feed the processed audio
 | 
				
			||||||
 | 
					     * to speakers. */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pa_webrtc_ec_record(pa_echo_canceller *ec, const uint8_t *rec, uint8_t *out) {
 | 
					void pa_webrtc_ec_record(pa_echo_canceller *ec, const uint8_t *rec, uint8_t *out) {
 | 
				
			||||||
| 
						 | 
					@ -341,7 +538,7 @@ void pa_webrtc_ec_record(pa_echo_canceller *ec, const uint8_t *rec, uint8_t *out
 | 
				
			||||||
    if (ec->params.webrtc.agc) {
 | 
					    if (ec->params.webrtc.agc) {
 | 
				
			||||||
        pa_volume_t v = pa_echo_canceller_get_capture_volume(ec);
 | 
					        pa_volume_t v = pa_echo_canceller_get_capture_volume(ec);
 | 
				
			||||||
        old_volume = webrtc_volume_from_pa(v);
 | 
					        old_volume = webrtc_volume_from_pa(v);
 | 
				
			||||||
        apm->set_stream_analog_level(old_volume);
 | 
					        apm->gain_control()->set_stream_analog_level(old_volume);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    apm->set_stream_delay_ms(0);
 | 
					    apm->set_stream_delay_ms(0);
 | 
				
			||||||
| 
						 | 
					@ -356,7 +553,7 @@ void pa_webrtc_ec_record(pa_echo_canceller *ec, const uint8_t *rec, uint8_t *out
 | 
				
			||||||
            ec->params.webrtc.first = false;
 | 
					            ec->params.webrtc.first = false;
 | 
				
			||||||
            new_volume = ec->params.webrtc.agc_start_volume;
 | 
					            new_volume = ec->params.webrtc.agc_start_volume;
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            new_volume = apm->recommended_stream_analog_level();
 | 
					            new_volume = apm->gain_control()->stream_analog_level();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (old_volume != new_volume)
 | 
					        if (old_volume != new_volume)
 | 
				
			||||||
| 
						 | 
					@ -367,6 +564,9 @@ void pa_webrtc_ec_record(pa_echo_canceller *ec, const uint8_t *rec, uint8_t *out
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pa_webrtc_ec_set_drift(pa_echo_canceller *ec, float drift) {
 | 
					void pa_webrtc_ec_set_drift(pa_echo_canceller *ec, float drift) {
 | 
				
			||||||
 | 
					    webrtc::AudioProcessing *apm = (webrtc::AudioProcessing*)ec->params.webrtc.apm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    apm->echo_cancellation()->set_stream_drift_samples(drift * ec->params.webrtc.blocksize);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pa_webrtc_ec_run(pa_echo_canceller *ec, const uint8_t *rec, const uint8_t *play, uint8_t *out) {
 | 
					void pa_webrtc_ec_run(pa_echo_canceller *ec, const uint8_t *rec, const uint8_t *play, uint8_t *out) {
 | 
				
			||||||
| 
						 | 
					@ -377,6 +577,11 @@ void pa_webrtc_ec_run(pa_echo_canceller *ec, const uint8_t *rec, const uint8_t *
 | 
				
			||||||
void pa_webrtc_ec_done(pa_echo_canceller *ec) {
 | 
					void pa_webrtc_ec_done(pa_echo_canceller *ec) {
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ec->params.webrtc.trace_callback) {
 | 
				
			||||||
 | 
					        webrtc::Trace::ReturnTrace();
 | 
				
			||||||
 | 
					        delete ((PaWebrtcTraceCallback *) ec->params.webrtc.trace_callback);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (ec->params.webrtc.apm) {
 | 
					    if (ec->params.webrtc.apm) {
 | 
				
			||||||
        delete (webrtc::AudioProcessing*)ec->params.webrtc.apm;
 | 
					        delete (webrtc::AudioProcessing*)ec->params.webrtc.apm;
 | 
				
			||||||
        ec->params.webrtc.apm = NULL;
 | 
					        ec->params.webrtc.apm = NULL;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,12 +8,15 @@ all_modules = [
 | 
				
			||||||
  [ 'module-always-sink', 'module-always-sink.c' ],
 | 
					  [ 'module-always-sink', 'module-always-sink.c' ],
 | 
				
			||||||
  [ 'module-always-source', 'module-always-source.c' ],
 | 
					  [ 'module-always-source', 'module-always-source.c' ],
 | 
				
			||||||
  [ 'module-augment-properties', 'module-augment-properties.c' ],
 | 
					  [ 'module-augment-properties', 'module-augment-properties.c' ],
 | 
				
			||||||
 | 
					#  [ 'module-bonjour-publish', 'macosx/module-bonjour-publish.c' ],
 | 
				
			||||||
  [ 'module-card-restore', 'module-card-restore.c' ],
 | 
					  [ 'module-card-restore', 'module-card-restore.c' ],
 | 
				
			||||||
  [ 'module-cli', 'module-cli.c', [], [], [], libcli ],
 | 
					  [ 'module-cli', 'module-cli.c', [], [], [], libcli ],
 | 
				
			||||||
  [ 'module-cli-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_CLI', '-DUSE_TCP_SOCKETS'], [], libprotocol_cli ],
 | 
					  [ 'module-cli-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_CLI', '-DUSE_TCP_SOCKETS'], [], libprotocol_cli ],
 | 
				
			||||||
  [ 'module-cli-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_CLI', '-DUSE_UNIX_SOCKETS'], [], libprotocol_cli ],
 | 
					  [ 'module-cli-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_CLI', '-DUSE_UNIX_SOCKETS'], [], libprotocol_cli ],
 | 
				
			||||||
  [ 'module-combine', 'module-combine.c' ],
 | 
					  [ 'module-combine', 'module-combine.c' ],
 | 
				
			||||||
  [ 'module-combine-sink', 'module-combine-sink.c', [], [], [libatomic_ops_dep] ],
 | 
					  [ 'module-combine-sink', 'module-combine-sink.c' ],
 | 
				
			||||||
 | 
					#  [ 'module-coreaudio-detect', 'macosx/module-coreaudio-detect.c' ],
 | 
				
			||||||
 | 
					#  [ 'module-coreaudio-device', 'macosx/module-coreaudio-device.c' ],
 | 
				
			||||||
  [ 'module-default-device-restore', 'module-default-device-restore.c', [], [], [], libprotocol_native ],
 | 
					  [ 'module-default-device-restore', 'module-default-device-restore.c', [], [], [], libprotocol_native ],
 | 
				
			||||||
  [ 'module-detect', 'module-detect.c' ],
 | 
					  [ 'module-detect', 'module-detect.c' ],
 | 
				
			||||||
  [ 'module-device-manager', 'module-device-manager.c', [], [], [], libprotocol_native ],
 | 
					  [ 'module-device-manager', 'module-device-manager.c', [], [], [], libprotocol_native ],
 | 
				
			||||||
| 
						 | 
					@ -70,21 +73,11 @@ endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if host_machine.system() != 'windows'
 | 
					if host_machine.system() != 'windows'
 | 
				
			||||||
  all_modules += [
 | 
					  all_modules += [
 | 
				
			||||||
    [ 'module-rtp-recv', 'rtp/module-rtp-recv.c', [], [], [libatomic_ops_dep], librtp ],
 | 
					    [ 'module-rtp-recv', 'rtp/module-rtp-recv.c', [], [], [], librtp ],
 | 
				
			||||||
    [ 'module-rtp-send', 'rtp/module-rtp-send.c' , [], [], [], librtp ],
 | 
					    [ 'module-rtp-send', 'rtp/module-rtp-send.c' , [], [], [], librtp ],
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if host_machine.system() == 'darwin'
 | 
					 | 
				
			||||||
  bonjour_dep = dependency('appleframeworks', modules : ['CoreFoundation'])
 | 
					 | 
				
			||||||
  coreaudio_dep = dependency('appleframeworks', modules : ['CoreAudio'])
 | 
					 | 
				
			||||||
  all_modules += [
 | 
					 | 
				
			||||||
    [ 'module-bonjour-publish', 'macosx/module-bonjour-publish.c', [], [], [bonjour_dep] ],
 | 
					 | 
				
			||||||
    [ 'module-coreaudio-detect', 'macosx/module-coreaudio-detect.c', [], [], [coreaudio_dep] ],
 | 
					 | 
				
			||||||
    [ 'module-coreaudio-device', 'macosx/module-coreaudio-device.c', [], [], [coreaudio_dep] ],
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Modules enabled by headers
 | 
					# Modules enabled by headers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if cc.has_header('linux/input.h')
 | 
					if cc.has_header('linux/input.h')
 | 
				
			||||||
| 
						 | 
					@ -137,6 +130,7 @@ endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if dbus_dep.found()
 | 
					if dbus_dep.found()
 | 
				
			||||||
  all_modules += [
 | 
					  all_modules += [
 | 
				
			||||||
 | 
					    [ 'module-console-kit', 'module-console-kit.c', [], [], [dbus_dep] ],
 | 
				
			||||||
    [ 'module-dbus-protocol',
 | 
					    [ 'module-dbus-protocol',
 | 
				
			||||||
      [ 'dbus/iface-card.c', 'dbus/iface-card.h',
 | 
					      [ 'dbus/iface-card.c', 'dbus/iface-card.h',
 | 
				
			||||||
	'dbus/iface-card-profile.c', 'dbus/iface-card-profile.h',
 | 
						'dbus/iface-card-profile.c', 'dbus/iface-card-profile.h',
 | 
				
			||||||
| 
						 | 
					@ -153,12 +147,6 @@ if dbus_dep.found()
 | 
				
			||||||
      [], [], [dbus_dep] ],
 | 
					      [], [], [dbus_dep] ],
 | 
				
			||||||
    [ 'module-rygel-media-server', 'module-rygel-media-server.c', [], [], [dbus_dep], libprotocol_http ],
 | 
					    [ 'module-rygel-media-server', 'module-rygel-media-server.c', [], [], [dbus_dep], libprotocol_http ],
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
 | 
					 | 
				
			||||||
  if not get_option('consolekit').disabled()
 | 
					 | 
				
			||||||
    all_modules += [
 | 
					 | 
				
			||||||
      [ 'module-console-kit', 'module-console-kit.c', [], [], [dbus_dep] ],
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  endif
 | 
					 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if fftw_dep.found()
 | 
					if fftw_dep.found()
 | 
				
			||||||
| 
						 | 
					@ -250,7 +238,7 @@ module_echo_cancel_sources = [
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
module_echo_cancel_orc_sources = []
 | 
					module_echo_cancel_orc_sources = []
 | 
				
			||||||
module_echo_cancel_flags = []
 | 
					module_echo_cancel_flags = []
 | 
				
			||||||
module_echo_cancel_deps = [libatomic_ops_dep]
 | 
					module_echo_cancel_deps = []
 | 
				
			||||||
module_echo_cancel_libs = []
 | 
					module_echo_cancel_libs = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if get_option('adrian-aec')
 | 
					if get_option('adrian-aec')
 | 
				
			||||||
| 
						 | 
					@ -305,18 +293,6 @@ all_modules += [
 | 
				
			||||||
# FIXME: meson doesn't support multiple RPATH arguments currently
 | 
					# FIXME: meson doesn't support multiple RPATH arguments currently
 | 
				
			||||||
rpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir)
 | 
					rpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if host_machine.system() != 'windows' and host_machine.system() != 'darwin'
 | 
					 | 
				
			||||||
  no_undefined_args = ['-Wl,--no-undefined']
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  no_undefined_args = []
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module_suffix = []
 | 
					 | 
				
			||||||
if host_machine.system() == 'darwin'
 | 
					 | 
				
			||||||
  # meson defaults to dylib but ltdl expects so
 | 
					 | 
				
			||||||
  module_suffix = 'so'
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
foreach m : all_modules
 | 
					foreach m : all_modules
 | 
				
			||||||
  name = m[0]
 | 
					  name = m[0]
 | 
				
			||||||
  sources = m[1]
 | 
					  sources = m[1]
 | 
				
			||||||
| 
						 | 
					@ -334,9 +310,8 @@ foreach m : all_modules
 | 
				
			||||||
    install_rpath : rpath_dirs,
 | 
					    install_rpath : rpath_dirs,
 | 
				
			||||||
    install_dir : modlibexecdir,
 | 
					    install_dir : modlibexecdir,
 | 
				
			||||||
    dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libintl_dep, platform_dep, platform_socket_dep] + extra_deps,
 | 
					    dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libintl_dep, platform_dep, platform_socket_dep] + extra_deps,
 | 
				
			||||||
    link_args : [nodelete_link_args, no_undefined_args],
 | 
					    link_args : [nodelete_link_args, '-Wl,--no-undefined' ],
 | 
				
			||||||
    link_with : extra_libs,
 | 
					    link_with : extra_libs,
 | 
				
			||||||
    name_prefix : '',
 | 
					    name_prefix : '',
 | 
				
			||||||
    name_suffix : module_suffix,
 | 
					 | 
				
			||||||
    implicit_include_directories : false)
 | 
					    implicit_include_directories : false)
 | 
				
			||||||
endforeach
 | 
					endforeach
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <errno.h>
 | 
					#include <errno.h>
 | 
				
			||||||
#include <math.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <pulse/rtclock.h>
 | 
					#include <pulse/rtclock.h>
 | 
				
			||||||
#include <pulse/timeval.h>
 | 
					#include <pulse/timeval.h>
 | 
				
			||||||
| 
						 | 
					@ -179,7 +178,7 @@ struct userdata {
 | 
				
			||||||
#ifdef USE_SMOOTHER_2
 | 
					#ifdef USE_SMOOTHER_2
 | 
				
			||||||
        pa_smoother_2 *smoother;
 | 
					        pa_smoother_2 *smoother;
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
        pa_smoother *smoother;
 | 
					         pa_smoother *smoother;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
        uint64_t counter;
 | 
					        uint64_t counter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -240,7 +239,7 @@ static uint32_t rate_controller(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Choose the rate that is nearer to base_rate */
 | 
					    /* Choose the rate that is nearer to base_rate */
 | 
				
			||||||
    new_rate = new_rate_2;
 | 
					    new_rate = new_rate_2;
 | 
				
			||||||
    if (fabs(new_rate_1 - base_rate) < fabs(new_rate_2 - base_rate))
 | 
					    if (abs(new_rate_1 - base_rate) < abs(new_rate_2 - base_rate))
 | 
				
			||||||
        new_rate = new_rate_1;
 | 
					        new_rate = new_rate_1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return (uint32_t)(new_rate + 0.5);
 | 
					    return (uint32_t)(new_rate + 0.5);
 | 
				
			||||||
| 
						 | 
					@ -1711,6 +1710,9 @@ int pa__init(pa_module*m) {
 | 
				
			||||||
    PA_IDXSET_FOREACH(o, u->outputs, idx)
 | 
					    PA_IDXSET_FOREACH(o, u->outputs, idx)
 | 
				
			||||||
        output_verify(o);
 | 
					        output_verify(o);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (u->adjust_time > 0)
 | 
				
			||||||
 | 
					        u->time_event = pa_core_rttime_new(m->core, pa_rtclock_now() + u->adjust_time, time_callback, u);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_modargs_free(ma);
 | 
					    pa_modargs_free(ma);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
| 
						 | 
					@ -1733,9 +1735,6 @@ void pa__done(pa_module*m) {
 | 
				
			||||||
    if (!(u = m->userdata))
 | 
					    if (!(u = m->userdata))
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (u->sink && PA_SINK_IS_LINKED(u->sink->state))
 | 
					 | 
				
			||||||
        pa_sink_suspend(u->sink, true, PA_SUSPEND_UNAVAILABLE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    pa_strlist_free(u->unlinked_slaves);
 | 
					    pa_strlist_free(u->unlinked_slaves);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (u->sink_put_slot)
 | 
					    if (u->sink_put_slot)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -100,7 +100,7 @@ static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, void*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* No default sink, nothing to move away, just set the new default */
 | 
					    /* No default sink, nothing to move away, just set the new default */
 | 
				
			||||||
    if (!c->default_sink) {
 | 
					    if (!c->default_sink) {
 | 
				
			||||||
        pa_core_set_policy_default_sink(c, sink->name);
 | 
					        pa_core_set_configured_default_sink(c, sink->name);
 | 
				
			||||||
        return PA_HOOK_OK;
 | 
					        return PA_HOOK_OK;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,7 +116,7 @@ static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, void*
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Actually do the switch to the new sink */
 | 
					    /* Actually do the switch to the new sink */
 | 
				
			||||||
    pa_core_set_policy_default_sink(c, sink->name);
 | 
					    pa_core_set_configured_default_sink(c, sink->name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return PA_HOOK_OK;
 | 
					    return PA_HOOK_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -160,7 +160,7 @@ static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* No default source, nothing to move away, just set the new default */
 | 
					    /* No default source, nothing to move away, just set the new default */
 | 
				
			||||||
    if (!c->default_source) {
 | 
					    if (!c->default_source) {
 | 
				
			||||||
        pa_core_set_policy_default_source(c, source->name);
 | 
					        pa_core_set_configured_default_source(c, source->name);
 | 
				
			||||||
        return PA_HOOK_OK;
 | 
					        return PA_HOOK_OK;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -176,7 +176,7 @@ static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source,
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Actually do the switch to the new source */
 | 
					    /* Actually do the switch to the new source */
 | 
				
			||||||
    pa_core_set_policy_default_source(c, source->name);
 | 
					    pa_core_set_configured_default_source(c, source->name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return PA_HOOK_OK;
 | 
					    return PA_HOOK_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -253,14 +253,9 @@ static void thread_func(void *userdata) {
 | 
				
			||||||
                    pa_log_error("Could not write data into the stream ... ret = %i", ret);
 | 
					                    pa_log_error("Could not write data into the stream ... ret = %i", ret);
 | 
				
			||||||
                    u->thread_mainloop_api->quit(u->thread_mainloop_api, TUNNEL_THREAD_FAILED_MAINLOOP);
 | 
					                    u->thread_mainloop_api->quit(u->thread_mainloop_api, TUNNEL_THREAD_FAILED_MAINLOOP);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Run the rtpoll to process messages that other modules (module-combine-sink,
 | 
					 | 
				
			||||||
         * module-loopback and module-rtp-recv) may have placed in the queue. */
 | 
					 | 
				
			||||||
        pa_rtpoll_set_timer_relative(u->rtpoll, 0);
 | 
					 | 
				
			||||||
        if (pa_rtpoll_run(u->rtpoll) < 0)
 | 
					 | 
				
			||||||
            goto fail;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
fail:
 | 
					fail:
 | 
				
			||||||
    /* send a message to the ctl thread to ask it to either terminate us, or
 | 
					    /* send a message to the ctl thread to ask it to either terminate us, or
 | 
				
			||||||
| 
						 | 
					@ -701,13 +696,13 @@ static int do_init(pa_module *m) {
 | 
				
			||||||
    u->msg = pa_msgobject_new(tunnel_msg);
 | 
					    u->msg = pa_msgobject_new(tunnel_msg);
 | 
				
			||||||
    u->msg->parent.process_msg = tunnel_process_msg;
 | 
					    u->msg->parent.process_msg = tunnel_process_msg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* The rtpoll created here is only run for the sake of module-combine-sink. It must
 | 
					    /* The rtpoll created here is never run. It is only necessary to avoid crashes
 | 
				
			||||||
     * exist to avoid crashes when module-tunnel-sink-new is used together with
 | 
					     * when module-tunnel-sink-new is used together with module-loopback or
 | 
				
			||||||
     * module-loopback or module-combine-sink. Both modules base their asyncmsgq on the
 | 
					     * module-combine-sink. Both modules base their asyncmsq on the rtpoll provided
 | 
				
			||||||
     * rtpoll provided by the sink. module-loopback and combine-sink only work because
 | 
					     * by the sink. module-loopback and combine-sink only work because they call
 | 
				
			||||||
     * they call pa_asyncmsq_process_one() themselves. module-combine-sink does this
 | 
					     * pa_asyncmsq_process_one() themselves. module_rtp_recv also uses the rtpoll,
 | 
				
			||||||
     * however only for the audio_inq, so without running the rtpoll, messages placed
 | 
					     * but never calls pa_asyncmsq_process_one(), so it will not work in combination
 | 
				
			||||||
     * in control_inq would never be executed. */
 | 
					     * with module-tunnel-sink-new. */
 | 
				
			||||||
    u->rtpoll = pa_rtpoll_new();
 | 
					    u->rtpoll = pa_rtpoll_new();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    default_sink_name = pa_sprintf_malloc("tunnel-sink-new.%s", remote_server);
 | 
					    default_sink_name = pa_sprintf_malloc("tunnel-sink-new.%s", remote_server);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue