VirtualBox

Changeset 60353 in vbox for trunk/include


Ignore:
Timestamp:
Apr 6, 2016 11:54:39 AM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
106428
Message:

Audio: Added HDA support for newer Linux guests; more work on surround support (disabled by default).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/pdmaudioifs.h

    r59987 r60353  
    109109} PDMAUDIOENDIANNESS;
    110110
     111/**
     112 * Audio direction.
     113 */
     114typedef enum PDMAUDIODIR
     115{
     116    PDMAUDIODIR_UNKNOWN    = 0,
     117    PDMAUDIODIR_IN         = 1,
     118    PDMAUDIODIR_OUT        = 2,
     119    PDMAUDIODIR_DUPLEX     = 3,
     120    /** Hack to blow the type up to 32-bit. */
     121    PDMAUDIODIR_32BIT_HACK = 0x7fffffff
     122} PDMAUDIODIR;
     123
     124/**
     125 * Audio playback destinations.
     126 */
     127typedef enum PDMAUDIOPLAYBACKDEST
     128{
     129    PDMAUDIOPLAYBACKDEST_UNKNOWN = 0,
     130    PDMAUDIOPLAYBACKDEST_FRONT,
     131    PDMAUDIOPLAYBACKDEST_CENTER_LFE,
     132    PDMAUDIOPLAYBACKDEST_REAR,
     133    /** Hack to blow the type up to 32-bit. */
     134    PDMAUDIOPLAYBACKDEST_32BIT_HACK = 0x7fffffff
     135} PDMAUDIOPLAYBACKDEST;
     136
     137/**
     138 * Audio recording sources.
     139 */
     140typedef enum PDMAUDIORECSOURCE
     141{
     142    PDMAUDIORECSOURCE_UNKNOWN = 0,
     143    PDMAUDIORECSOURCE_MIC,
     144    PDMAUDIORECSOURCE_CD,
     145    PDMAUDIORECSOURCE_VIDEO,
     146    PDMAUDIORECSOURCE_AUX,
     147    PDMAUDIORECSOURCE_LINE,
     148    PDMAUDIORECSOURCE_PHONE,
     149    /** Hack to blow the type up to 32-bit. */
     150    PDMAUDIORECSOURCE_32BIT_HACK = 0x7fffffff
     151} PDMAUDIORECSOURCE;
     152
     153/**
     154 * Structure for keeping an audio stream configuration.
     155 */
    111156typedef struct PDMAUDIOSTREAMCFG
    112157{
     158    /** Friendly name of the stream. */
     159    char                    *pszName;
     160    /** Direction of the stream. */
     161    PDMAUDIODIR              enmDir;
     162    union
     163    {
     164        /** Desired playback destination (for an output stream). */
     165        PDMAUDIOPLAYBACKDEST Dest;
     166        /** Desired recording source (for an input stream). */
     167        PDMAUDIORECSOURCE    Source;
     168    } DestSource;
    113169    /** Frequency in Hertz (Hz). */
    114     uint32_t uHz;
    115     /** Number of channels (2 for stereo). */
    116     uint8_t cChannels;
     170    uint32_t                 uHz;
     171    /** Number of channels (2 for stereo, 1 for mono). */
     172    uint8_t                  cChannels;
    117173    /** Audio format. */
    118     PDMAUDIOFMT enmFormat;
     174    PDMAUDIOFMT              enmFormat;
    119175    /** @todo Use RT_LE2H_*? */
    120     PDMAUDIOENDIANNESS enmEndianness;
     176    PDMAUDIOENDIANNESS       enmEndianness;
    121177} PDMAUDIOSTREAMCFG, *PPDMAUDIOSTREAMCFG;
    122178
     
    130186
    131187/**
    132  * Audio direction.
    133  */
    134 typedef enum PDMAUDIODIR
    135 {
    136     PDMAUDIODIR_UNKNOWN    = 0,
    137     PDMAUDIODIR_IN         = 1,
    138     PDMAUDIODIR_OUT        = 2,
    139     PDMAUDIODIR_DUPLEX     = 3,
    140     /** Hack to blow the type up to 32-bit. */
    141     PDMAUDIODIR_32BIT_HACK = 0x7fffffff
    142 } PDMAUDIODIR;
    143 
    144 /**
    145188 * Audio mixer controls.
    146189 */
     
    149192    PDMAUDIOMIXERCTL_UNKNOWN = 0,
    150193    PDMAUDIOMIXERCTL_VOLUME,
    151     PDMAUDIOMIXERCTL_PCM,
     194    PDMAUDIOMIXERCTL_FRONT,
     195    PDMAUDIOMIXERCTL_CENTER_LFE,
     196    PDMAUDIOMIXERCTL_REAR,
    152197    PDMAUDIOMIXERCTL_LINE_IN,
    153198    PDMAUDIOMIXERCTL_MIC_IN,
     
    155200    PDMAUDIOMIXERCTL_32BIT_HACK = 0x7fffffff
    156201} PDMAUDIOMIXERCTL;
    157 
    158 /**
    159  * Audio recording sources.
    160  */
    161 typedef enum PDMAUDIORECSOURCE
    162 {
    163     PDMAUDIORECSOURCE_UNKNOWN = 0,
    164     PDMAUDIORECSOURCE_MIC,
    165     PDMAUDIORECSOURCE_CD,
    166     PDMAUDIORECSOURCE_VIDEO,
    167     PDMAUDIORECSOURCE_AUX,
    168     PDMAUDIORECSOURCE_LINE_IN,
    169     PDMAUDIORECSOURCE_PHONE,
    170     /** Hack to blow the type up to 32-bit. */
    171     PDMAUDIORECSOURCE_32BIT_HACK = 0x7fffffff
    172 } PDMAUDIORECSOURCE;
    173202
    174203/**
     
    586615     * @returns VBox status code.
    587616     * @param   pInterface           Pointer to the interface structure containing the called function pointer.
    588      * @param   pszName              Name of the audio channel.
    589      * @param   enmRecSource         Specifies the type of recording source to be opened.
     617     * @param   pszName              Friendly name of this input stream.
    590618     * @param   pCfg                 Pointer to PDMAUDIOSTREAMCFG to use.
    591619     * @param   ppGstStrmIn          Pointer where to return the guest guest input stream on success.
    592620     */
    593621    DECLR3CALLBACKMEMBER(int, pfnCreateIn, (PPDMIAUDIOCONNECTOR pInterface, const char *pszName,
    594                                             PDMAUDIORECSOURCE enmRecSource, PPDMAUDIOSTREAMCFG pCfg,
    595                                             PPDMAUDIOGSTSTRMIN *ppGstStrmIn));
     622                                            PPDMAUDIOSTREAMCFG pCfg, PPDMAUDIOGSTSTRMIN *ppGstStrmIn));
    596623    /**
    597624     * Creates a guest output stream.
     
    599626     * @returns VBox status code.
    600627     * @param   pInterface           Pointer to the interface structure containing the called function pointer.
    601      * @param   pszName              Name of the audio channel.
     628     * @param   pszName              Friendly name of this output stream.
    602629     * @param   pCfg                 Pointer to PDMAUDIOSTREAMCFG to use.
    603630     * @param   ppGstStrmOut         Pointer where to return the guest guest input stream on success.
     
    639666
    640667/** PDMIAUDIOCONNECTOR interface ID. */
    641 #define PDMIAUDIOCONNECTOR_IID                  "8f8ca10e-9039-423c-9a77-0014aaa98626"
     668#define PDMIAUDIOCONNECTOR_IID                  "f0ef4012-ae89-4528-9dad-4ef496894df8"
    642669
    643670
Note: See TracChangeset for help on using the changeset viewer.

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