Commit graph

1793 commits

Author SHA1 Message Date
David Henningsson
13e1c4bdee alsa: Improve "well known descriptions" for ports
* If we don't have "Digital Speakers", we should say "Speakers"
   instead of "Analog Speakers", and similar for other ports.
 * Change "IEC958" to "S/PDIF" (more well known name)
 * Add new ports and mappings for HDMI
 * Change "Internal" to "Built-in" for the card name

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-01-30 11:17:07 +00:00
David Henningsson
6c5eba6914 alsa-mixer: Allow speaker port to control "Front Speaker"
"Front Speaker", "Surround Speaker" seems to be a common enough name
to make it into alsa-utils, so we should probably care about it as
well. In this case, there was a macbook pro whose speakers didn't work
without these controls.

BugLink: http://bugs.launchpad.net/bugs/551441
Reported-by: Jeroen T. Vermeulen <jtv@canonical.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-01-30 11:17:07 +00:00
Peter Meerwald
b351e06817 fix the ever-popular 'the the' typo
some are comments, some are user-visible doxygen text and documentation
2012-01-28 17:51:59 +02:00
Tanu Kaskinen
ea2b80b20a stream-restore: Don't verify entry validity needlessly.
clean_up_db() makes sure that all entries in the database
are valid.
2012-01-28 16:43:49 +02:00
Tanu Kaskinen
e5a3d40080 stream-restore: Clean up the database at startup.
Fixes a crash: https://bugs.freedesktop.org/show_bug.cgi?id=44522
2012-01-28 16:43:49 +02:00
Tanu Kaskinen
54ca23df6f bluetooth: Change function name add_matches to update_matches.
A function that is used for removing matches should not be
called add_matches.
2012-01-28 14:16:23 +02:00
Tanu Kaskinen
8846239be7 bluetooth: Remove the right match in the proximity module.
The original intention of this code was probably that if
adding filter1 succeeded but adding filter2 failed, then
filter1 should be removed so that either both or none of the
filters get added.
2012-01-28 14:16:16 +02:00
Tanu Kaskinen
7e4eef2179 dbus: Give NULL as the error parameter to dbus_bus_remove_match().
We didn't do anything anyway in case of failures. When we
give NULL as the error, dbus_bus_remove_match() can act
asynchronously, so it becomes faster. Also, the bus daemon
can avoid sending any replies, which reduces the amount of
traffic.
2012-01-28 14:15:42 +02:00
David Henningsson
c5dcf5723b alsa: Fix log message "synchronous volume" -> "deferred volume"
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-01-17 16:58:40 +05:30
Arun Raghavan
413adcf964 alsa-mixer: Fix mixer path for AC3 profiles
The recent change to turn off the IEC958 element for analog paths
exposed a bug in AC3 profiles. These were inheriting the analog output
path instead of explicitly selecting the iec958 path.

Thanks to David Henningsson for pointing this out.
2012-01-17 16:58:40 +05:30
Tanu Kaskinen
717701aa71 bluetooth: When receiving D-Bus errors, print also the error message. 2012-01-14 16:57:03 +02:00
Arun Raghavan
42ebc01ee9 alsa-mixer: Turn off the IEC958 element for analog outputs
This is needed for the Creative Audigy CA0106 to work. Also makes sure
that the LED for optical out is shut down in analog modes on MacBooks
(these share a port for analog and digital output).

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=44741
2012-01-14 10:19:17 +05:30
Peter Meerwald
7ea740b2c8 alsa: Mention correct ALSA function in debug log 2012-01-11 22:09:26 +05:30
David Henningsson
45262959e2 alsa-mixer: Refactor pa_alsa_profile_set_probe().
Increase readability of the pa_alsa_profile_set_probe function of
alsa-mixer.c

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-01-06 12:10:13 +02:00
David Henningsson
5905094889 alsa-mixer: When selecting an input, turn off boosts of other inputs
Just like we turn off the "Front Mic" element when we select "Rear Mic",
we should also turn off the "Front Mic Boost" element. And the same for
the other inputs.

Reported-by: Len Owens <len@ovenwerks.net>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-01-05 19:19:56 +05:30
Pino Toscano
e2876aeb40 module-rtp-recv: fail when SO_TIMESTAMP is not defined
SO_TIMESTAMP is not POSIX and not available in any platform, so just fail
if the current platform does not have it.

See bug #42715
2012-01-03 00:20:04 +05:30
Pino Toscano
992333697f rtp: use the right type when checking cmsg_type
Use SCM_* instead of SO_* when checking the type of each cmsghdr.

See bug #42715
2012-01-03 00:20:04 +05:30
Pino Toscano
6aa84d6db0 pipe: use pa_pipe_buf instead of the macro PIPE_BUF
This helps when porting to platforms that lack PIPE_BUF.

See bug #42715
2012-01-03 00:20:04 +05:30
Peter Meerwald
be9ef2e96c echo-cancel: Better handling of error conditions in test 2011-12-14 21:53:39 +05:30
Peter Meerwald
6eb0f133c4 echo-cancel: Begin log message with uppercase letter 2011-12-14 21:52:17 +05:30
Peter Meerwald
f40df053c8 echo-cancel: Set file mode to binary in test code 2011-12-14 21:52:05 +05:30
Peter Meerwald
dc5a39b124 echo-cance: Make Adrian canceller optional
makes the Adrian echo canceller implementation optional at compile time

this patch supersedes an earlier patch proposal and addresses the following
comments:
* separate patch from speex dependency rework (Arun)
* check that at least one EC implementation is available (Arun)
* properly align yes/no in configure summary for Adrian (Frederic)
2011-12-13 09:16:32 +05:30
Peter Meerwald
5f2286e6f7 build-sys: Make speex library optional
make speex library dependency optional, this affects the resampler
and the echo canceller module

this patch supersedes an earlier patch proposal and addresses the following
comments:
* fix order of pa_echo_canceller_method_t enum and ec_table (Frederic)
* the default resampler is speex if available as before, otherwise ffmpeg (Arun)
* does not touch the Adrian EC implementation (see separate patch) (Arun)
2011-12-13 09:10:08 +05:30
Peter Meerwald
c6b95d5235 pstream: Fix spelling of 'receive'.
These functions are not exported in the map file and thus do
not form part of the API and can be corrected without any problem.
2011-12-12 22:36:39 +00:00
Tanu Kaskinen
ba33ae4790 alsa-mixer: Remove unused pa_alsa_path_set_probe() declaration. 2011-12-05 20:42:44 +02:00
David Henningsson
c1f3f7709f Fixup a few things in the new path probing
* If mapping_probe_paths() fails to open the mixer, all paths are now
removed from the mapping's path sets.
 * pa_path_set.probed isn't really used for anything (removed).
 * If profile probing is configured to be skipped, mapping_paths_probe()
should still be called.

Thanks to Tanu for spotting.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-12-02 17:51:11 +02:00
David Henningsson
426daaf6bb alsa: add card ports and path probe cache
To be able to add ports to all profiles, we need to probe all
profiles at startup. To speed this up, we now have a cache of
probes paths which is owned by the profile set. Since paths
are now owned by the profile set, the path set must now have
a hashmap of paths instead of a linked list.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-12-01 21:49:17 +02:00
David Henningsson
078a39af88 alsa: Ignore the virtual "thinkpad-acpi" card
The thinkpad ACPI driver sometimes creates a virtual sound card,
which at best exposes a volume control. Save some startup time, and
unnecessary error messages in the log, by ignoring it.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-11-30 12:02:03 +00:00
Peter Meerwald
8fc8d3d586 echo-cancel: Fix memory leak in test program
memory for pa_echo_canceller is allocated in init_common() a second time,
hence the allocated memory in main() is leaked
2011-11-29 10:08:04 +05:30
Arun Raghavan
23fb081795 echo-cancel: Fix warning for undefined HAVE_WEBRTC 2011-11-28 15:16:55 +05:30
Maarten Bosmans
e8028304b3 win32: Avoid some compiler warnings when cross-compiling for mingw32
Autoconf documentation says that AC_FUNC_SELECT_ARGTYPES shouldn't be used anyway.
2011-11-27 16:24:48 +00:00
Colin Guthrie
8969bccdd9 x11: Drop unneeded 'struct' and use the typedef directly. 2011-11-27 15:42:52 +00:00
Mikel Astiz
e199077eca bluetooth: Fix property reply handling for hfgw 2011-11-27 14:54:01 +00:00
David Henningsson
47f28a5843 Notify port available status changes, and update protocol version
The recommended way of setting available status is to call
pa_device_port_set_available, which will send a subscription event
to the relevant card. It will also fire a hook.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-11-26 16:58:37 +02:00
David Henningsson
961ec210a6 Introduce "available" concept for ports, and communicate that to clients. Bump protocol version to 24.
Note: There is still no notification when status availability changes.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-11-26 13:47:33 +02:00
Arun Raghavan
fabb28f935 filters: Handle echo-cancel streams better
This makes handling of echo-cancel streams (and potentially other
filters that need to work with multiple streams) cleaner. We do this by
adding the ability to apply filter on a group of streams rather than
always treating streams individually.

This is required, for example, when changing the input source for an
echo-cancel source output. When this happens, we want to change the
module-echo-cancel instance to actually cancel between the new source
and old sink.

To do this when one stream in a group moves, we create a new filter
instance between the current master sink/source pair and move the
relevant streams to the virtual sink/source from this new instance.
2011-11-24 13:03:26 +05:30
Arun Raghavan
1798c653db proplist: Add internal API to get stream group
This moves out code from module-stream-restore and makes an internal API
out of it to get a "stream group" for a given sink input or source output.
This is factored out for reuse in module-filter-*.

The stream group basically provides some means of attaching a logical
identification to the stream (by role, application id, etc.).
2011-11-24 13:03:26 +05:30
Arun Raghavan
c30a68ebbd filters: Allow a filter to have both sink and source
This sets the base for better representing module-echo-cancel. This
patch itself should change no behaviour -- it only makes way for other
changes.
2011-11-24 12:35:48 +05:30
Arun Raghavan
aaf0f5bd6e filters: Fix the master source/sink when autoloaded
When autoloaded, it is expected that module-filter-apply (or whatever is
loading us) will take care of applying the filter on the correct
sink/source master. Instead of adding complexity by tracking what is
currently being filtered, we just disallow filtering anything except the
original master sink/source and let module-filter-apply or whatever is
loading us deal with dynamic sink/source changes.
2011-11-24 12:35:48 +05:30
Arun Raghavan
ac3d66f978 echo-cancel: Use more human-friendly descriptions
This makes what devices are being cancelled clearer in the UI (at the
cost of being somewhat less clear when multiple devices of the same name
are plugged, but at least that's a much smaller set than everyone).
2011-11-23 12:00:29 +05:30
Arun Raghavan
4b7b244564 echo-cancel: Use speex by default if webrtc isn't available
Thanks to Peter Meerwald <pmeerw@pmeerw.net> for pointing this out.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=42925
2011-11-15 12:51:32 +05:30
Maarten Bosmans
c2976b1f87 oss: Use log2 function from core-util instead of own implementation 2011-11-14 11:08:04 +05:30
Maarten Bosmans
93f46b92c7 Squash unused variable compiler warning 2011-11-14 11:08:04 +05:30
Arun Raghavan
d320ae029b alsa: Minor debug code cleanup
Remove a trap on underrun and uncomment a couple of useful debug prints
(still enabled only when DEBUG_TIMING is defined).
2011-11-14 10:54:18 +05:30
Arun Raghavan
cc89b4aff1 echo-cancel: Make WebRTC the default canceller
Works pretty well, and isn't a CPU hog, so let's use it!
2011-11-07 19:36:23 +05:30
Arun Raghavan
c3d714693c echo-cancel: Turn WebRTC analog gain control on by default
Seems to be pretty well-behaved.
2011-11-07 19:36:08 +05:30
Arun Raghavan
fb02d50fe3 echo-cancel: Hook up WebRTC analog gain control 2011-11-07 17:37:50 +05:30
Arun Raghavan
3d2f2424eb echo-cancel: Add infrastructure for cancellers to do AGC
This adds some infrastructure for canceller implementations to also
perform acoustic gain control. Cancellers now have a couple of new API
calls that allow them to get/set capture volume.

This is made slightly complex by the fact that cancellation happens in
thread context while most volume mangling needs to be done in main
context. To deal with this, while getting the volume we save source
volume updates as they are propagated to thread context and use this
cached value for queries. To set the volume, we send an async message to
main context and let that set the source volume.
2011-11-07 17:37:50 +05:30
Arun Raghavan
0d13f6ebd2 echo-cancel: Fix webrtc gain control initialisation 2011-11-04 15:25:33 +05:30
Lars R. Damerow
1e6eda8eda alsa: fixed_latency_range modarg for module-alsa-card 2011-11-03 21:31:48 +01:00