Changeset 70251 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Dec 20, 2017 6:34:18 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 119845
- Location:
- trunk/src/VBox/Devices/Audio
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevHDA.cpp
r70249 r70251 1072 1072 { 1073 1073 const uint64_t u64WalClkCur = ASMAtomicReadU64(&pThis->u64WalClk); 1074 const uint64_t u64FrontAbsWalClk = hdaStreamPeriodGetAbsElapsedWalClk(&hdaGetStreamFromSink(pThis, &pThis->SinkFront)->State.Period); 1074 const uint64_t u64FrontAbsWalClk = pThis->SinkFront.pStream 1075 ? hdaStreamPeriodGetAbsElapsedWalClk(&pThis->SinkFront.pStream->State.Period) : 0; 1075 1076 #ifdef VBOX_WITH_AUDIO_HDA_51_SURROUND 1076 1077 # error "Implement me!" 1077 1078 #endif 1078 const uint64_t u64LineInAbsWalClk = hdaStreamPeriodGetAbsElapsedWalClk(&hdaGetStreamFromSink(pThis, &pThis->SinkLineIn)->State.Period); 1079 const uint64_t u64LineInAbsWalClk = pThis->SinkLineIn.pStream 1080 ? hdaStreamPeriodGetAbsElapsedWalClk(&pThis->SinkLineIn.pStream->State.Period) : 0; 1079 1081 #ifdef VBOX_WITH_HDA_MIC_IN 1080 const uint64_t u64MicInAbsWalClk = hdaStreamPeriodGetAbsElapsedWalClk(&hdaGetStreamFromSink(pThis, &pThis->SinkMicIn)->State.Period); 1082 const uint64_t u64MicInAbsWalClk = pThis->SinkMicIn.pStream 1083 ? hdaStreamPeriodGetAbsElapsedWalClk(&pThis->SinkMicIn.pStream->State.Period) : 0; 1081 1084 #endif 1082 1085 … … 2612 2615 hdaStreamLock(pStream); 2613 2616 2614 pSink->uSD = uSD; 2615 pSink->uChannel = uChannel; 2617 pSink->pStream = pStream; 2616 2618 pStream->pMixSink = pSink; 2617 2619 … … 2887 2889 * Stop any audio currently playing and/or recording. 2888 2890 */ 2891 pThis->SinkFront.pStream = NULL; 2889 2892 if (pThis->SinkFront.pMixSink) 2890 2893 AudioMixerSinkReset(pThis->SinkFront.pMixSink); 2891 2894 # ifdef VBOX_WITH_AUDIO_HDA_MIC_IN 2895 pThis->SinkMicIn.pStream = NULL; 2892 2896 if (pThis->SinkMicIn.pMixSink) 2893 2897 AudioMixerSinkReset(pThis->SinkMicIn.pMixSink); 2894 2898 # endif 2899 pThis->SinkLineIn.pStream = NULL; 2895 2900 if (pThis->SinkLineIn.pMixSink) 2896 2901 AudioMixerSinkReset(pThis->SinkLineIn.pMixSink); 2897 2902 # ifdef VBOX_WITH_AUDIO_HDA_51_SURROUND 2903 pThis->SinkCenterLFE = NULL; 2898 2904 if (pThis->SinkCenterLFE.pMixSink) 2899 2905 AudioMixerSinkReset(pThis->SinkCenterLFE.pMixSink); 2906 pThis->SinkRear.pStream = NULL; 2900 2907 if (pThis->SinkRear.pMixSink) 2901 2908 AudioMixerSinkReset(pThis->SinkRear.pMixSink); … … 2911 2918 } 2912 2919 2913 2920 /* 2914 2921 * Set some sensible defaults for which HDA sinks 2915 2922 * are connected to which stream number. -
trunk/src/VBox/Devices/Audio/DevHDA.h
r70016 r70251 56 56 typedef struct HDAMIXERSINK 57 57 { 58 /** SDn ID this sink is assigned to. 0 if not assigned. */ 59 uint8_t uSD; 60 /** Channel ID of SDn ID. Only valid if SDn ID is valid. */ 61 uint8_t uChannel; 62 uint8_t Padding[3]; 58 R3PTRTYPE(PHDASTREAM) pStream; 63 59 /** Pointer to the actual audio mixer sink. */ 64 60 R3PTRTYPE(PAUDMIXSINK) pMixSink; -
trunk/src/VBox/Devices/Audio/DevHDACommon.cpp
r70250 r70251 280 280 281 281 /** @todo Do something with the channel mapping here? */ 282 return hdaGetStreamFromSD(pThis, pSink->uSD);282 return pSink->pStream; 283 283 } 284 284
Note:
See TracChangeset
for help on using the changeset viewer.