VirtualBox

Changeset 70250 in vbox


Ignore:
Timestamp:
Dec 20, 2017 6:21:10 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
119844
Message:

Audio/HDA: Implemented hdaGetDefaultSink().

Location:
trunk/src/VBox/Devices/Audio
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/DevHDACommon.cpp

    r70246 r70250  
    184184
    185185    return (u64WalClkNew == u64WalClk);
     186}
     187
     188/**
     189 * Returns the default (mixer) sink from a given SD#.
     190 * Returns NULL if no sink is found.
     191 *
     192 * @return  PHDAMIXERSINK
     193 * @param   pThis               HDA state.
     194 * @param   uSD                 SD# to return mixer sink for.
     195 *                              NULL if not found / handled.
     196 */
     197PHDAMIXERSINK hdaGetDefaultSink(PHDASTATE pThis, uint8_t uSD)
     198{
     199    if (hdaGetDirFromSD(uSD) == PDMAUDIODIR_IN)
     200    {
     201        const uint8_t uFirstSDI = 0;
     202
     203        if (uSD == uFirstSDI) /* First SDI. */
     204            return &pThis->SinkLineIn;
     205#ifdef VBOX_WITH_AUDIO_HDA_MIC_IN
     206        else if (uSD == uFirstSDI + 1)
     207            return &pThis->SinkMicIn;
     208#else
     209        else /* If we don't have a dedicated Mic-In sink, use the always present Line-In sink. */
     210            return &pThis->SinkLineIn;
     211#endif
     212    }
     213    else
     214    {
     215        const uint8_t uFirstSDO = HDA_MAX_SDI;
     216
     217        if (uSD == uFirstSDO)
     218            return &pThis->SinkFront;
     219#ifdef VBOX_WITH_AUDIO_HDA_51_SURROUND
     220        else if (uSD == uFirstSDO + 1)
     221            return &pThis->SinkCenterLFE;
     222        else if (uSD == uFirstSDO + 2)
     223            return &pThis->SinkRear;
     224#endif
     225    }
     226
     227    return NULL;
    186228}
    187229
  • trunk/src/VBox/Devices/Audio/DevHDACommon.h

    r70121 r70250  
    578578 * @{
    579579 */
     580PHDAMIXERSINK hdaGetDefaultSink(PHDASTATE pThis, uint8_t uSD);
    580581PDMAUDIODIR   hdaGetDirFromSD(uint8_t uSD);
    581582PHDASTREAM    hdaGetStreamFromSD(PHDASTATE pThis, uint8_t uSD);
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