OSDN Git Service
Takashi Iwai [Mon, 14 Jan 2008 16:24:14 +0000 (17:24 +0100)]
Add missing remix_areas_* for x86-64
The remix_areas_* were missing the dmix x86-64 code. Added now.
Takashi Iwai [Mon, 14 Jan 2008 16:15:13 +0000 (17:15 +0100)]
Add SND_PCM_TSTAMP_MMAP back
SND_PCM_TSTAMP_MMAP is used (blidnly) by portaudio, unfortunately.
Re-added it not to break API.
Clemens Ladisch [Mon, 14 Jan 2008 07:53:06 +0000 (08:53 +0100)]
fix memory leak in snd_config_update_r error path
Do not forget to free the memory for the file name when a file to be
read by snd_config_update_r() cannot be accessed.
Clemens Ladisch [Mon, 14 Jan 2008 07:52:16 +0000 (08:52 +0100)]
pcm dmix plugin: fix generic direct remixing
In the case of the sum buffer being uninitialized, the source sample
must be negated not only when writing to the sum but also when writing
to the destination.
Clemens Ladisch [Mon, 14 Jan 2008 07:51:45 +0000 (08:51 +0100)]
check availability of CLOCK_MONOTONIC
Use monotonic timestamps only after checking that CLOCK_MONOTONIC is
actually supported by the C library.
Clemens Ladisch [Mon, 14 Jan 2008 07:50:46 +0000 (08:50 +0100)]
pcm hw plugin: use TSTAMP only with old drivers
There is no need to call the TSTAMP ioctl with newer driver versions.
Clemens Ladisch [Mon, 14 Jan 2008 07:50:18 +0000 (08:50 +0100)]
pcm hw plugin: fix TTSTAMP version check
Fix the version check that determines the availability of the TTSTAMP
ioctl.
Clemens Ladisch [Mon, 14 Jan 2008 07:49:35 +0000 (08:49 +0100)]
pcm plug plugin: remove duplicated expression
Remove a needlessly duplicated expression.
Jaroslav Kysela [Fri, 11 Jan 2008 16:21:44 +0000 (17:21 +0100)]
Added possibility to disable also channel and format conversions + softvol.
Unified disable option using mode bits in snd_pcm_open().
Jaroslav Kysela [Fri, 11 Jan 2008 07:54:07 +0000 (08:54 +0100)]
SND_PCM_TSTAMP_MMAP -> SND_PCM_TSTAMP_ENABLE change
Jaroslav Kysela [Thu, 10 Jan 2008 09:01:14 +0000 (10:01 +0100)]
Implemented snd_pcm_rewind() for the dmix plugin
Takashi Iwai [Wed, 9 Jan 2008 16:21:09 +0000 (17:21 +0100)]
Don't use deprecated functions inside
Use the new functions in snd_pcm_sw_params_dump().
Takashi Iwai [Wed, 9 Jan 2008 16:17:58 +0000 (17:17 +0100)]
Avoid (null) in printf
Show '[builtin]' when the library name is NULL in error messages.
Takashi Iwai [Wed, 9 Jan 2008 16:17:14 +0000 (17:17 +0100)]
Fix exported symbols for hooks and functions
The functions dynamically loaded via plugin aren't fully listed
in the exported functions in Versions file. This caused errors at
opening devices with such plugins.
Jaroslav Kysela [Wed, 9 Jan 2008 12:50:45 +0000 (13:50 +0100)]
Impemented snd_pcm_htimestamp() function.
Jaroslav Kysela [Wed, 9 Jan 2008 10:13:34 +0000 (11:13 +0100)]
Add support for monotonic timestamps
Clemens Ladisch [Wed, 9 Jan 2008 08:42:42 +0000 (09:42 +0100)]
conf: show path of any missing configuration file
In all cases where a configuration file is not found, show an error
message with its full path.
Takashi Iwai [Wed, 9 Jan 2008 08:45:26 +0000 (09:45 +0100)]
Fix function declarations with old PCM API
The functions that are obsoleted in the last patches conflict with the
old PCM API. Fixed with ifdef.
Takashi Iwai [Tue, 8 Jan 2008 17:36:18 +0000 (18:36 +0100)]
Remove sleep_min and tick
The sleep_min and tick are removed features from the kernel.
This patch cleans the corresponding part in alsa-lib.
Takashi Iwai [Tue, 8 Jan 2008 17:35:29 +0000 (18:35 +0100)]
Remove PCM xfer_align
The PCM xfer_align is a removed feature from the kernel.
This patch cleans up the corresponding part in alsa-lib.
Takashi Iwai [Tue, 8 Jan 2008 17:34:36 +0000 (18:34 +0100)]
Remove indirect control access
The indirect control access is removed from the kernel.
This patch cleans the corresponding alsa-lib part.
Takashi Iwai [Fri, 21 Dec 2007 14:26:17 +0000 (15:26 +0100)]
Remove obsolete seq event entries in seq-decoder
Removed obsolete seq-devent entries in seq-decoder.
Takashi Iwai [Fri, 21 Dec 2007 14:25:47 +0000 (15:25 +0100)]
Add deprecated attribute to obsolete functions
Added __attribute__((deprecated)) to declarations of obsolete functions.
Jaroslav Kysela [Mon, 17 Dec 2007 08:04:42 +0000 (09:04 +0100)]
Added SNDRV_PCM_IOCTL_TTSTAMP and updated PCM API version to 2.0.9
Takashi Iwai [Fri, 14 Dec 2007 14:19:03 +0000 (15:19 +0100)]
Add snd_pcm_ioplug_set_state() function
Added an exported function snd_pcm_ioplug_set_state() to change
the PCM state of ioplug from the plugin side (e.g. from another
thread).
Clemens Ladisch [Fri, 14 Dec 2007 08:11:01 +0000 (09:11 +0100)]
revert revision 2264:
23c4c0f5de40
The rounding done when converting to smaller sample widths fails for
saturated positive samples; in this case, the sample value overflows and
becomes negative. We are better off without rounding, even if we then
have quantization noise (of at most half the resolution of the least
significant bit).
ALSA bug#3360; Debian #437827; GNOME #436192; LP #116990; Mandriva #33908
Takashi Iwai [Thu, 13 Dec 2007 14:49:50 +0000 (15:49 +0100)]
Fix segfault with strdup(NULL) in softvol
The last change to fix the slave name may cause a segfault when
name=NULL is passed. Fixed now.
Clemens Ladisch [Mon, 10 Dec 2007 11:35:08 +0000 (12:35 +0100)]
dmix: add U8 support
Add support for direct mixing of U8 samples (for devices like some USB
headsets or the Tux Droid).
Clemens Ladisch [Mon, 10 Dec 2007 11:32:36 +0000 (12:32 +0100)]
dmix: simplify mix_areas()
The code for the three supported sample widths is almost the same, so it
makes sense to merge the three cases.
Clemens Ladisch [Mon, 10 Dec 2007 11:31:29 +0000 (12:31 +0100)]
dmix: rename mix_areas*
Rename all mix_areas* symbols so that they contain the sample width
instead of some meaningless number.
Jaroslav Kysela [Tue, 4 Dec 2007 15:55:00 +0000 (16:55 +0100)]
fix write in simple mixer API - python backends
Takashi Iwai [Fri, 30 Nov 2007 17:29:01 +0000 (18:29 +0100)]
Clean up Versions file
The entries in the current Versions file don't work as expected.
Since the first ALSA_0.9 has already snd_* global definitions, all
the rest are simply ignored. Some symbols (e.g. snd_hw_params_*)
indeed work because they have explicit symver definitions, but
ALSA_0.9.6 and later are all superfluous.
This patch clean up these useless entries. Also, the patch restricts
the matching patterns for _snd_* and __snd_* entries to reduce the
unneeded export symbols.
Takashi Iwai [Fri, 30 Nov 2007 17:26:13 +0000 (18:26 +0100)]
Make local functions really local
Rename the local functions to snd1_* so that they won't be exported
out of alsa-lib.
Some functions are still kept because aserver requires them. Sigh.
Clemens Ladisch [Fri, 30 Nov 2007 07:13:40 +0000 (08:13 +0100)]
oxygen: remove softvol plugin
Remove the softvol plugin from all other CMI8788 devices.
Clemens Ladisch [Fri, 30 Nov 2007 07:10:58 +0000 (08:10 +0100)]
oxygen: add channel status controls
Add mixer controls to manage the S/PDIF channel status bits.
Takashi Iwai [Wed, 28 Nov 2007 13:24:26 +0000 (14:24 +0100)]
softvol - add missing name
softvol can be also a pass-thru when the given control already exists
as a hardware control, and the name isn't set properly because of
slave creation. This patch fixes it.
Takashi Iwai [Mon, 26 Nov 2007 11:29:37 +0000 (12:29 +0100)]
Set PCM name properly in empty and asym plugins
The PCM name isn't set properly on empty and asym plugins due to its call
of snd_pcm_open_slave(). Now a new function snd_pcm_open_named_slave()
is created and make snd_pcm_open_slave() an inline function calling the
new one with name=NULL.
Jaroslav Kysela [Sun, 25 Nov 2007 22:20:50 +0000 (23:20 +0100)]
fix error code when controlC0 device has no enough permissions
See alsa bug#3600
Jaroslav Kysela [Sun, 25 Nov 2007 22:19:49 +0000 (23:19 +0100)]
fix error path in snd_config_hook_load_for_all_cards()
Takashi Iwai [Fri, 23 Nov 2007 14:46:48 +0000 (15:46 +0100)]
Fix mmap with multi plugin
The mmap of multi plugin seems broken (for a long time!) due to its
creation of local buffer via snd_pcm_mmap(). Since the multi plugin
just needs to shadow the mmap buffer of each slave, it now has
mmap_shadow=1 and its own mmap/unmap method to do shadowing.
Takashi Iwai [Wed, 21 Nov 2007 11:19:43 +0000 (12:19 +0100)]
Clean up using gettimestamp()
Introduce a new local function gettimestamp() to get the current timestamp.
Takashi Iwai [Wed, 21 Nov 2007 11:10:35 +0000 (12:10 +0100)]
Fix timestamp in status in PCM direct plugins
PCM direct plugins didn't update the timestamp properly.
Now it always starts the slave PCM with MMAP tstamp_mode so that the
timestamp will be being updated. When a client is set up as MMAP
tstamp_mode as well, simply copy this slave timestamp. Otherwise
status callback calculates the current timestamp as usual.
Takashi Iwai [Tue, 20 Nov 2007 14:29:10 +0000 (15:29 +0100)]
pcm - Limit the avail_min minimum size
Fix avail_min if it's less than period_size. The too small avail_min
is simply useless and the cause of CPU hog with rate plugin.
Clemens Ladisch [Mon, 19 Nov 2007 07:07:19 +0000 (08:07 +0100)]
oxygen: enhance configuration
Remove the now superfluous softvol plugin from the CMI8788
configuration, use 24-bit samples for dmix, and add an alias for the
AV200 driver.
Clemens Ladisch [Mon, 19 Nov 2007 06:55:49 +0000 (07:55 +0100)]
alsa.conf: cosmetic change
Add a whitespace to make the ctl.hw definition better readable.
Takashi Iwai [Fri, 16 Nov 2007 11:06:43 +0000 (12:06 +0100)]
Fix wrong return values in direct plugins
Fixed the codes returning error values that are not set properly
via errno.
Stas Sergeev [Mon, 12 Nov 2007 11:01:16 +0000 (12:01 +0100)]
Remove ugly hack in rate plugin poll_descriptors callback
The rate plugin has ugly hacks in poll_descriptors callback to adjust
avail_min when partial read/write occurs. This causes often unexpected
problems like XRUNs, especially with two-period cases.
Let's remove that beast, it's rather harmful than useful.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>
Clemens Ladisch [Mon, 12 Nov 2007 07:50:08 +0000 (08:50 +0100)]
simple mixer: fix calculation of control range
When calculating the value range of a control, the variables cannot be
initialized with zero because this would prevent the minimum from having
a value above zero or the maximum from having a value below zero.
Clemens Ladisch [Mon, 12 Nov 2007 07:49:10 +0000 (08:49 +0100)]
midiloop: use blocking mode
Busy waiting is evil - use blocking mode when reading the actual test data.
Takashi Iwai [Mon, 5 Nov 2007 11:46:46 +0000 (12:46 +0100)]
ioplug - Fix the refinement of period_* after periods
When changing only PERIODS after BUFFER_*, ioplug doesn't update
the corresponding PERIOD_* parameters properly. This should fix
ALSA bug#2601.
Takashi Iwai [Tue, 30 Oct 2007 13:28:30 +0000 (14:28 +0100)]
Re-add assert.h to asoundlib.h
Looks like many apps rely on implicit inclusion of assert.h in asoundlib.h.
Take it back again to make them happy.
Takashi Iwai [Tue, 30 Oct 2007 11:31:55 +0000 (12:31 +0100)]
Remove sequencer instrument layer
Remove obsoleted sequencer instrument layer from alsa-lib.
The old symbols are compiled in as default as dummy functions
(unless --disable-old-symbols is given to configure) so that
the old binaries can still work more or less.
Takashi Iwai [Tue, 30 Oct 2007 10:50:45 +0000 (11:50 +0100)]
Update asound_fm.h for patch loading over hwdep
Update asound_fm.h to add the new struct and ioctl for patch loading
over hwdep.
Takashi Iwai [Thu, 25 Oct 2007 13:36:03 +0000 (15:36 +0200)]
Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.
Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.
Takashi Iwai [Thu, 25 Oct 2007 13:34:43 +0000 (15:34 +0200)]
Fix gcc compile warnings
Fix gcc compile warnings with nasty const cast. Let's use simply macros
instead of inline functions. It's just an array access after all...
Takashi Iwai [Wed, 24 Oct 2007 11:04:14 +0000 (13:04 +0200)]
Export dB conversion helper functions
Export helper functions to convert dB level and range.
snd_tlv_*dB*() are to convert dB level or range directly from TLV data.
snd_ctl_*dB*() are to get dB level or range from a control element.
Takashi Iwai [Wed, 24 Oct 2007 10:53:08 +0000 (12:53 +0200)]
Change assert condition in error message handler
Activating assert() in the default error message handler isn't always
good for producitve systems. Make this optional and enable only when
a special configure option is given (i.e. for explicit debugging).
Takashi Iwai [Thu, 18 Oct 2007 09:10:35 +0000 (11:10 +0200)]
snd_pcm_dmix_close: raise semaphore if unable to discard
This patch causes snd_pcm_dmix_close() to up a semaphore after downing it
if it is unable to discard it. It prevents some deadlock that I am
getting when a couple of applications interact and one of them closes the
device and later re-opens it.
From: Mike Gorse <mgorse@mgorse.dhs.org>
Jaroslav Kysela [Mon, 15 Oct 2007 08:36:46 +0000 (10:36 +0200)]
Added tag v1.0.15 for changeset
9e2f117f24b9
Jaroslav Kysela [Mon, 15 Oct 2007 08:36:46 +0000 (10:36 +0200)]
release 1.0.15
Patch-level: Merged
Jaroslav Kysela [Mon, 15 Oct 2007 08:24:55 +0000 (10:24 +0200)]
Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
Jaroslav Kysela [Fri, 21 Sep 2007 08:40:55 +0000 (10:40 +0200)]
Added tag v1.0.15rc3 for changeset
d2c731f5701f
Jaroslav Kysela [Fri, 21 Sep 2007 08:40:55 +0000 (10:40 +0200)]
release 1.0.15rc3
Patch-level: Merged
Takashi Iwai [Thu, 20 Sep 2007 11:20:03 +0000 (13:20 +0200)]
Fix wrong offset calculation in snd_pcm_{read|write}_mmap()
The offset used in snd_pcm_{read|write}_mmap() is not the linear offset
but the offset in a ring buffer. It has to be rounded.
Stas Sergeev [Wed, 19 Sep 2007 19:29:41 +0000 (21:29 +0200)]
PC-Speaker config update
The attached patch updates the PC-Speaker.conf for the use of softvol.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>
Takashi Iwai [Mon, 17 Sep 2007 13:03:52 +0000 (15:03 +0200)]
Fix subdevice number to 0 for dmix/dsnoop
The dmix and dsnoop plugins need a fixed substream number instead of
the next-available one (-1) as the default number. Now it's set to 0.
Jaroslav Kysela [Wed, 12 Sep 2007 13:02:03 +0000 (15:02 +0200)]
changed python-incdir to python-includes for configure.in
Jaroslav Kysela [Wed, 12 Sep 2007 09:15:52 +0000 (11:15 +0200)]
Added tag v1.0.15rc2 for changeset
6e8e8b05cef4
Jaroslav Kysela [Wed, 12 Sep 2007 09:15:52 +0000 (11:15 +0200)]
release 1.0.15rc2
Patch-level: Merged
Takashi Iwai [Fri, 31 Aug 2007 14:41:19 +0000 (16:41 +0200)]
Allow empty pythonincdir option
The include path options can be empty if the python is installed in
the standard header path. So, configure shouldn't check its emptiness.
Takashi Iwai [Fri, 31 Aug 2007 14:40:07 +0000 (16:40 +0200)]
Fix a typo
$PYTHON_INCDIR itself already contains -I
Jaroslav Kysela [Fri, 31 Aug 2007 13:22:26 +0000 (15:22 +0200)]
improved python detection and added --with-pythonincdir for configure.in
Jaroslav Kysela [Thu, 30 Aug 2007 12:12:42 +0000 (14:12 +0200)]
alsa simple mixer - python basic abstraction - simplified using get/setArray
Jaroslav Kysela [Thu, 30 Aug 2007 08:23:29 +0000 (10:23 +0200)]
Added tag v1.0.15rc1 for changeset
0de58d1f43df
Jaroslav Kysela [Thu, 30 Aug 2007 08:23:29 +0000 (10:23 +0200)]
release 1.0.15rc1
Patch-level: Merged
Takashi Iwai [Wed, 29 Aug 2007 12:50:52 +0000 (14:50 +0200)]
Add dynamically created files to ignore file
Takashi Iwai [Wed, 29 Aug 2007 12:48:31 +0000 (14:48 +0200)]
Handle "Input Source" as a capture element
Some drivers use "Input Source" as the capture source mixer element because
mixer abstraction layer can't handle multiple "Capture Source" elements.
This patch adds a hack to handle Input Source as a capture route, and let
mixer apps know that it's a capture stuff, at least.
Takashi Iwai [Wed, 22 Aug 2007 12:24:58 +0000 (14:24 +0200)]
Add the missing include/mixer.h to doxygen.cfg
Takashi Iwai [Wed, 22 Aug 2007 11:12:21 +0000 (13:12 +0200)]
Add missing CMI8788.conf to Makefile.am
Takashi Iwai [Wed, 22 Aug 2007 09:41:58 +0000 (11:41 +0200)]
Continue build even if python-config doesn't exist
It's annoying that the configure script stops with an error if
python-config doesn't exist. It's no fatal error, so the configure
should disable the python components and continue.
Clemens Ladisch [Wed, 22 Aug 2007 07:42:13 +0000 (09:42 +0200)]
cmi8788: add alsa-lib config
Add a .conf file to enable dmix/dsnoop and softvol for CMI8788.
Using dmix helps mask the bug that all audio is forced to 48 kHz. :-)
Takashi Iwai [Wed, 15 Aug 2007 13:54:47 +0000 (15:54 +0200)]
Fix a typo in configure script
Takashi Iwai [Wed, 15 Aug 2007 12:22:33 +0000 (14:22 +0200)]
Fix use after free
Fixed use after free (ALSA bug#3300).
Takashi Iwai [Fri, 10 Aug 2007 15:41:49 +0000 (17:41 +0200)]
Add missing pcm_empty.c in doxygen configuration
Clemens Ladisch [Fri, 10 Aug 2007 07:41:17 +0000 (09:41 +0200)]
seq_midi_event: fix parsing of F9/FD bytes
Check for a valid event type when encoding a system real-time message to
prevent the bytes F9 or FD resulting in an empty sequencer message.
Clemens Ladisch [Fri, 10 Aug 2007 07:40:29 +0000 (09:40 +0200)]
seq_midi_event: fix parsing of missing data bytes
Reorganize the encoder logic to prevent status bytes that appear where
data bytes are expected from being interpreted as data bytes.
Clemens Ladisch [Fri, 10 Aug 2007 07:39:24 +0000 (09:39 +0200)]
seq_midi_event: prevent running status after system messages
Reset the event type after encoding a system message to prevent any
following data bytes from being interpreted as data for a running status
system message, which is not allowed in MIDI.
Clemens Ladisch [Fri, 10 Aug 2007 07:38:47 +0000 (09:38 +0200)]
seq_midi_event: fix encoding of data bytes after end of sysex
Create a new state ST_INVALID for the encoder to prevent data bytes at
the beginning of a stream or after a sysex message being interpreted as
note-off parameters.
Takashi Iwai [Mon, 6 Aug 2007 14:09:27 +0000 (16:09 +0200)]
Don't set PCM pointer at error in snd_pcm_hw_open()
snd_pcm_hw_open() may set a non-NULL to pcmp even if it returns an error.
Some codes like dmix expects it's NULL, and cause the double free().
Clemens Ladisch [Fri, 13 Jul 2007 10:44:43 +0000 (12:44 +0200)]
remove unused variables
Remove some unused variables that the compiler warned about.
Takashi Iwai [Wed, 11 Jul 2007 15:44:09 +0000 (17:44 +0200)]
Split mmap-emulation code from hw layer
Move out mmap-emulation code from hw layer to its own plugin.
This cleans up the mess in pcm_hw.c.
Takashi Iwai [Wed, 11 Jul 2007 14:55:54 +0000 (16:55 +0200)]
Fix clean-up of header files
Use DISTCLEANFILES instead of CLEANFILES for removal of dynamic
header files.
Jaroslav Kysela [Wed, 11 Jul 2007 08:10:12 +0000 (10:10 +0200)]
mixer simple basic abstraction - added python binding
reasons:
- rapid development
- class-like code structure
- more readable code
features:
- hcontrol binding is managed from python (opportunity to create
virtual mixer without driver or join multiple cards to behave as one)
Takashi Iwai [Tue, 10 Jul 2007 13:58:41 +0000 (15:58 +0200)]
Create asoundlib.h dynamically according to configure options
Create asoundlib.h dynamically according to configure options.
This avoids the inclusion of unused API headers.
Also don't install unused API headers.
Takashi Iwai [Thu, 5 Jul 2007 10:58:10 +0000 (12:58 +0200)]
Added PS3 configuration
Added PS3 configuration.
No iec958 PCM at this stage since it doesn't support passthru yet.
Takashi Iwai [Thu, 5 Jul 2007 10:15:16 +0000 (12:15 +0200)]
fix mmap emulation bug of recording doesn't work
From: Roy Huang <royhuang9@gmail.com>
Record doesn't work if enabling mmap emulation and rate conversion
needed, this patch fix this bug.
Takashi Iwai [Tue, 3 Jul 2007 18:22:21 +0000 (20:22 +0200)]
Fix undefined references in namehint.c
Fixed undefined references in namehint.c when not all components are
selected via configure options.
Takashi Iwai [Tue, 3 Jul 2007 17:55:57 +0000 (19:55 +0200)]
Use S16_BE as dmix format for PPC drivers
PPC drivers should use S16_BE as the base format of dmix/dsnoop.
This avoid confusion of format endianess via CPU emulation.
Takashi Iwai [Tue, 3 Jul 2007 17:52:33 +0000 (19:52 +0200)]
Add support of little-endian on i386/x86_64 dmix
i386/x86_64 alsa-lib may need to handle big-endian formats, e.g.
when running via qemu on PPC. The generic dmix code already has
both endian support, so let's use it as fallback.
Takashi Iwai [Thu, 28 Jun 2007 11:26:25 +0000 (13:26 +0200)]
Fix the build of lfloat plugin
Fixed the wrong check of softfloat in configure, which resulted in
disablement of lfloat plugin.