diff options
Diffstat (limited to 'src/VBox/Devices/Audio/HDAStreamMap.h')
-rw-r--r-- | src/VBox/Devices/Audio/HDAStreamMap.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/VBox/Devices/Audio/HDAStreamMap.h b/src/VBox/Devices/Audio/HDAStreamMap.h new file mode 100644 index 00000000..f0e6e62e --- /dev/null +++ b/src/VBox/Devices/Audio/HDAStreamMap.h @@ -0,0 +1,61 @@ +/* $Id: HDAStreamMap.h $ */ +/** @file + * HDAStreamMap.h - Stream map functions for HD Audio. + */ + +/* + * Copyright (C) 2017-2019 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#ifndef VBOX_INCLUDED_SRC_Audio_HDAStreamMap_h +#define VBOX_INCLUDED_SRC_Audio_HDAStreamMap_h +#ifndef RT_WITHOUT_PRAGMA_ONCE +# pragma once +#endif + +/** + * Structure for keeping an audio stream data mapping. + */ +typedef struct HDASTREAMMAP +{ + /** The stream's layout. */ + PDMAUDIOSTREAMLAYOUT enmLayout; + uint8_t cbFrameSize; + /** Number of mappings in paMappings. */ + uint8_t cMappings; + uint8_t aPadding[2]; + /** Array of stream mappings. + * Note: The mappings *must* be layed out in an increasing order, e.g. + * how the data appears in the given data block. */ + R3PTRTYPE(PPDMAUDIOSTREAMMAP) paMappings; +#if HC_ARCH_BITS == 32 + RTR3PTR Padding1; +#endif +#ifdef VBOX_WITH_AUDIO_HDA_51_SURROUND + /** Circular buffer holding for holding audio data for this mapping. */ + R3PTRTYPE(PRTCIRCBUF) pCircBuf; +#endif +} HDASTREAMMAP; +AssertCompileSizeAlignment(HDASTREAMMAP, 8); +typedef HDASTREAMMAP *PHDASTREAMMAP; + +/** @name Stream mapping functions. + * @{ + */ +#ifdef IN_RING3 +int hdaR3StreamMapInit(PHDASTREAMMAP pMapping, PPDMAUDIOPCMPROPS pProps); +void hdaR3StreamMapDestroy(PHDASTREAMMAP pMapping); +void hdaR3StreamMapReset(PHDASTREAMMAP pMapping); +#endif /* IN_RING3 */ +/** @} */ + +#endif /* !VBOX_INCLUDED_SRC_Audio_HDAStreamMap_h */ + |