VirtualBox

source: vbox/trunk/src/VBox/Devices/Audio/HDAStreamMap.h@ 88017

Last change on this file since 88017 was 87942, checked in by vboxsync, 4 years ago

Audio/HDA: Follow-up fix for r142810 to make the transfer heuristics also work for surround speaker setups. ticketoem2ref:36

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.2 KB
Line 
1/* $Id: HDAStreamMap.h 87942 2021-03-03 17:26:37Z vboxsync $ */
2/** @file
3 * HDAStreamMap.h - Stream map functions for HD Audio.
4 */
5
6/*
7 * Copyright (C) 2017-2020 Oracle Corporation
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 */
17
18#ifndef VBOX_INCLUDED_SRC_Audio_HDAStreamMap_h
19#define VBOX_INCLUDED_SRC_Audio_HDAStreamMap_h
20#ifndef RT_WITHOUT_PRAGMA_ONCE
21# pragma once
22#endif
23
24/**
25 * Audio stream data mapping.
26 */
27typedef struct HDASTREAMMAP
28{
29 /** The PCM properties which have been used. */
30 PDMAUDIOPCMPROPS PCMProps;
31 /** The stream's layout. */
32 PDMAUDIOSTREAMLAYOUT enmLayout;
33 /** The mapping's overall audio frame size (in bytes).
34 * This includes all mappings in \a paMappings. */
35 uint8_t cbFrameSize;
36 /** Number of mappings in paMappings. */
37 uint8_t cMappings;
38 uint8_t aPadding[2];
39 /** Array of stream mappings.
40 * Note: The mappings *must* be layed out in an increasing order, e.g.
41 * how the data appears in the given data block. */
42 R3PTRTYPE(PPDMAUDIOSTREAMMAP) paMappings;
43#if HC_ARCH_BITS == 32
44 RTR3PTR Padding1;
45#endif
46#ifdef VBOX_WITH_AUDIO_HDA_51_SURROUND
47 /** Circular buffer holding for holding audio data for this mapping. */
48 R3PTRTYPE(PRTCIRCBUF) pCircBuf;
49#endif
50} HDASTREAMMAP;
51AssertCompileSizeAlignment(HDASTREAMMAP, 8);
52/** Pointer to an audio stream data mapping. */
53typedef HDASTREAMMAP *PHDASTREAMMAP;
54
55/** @name Stream mapping functions.
56 * @{
57 */
58#ifdef IN_RING3
59int hdaR3StreamMapInit(PHDASTREAMMAP pMapping, PPDMAUDIOPCMPROPS pProps);
60void hdaR3StreamMapDestroy(PHDASTREAMMAP pMapping);
61void hdaR3StreamMapReset(PHDASTREAMMAP pMapping);
62#endif
63/** @} */
64
65#endif /* !VBOX_INCLUDED_SRC_Audio_HDAStreamMap_h */
66
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