VirtualBox

source: vbox/trunk/src/VBox/Devices/Audio/mixeng.h@ 51898

Last change on this file since 51898 was 50686, checked in by vboxsync, 11 years ago

src/VBox/Devices/Audio, src/VBox/Main/src-client, include/VBox/vmm:

src/VBox/Devices/Audio: part of restructuring of audio code. Devices files correspondin to Hda, AC97 and SB16 audio. The structure of files have been modifed as per PDM specs. The modified code is under #ifdef VBOX_WITH_PDM_AUDIO_DRIVER

src/VBox/Main/src-client: Driver for the VRDE that interacts with DrvAudio. Enhancement of the CFGM tree for audio.

Config.kmk : addition of one configuration parameter that will control whether new audio code is disabled or enabled. "VBOX_WITH_PDM_AUDIO_DRIVER"

pdmaudioifs.h: common header file between Device , Intermediate audio driver and Backends specific to audio.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1/*
2 * QEMU Mixing engine header
3 *
4 * Copyright (c) 2004-2005 Vassili Karpov (malc)
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 * THE SOFTWARE.
23 */
24#ifndef QEMU_MIXENG_H
25#define QEMU_MIXENG_H
26
27struct HWVoiceOut;
28
29#ifdef VBOX
30/* use faster ASMMult2xS32RetS64 */
31#ifndef VBOX_WITH_PDM_AUDIO_DRIVER
32typedef struct { int mute; uint32_t r; uint32_t l; } volume_t;
33#endif
34typedef struct { int64_t l; int64_t r; } st_sample_t;
35#else /* !VBOX */
36#ifdef FLOAT_MIXENG
37typedef float real_t;
38typedef struct { int mute; real_t r; real_t l; } volume_t;
39typedef struct { real_t l; real_t r; } st_sample_t;
40#else
41typedef struct { int mute; int64_t r; int64_t l; } volume_t;
42typedef struct { int64_t l; int64_t r; } st_sample_t;
43#endif
44#endif /* VBOX */
45#ifndef VBOX_WITH_PDM_AUDIO_DRIVER
46typedef void (t_sample) (st_sample_t *dst, const void *src,
47 int samples, volume_t *vol);
48#endif
49typedef void (f_sample) (void *dst, const st_sample_t *src, int samples);
50
51extern t_sample *mixeng_conv[2][2][2][3];
52extern f_sample *mixeng_clip[2][2][2][3];
53
54void *st_rate_start (int inrate, int outrate);
55void st_rate_flow (void *opaque, st_sample_t *ibuf, st_sample_t *obuf,
56 int *isamp, int *osamp);
57void st_rate_flow_mix (void *opaque, st_sample_t *ibuf, st_sample_t *obuf,
58 int *isamp, int *osamp);
59void st_rate_stop (void *opaque);
60# ifdef VBOX_WITH_PDM_AUDIO_DRIVER
61void mixeng_clear(PPDMHOSTSTEREOSAMPLE buf, int len);
62void mixeng_sniff_and_clear(PPDMHOSTVOICEOUT hw, PPDMHOSTSTEREOSAMPLE src, int len);
63# else
64void mixeng_clear (st_sample_t *buf, int len);
65void mixeng_sniff_and_clear (struct HWVoiceOut *hw, st_sample_t *src, int len);
66# endif
67
68#endif /* mixeng.h */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette