summaryrefslogtreecommitdiffstats
path: root/audio/audio.c
Commit message (Collapse)AuthorAgeFilesLines
* audio: split sample conversion and volume mixingMichael Walle2011-01-121-5/+6
| | | | | | | | | Refactor the volume mixing, so it can be reused for capturing devices. Additionally, it removes superfluous multiplications with the nominal volume within the hardware voice code path. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: malc <av1474@comtv.ru>
* audio: Only use audio timer when necessarymalc2010-11-181-14/+10
| | | | | | | Originally proposed by Gerd Hoffmann. Signed-off-by: malc <av1474@comtv.ru> Acked-by: Gerd Hoffmann <kraxel@redhat.com>
* spice: add audioGerd Hoffmann2010-11-091-0/+3
| | | | | | | | | | | | | | | | | | | Add support for the spice audio interface. With this patch applied audio can be forwarded over the network from/to the spice client. Both recording and playback is supported. The driver is first in the driver list, but the can_be_default flag is set only in case spice is active. So if you have the spice protocol enabled the spice audio driver is the default one, otherwise whatever comes first after spice in the list. Overriding the default using QEMU_AUDIO_DRV works in any case. [ v2: audio codestyle: add spaces before open parenthesis ] [ v2: add const to silence array ] Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Cc: malc <av1474@comtv.ru> Signed-off-by: malc <av1474@comtv.ru>
* savevm: Add DeviceState paramAlex Williamson2010-07-061-1/+1
| | | | | | | | | | When available, we'd like to be able to access the DeviceState when registering a savevm. For buses with a get_dev_path() function, this will allow us to create more unique savevm id strings. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* monitor: Separate "default monitor" and "current monitor" cleanlyMarkus Armbruster2010-03-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commits 376253ec..731b0364 introduced global variable cur_mon, which points to the "default monitor" (if any), except during execution of monitor_read() or monitor_control_read() it points to the monitor from which we're reading instead (the "current monitor"). Monitor command handlers run within monitor_read() or monitor_control_read(). Default monitor and current monitor are really separate things, and squashing them together is confusing and error-prone. For instance, usb_host_scan() can run both in "info usbhost" and periodically via usb_host_auto_check(). It prints to cur_mon, which is what we want in the former case: the monitor executing "info usbhost". But since that's the default monitor in the latter case, it periodically spams the default monitor there. A few places use cur_mon to log stuff to the default monitor. If we ever log something while cur_mon points to current monitor instead of default monitor, the log temporarily "jumps" to another monitor. Whether that can or cannot happen isn't always obvious. Maybe logging to the default monitor (which may not even exist) is a bad idea, and we should log to stderr or a logfile instead. But that's outside the scope of this commit. Change cur_mon to point to the current monitor. Create new default_mon to point to the default monitor. Update users of cur_mon accordingly. This fixes the periodical spamming of the default monitor by usb_host_scan(). It also stops "log jumping", should that problem exist.
* audio: include more information into audio_bug's outputmalc2010-01-171-0/+9
| | | | Signed-off-by: malc <av1474@comtv.ru>
* audio: port to vmstateJuan Quintela2009-12-031-17/+9
| | | | | Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* audio: use correct email addressmalc2009-09-181-1/+1
| | | | Signed-off-by: malc <av1474@comtv.ru>
* audio: internal API changemalc2009-09-181-22/+11
| | | | | | | | | pcm_ops.run_out now takes number of live samples (which will be always greater than zero) as a second argument, every driver was calling audio_pcm_hw_get_live_out anyway with exception of fmod which used audio_pcm_hw_get_live_out2 for no good reason. Signed-off-by: malc <av1474@comtv.ru>
* audio: introduce audio_pcm_hw_clip_out helper functionmalc2009-09-181-0/+22
| | | | Signed-off-by: malc <av1474@comtv.ru>
* audio: use muldiv64 where it makes sensemalc2009-09-181-1/+2
| | | | Signed-off-by: malc <av1474@comtv.ru>
* audio: Fix typo that broke QEMU_AUDIO_ADC_TRY_POLLJan Kiszka2009-09-131-1/+1
| | | | | Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: malc <av1474@comtv.ru>
* Fix sys-queue.h conflict for goodBlue Swirl2009-09-121-19/+19
| | | | | | | | | | | | | | | Problem: Our file sys-queue.h is a copy of the BSD file, but there are some additions and it's not entirely compatible. Because of that, there have been conflicts with system headers on BSD systems. Some hacks have been introduced in the commits 15cc9235840a22c289edbe064a9b3c19c5f49896, f40d753718c72693c5f520f0d9899f6e50395e94, 96555a96d724016e13190b28cffa3bc929ac60dc and 3990d09adf4463eca200ad964cc55643c33feb50 but the fixes were fragile. Solution: Avoid the conflict entirely by renaming the functions and the file. Revert the previous hacks. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* audio: remove lsbindex/popcount in favour of host-utils's ctz32malc2009-09-121-17/+0
| | | | Signed-off-by: malc <av1474@comtv.ru>
* audio: poll mode infrastructuremalc2009-09-121-11/+83
| | | | Signed-off-by: malc <av1474@comtv.ru>
* Unexport ticks_per_sec variable. Create get_ticks_per_sec() functionJuan Quintela2009-09-111-1/+1
| | | | | Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Fix typomalc2009-08-121-1/+1
|
* Aestheticsmalc2009-08-111-52/+78
| | | | | | | Reformat to make item borders more visible Fix cases of stray tabs and vertical misalignments Signed-off-by: malc <av1474@comtv.ru>
* Use C99 initializers for audio_optionJuan Quintela2009-08-111-40/+53
| | | | Signed-off-by: Juan Quintela <quintela@redhat.com>
* Generate config-host.h from config-host.makJuan Quintela2009-07-271-1/+6
| | | | | | | | Generate CONFIG_AUDIO_DRIVERS. Order is important here, because the first driver in the list is the one used by default. Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Fix period initializationmalc2009-07-241-1/+1
| | | | Signed-off-by: malc <av1474@comtv.ru>
* use struct initializer for audio.cJuan Quintela2009-07-221-26/+26
| | | | | Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Remove any pretense that there can be more than one AudioStatemalc2009-05-141-38/+33
|
* Make AUD_init failure fatalPaul Brook2009-05-121-24/+20
| | | | | | | | | | | | Failure to initialize the audio subsystem is not handled consistently. Where it is handled it has guest visible effects, which is wrong. We already have a "nosound" audio driver as a last resort, so trying to proceed without an audio backend seems pointless. Also protect against multiple calls to AUD_init so that this can be pushed down into individual devices. Signed-off-by: Paul Brook <paul@codesourcery.com>
* monitor: Rework API (Jan Kiszka)aliguori2009-03-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the monitor API and prepare it for decoupled terminals: term_print functions are renamed to monitor_* and all monitor services gain a new parameter (mon) that will once refer to the monitor instance the output is supposed to appear on. However, the argument remains unused for now. All monitor command callbacks are also extended by a mon parameter so that command handlers are able to pass an appropriate reference to monitor output services. For the case that monitor outputs so far happen without clearly identifiable context, the global variable cur_mon is introduced that shall once provide a pointer either to the current active monitor (while processing commands) or to the default one. On the mid or long term, those use case will be obsoleted so that this variable can be removed again. Due to the broad usage of the monitor interface, this patch mostly deals with converting users of the monitor API. A few of them are already extended to pass 'mon' from the command handler further down to internal functions that invoke monitor_printf. At this chance, monitor-related prototypes are moved from console.h to a new monitor.h. The same is done for the readline API. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6711 c046a42c-6fe2-441c-8c8c-71466251a162
* Avoid running audio ctl's when vm is not runningmalc2009-02-181-2/+9
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6627 c046a42c-6fe2-441c-8c8c-71466251a162
* audio: remove error handling from qemu_malloc() callers (Avi Kivity)aliguori2009-02-051-15/+8
| | | | | | | | Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6528 c046a42c-6fe2-441c-8c8c-71466251a162
* Rework vm_state_change notifiers (Jan Kiszka)aliguori2009-01-221-1/+2
| | | | | | | Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6402 c046a42c-6fe2-441c-8c8c-71466251a162
* Use the ARRAY_SIZE() macro where appropriate.malc2008-12-221-4/+4
| | | | | | | | | Change from v1: Avoid changing the existing coding style in certain files. Signed-off-by: Stuart Brady <stuart.brady@gmail.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6120 c046a42c-6fe2-441c-8c8c-71466251a162
* Make audio violate POSIX lessmalc2008-12-031-13/+13
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5864 c046a42c-6fe2-441c-8c8c-71466251a162
* Attached patch fixes a series of this warningblueswir12008-11-161-2/+2
| | | | | | | | | | | when compiling on NetBSD: warning: array subscript has type 'char' Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5727 c046a42c-6fe2-441c-8c8c-71466251a162
* Rename hz to hertz to keep AIX happymalc2008-11-121-6/+6
| | | | | | | The issue was first noticed/addressed by Laurent Vivier in his QEMU on AIX patches. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5712 c046a42c-6fe2-441c-8c8c-71466251a162
* Set default audio timer period to a sane value (otherwise qemu becomes ↵malc2008-11-041-1/+1
| | | | | | unusable if -icount N is specified) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5623 c046a42c-6fe2-441c-8c8c-71466251a162
* Fix more r5087 breakagemalc2008-09-281-4/+1
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5337 c046a42c-6fe2-441c-8c8c-71466251a162
* Revert a part of r5087 that didn't need fixing (thanks to malc for spotting)blueswir12008-08-271-1/+1
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5090 c046a42c-6fe2-441c-8c8c-71466251a162
* Fix more bugs in r5044blueswir12008-08-251-1/+1
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5087 c046a42c-6fe2-441c-8c8c-71466251a162
* Fix OpenBSD linker warningsblueswir12008-08-211-7/+11
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5044 c046a42c-6fe2-441c-8c8c-71466251a162
* Change the way audio is configuredmalc2008-06-251-21/+1
| | | | | | | | | | Instead of having separate option for each card and driver use --audio-drv-list and --audio-card-list options. Under Linux it allows to set the default(first probed) driver to something other than OSS. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4792 c046a42c-6fe2-441c-8c8c-71466251a162
* Add missing [SU]32malc2008-06-221-0/+6
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4777 c046a42c-6fe2-441c-8c8c-71466251a162
* First cut at WM8750 volume control (Jan Kiszka).balrog2008-05-041-2/+20
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4321 c046a42c-6fe2-441c-8c8c-71466251a162
* Typo fixaurel322008-04-071-1/+1
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4163 c046a42c-6fe2-441c-8c8c-71466251a162
* pthreads-based audio and miscellaneous audio clean-up (malc).balrog2008-01-141-1/+4
| | | | | | | ESD support (malc, Frederick Reeve). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3917 c046a42c-6fe2-441c-8c8c-71466251a162
* Add statics and missing #includes for prototypes.pbrook2007-11-181-2/+3
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3683 c046a42c-6fe2-441c-8c8c-71466251a162
* Break up vl.h.pbrook2007-11-171-1/+5
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3674 c046a42c-6fe2-441c-8c8c-71466251a162
* Spelling fix, by Stuart Brady.ths2007-07-121-4/+4
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3076 c046a42c-6fe2-441c-8c8c-71466251a162
* Qemu support for S32 and U32 alsa output, by Vassili Karpov.ths2007-02-171-16/+94
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2427 c046a42c-6fe2-441c-8c8c-71466251a162
* swapped memset args (Charles Coffing)bellard2006-08-031-2/+2
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2081 c046a42c-6fe2-441c-8c8c-71466251a162
* audio capture fixes (malc)bellard2006-07-181-0/+5
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2061 c046a42c-6fe2-441c-8c8c-71466251a162
* audio capture to wab files (malc)bellard2006-07-161-50/+122
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2059 c046a42c-6fe2-441c-8c8c-71466251a162
* audio endianness API changes (malc)bellard2006-07-041-22/+24
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2042 c046a42c-6fe2-441c-8c8c-71466251a162
OpenPOWER on IntegriCloud