Changeset 90134 in vbox
- Timestamp:
- Jul 9, 2021 4:57:39 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 145636
- Location:
- trunk/src/VBox/Devices/Audio
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevHda.cpp
r89906 r90134 937 937 */ 938 938 uint64_t uResp = 0; 939 #ifndef IN_RING3 940 rc = pThisCC->Codec.pfnLookup(&pThis->Codec, &pThisCC->Codec, HDA_CODEC_CMD(uCmd, 0 /* Codec index */), &uResp); 941 #else 942 rc = pThisCC->pCodec->pfnLookup(&pThis->Codec, pThisCC->pCodec, HDA_CODEC_CMD(uCmd, 0 /* Codec index */), &uResp); 943 #endif 939 rc = pThisCC->Codec.pfnLookup(&pThisCC->Codec, HDA_CODEC_CMD(uCmd, 0 /* Codec index */), &uResp); 944 940 if (RT_SUCCESS(rc)) 945 941 AssertRCSuccess(rc); /* no informational statuses */ 946 942 else 947 {948 #ifndef IN_RING3949 if (rc == VERR_INVALID_CONTEXT)950 {951 corbRp = corbRp == 0 ? cCorbEntries - 1 : corbRp - 1;952 LogFunc(("->R3 CORB - uCmd=%#x\n", uCmd));953 rc = PDMDevHlpTaskTrigger(pDevIns, pThis->hCorbDmaTask);954 AssertRCReturn(rc, rc);955 break; /* take the normal way out. */956 }957 #endif958 943 Log3Func(("Lookup for codec verb %08x failed: %Rrc\n", uCmd, rc)); 959 }960 944 Log3Func(("Codec verb %08x -> response %016RX64\n", uCmd, uResp)); 961 945 … … 1927 1911 /// @todo PDMAudioPropsSetChannels(&pCfg->Props, 2); ? 1928 1912 1929 rc = hdaR3CodecAddStream( pThisCC->pCodec, PDMAUDIOMIXERCTL_FRONT, pCfg);1913 rc = hdaR3CodecAddStream(&pThisCC->Codec, PDMAUDIOMIXERCTL_FRONT, pCfg); 1930 1914 } 1931 1915 … … 1939 1923 PDMAudioPropsSetChannels(&pCfg->Props, fUseCenter && fUseLFE ? 2 : 1); 1940 1924 1941 rc = hdaR3CodecAddStream( pThisCC->pCodec, PDMAUDIOMIXERCTL_CENTER_LFE, pCfg);1925 rc = hdaR3CodecAddStream(&pThisCC->Codec, PDMAUDIOMIXERCTL_CENTER_LFE, pCfg); 1942 1926 } 1943 1927 … … 1950 1934 PDMAudioPropsSetChannels(&pCfg->Props, 2); 1951 1935 1952 rc = hdaR3CodecAddStream( pThisCC->pCodec, PDMAUDIOMIXERCTL_REAR, pCfg);1936 rc = hdaR3CodecAddStream(&pThisCC->Codec, PDMAUDIOMIXERCTL_REAR, pCfg); 1953 1937 } 1954 1938 # endif /* VBOX_WITH_AUDIO_HDA_51_SURROUND */ … … 1979 1963 { 1980 1964 case PDMAUDIOPATH_IN_LINE: 1981 rc = hdaR3CodecAddStream( pThisCC->pCodec, PDMAUDIOMIXERCTL_LINE_IN, pCfg);1965 rc = hdaR3CodecAddStream(&pThisCC->Codec, PDMAUDIOMIXERCTL_LINE_IN, pCfg); 1982 1966 break; 1983 1967 # ifdef VBOX_WITH_AUDIO_HDA_MIC_IN 1984 1968 case PDMAUDIOPATH_IN_MIC: 1985 rc = hdaR3CodecAddStream( pThisCC->pCodec, PDMAUDIOMIXERCTL_MIC_IN, pCfg);1969 rc = hdaR3CodecAddStream(&pThisCC->Codec, PDMAUDIOMIXERCTL_MIC_IN, pCfg); 1986 1970 break; 1987 1971 # endif … … 2093 2077 && enmMixerCtl != PDMAUDIOMIXERCTL_UNKNOWN) 2094 2078 { 2095 rc = hdaR3CodecRemoveStream( pThisCC->pCodec, enmMixerCtl, false /*fImmediate*/);2079 rc = hdaR3CodecRemoveStream(&pThisCC->Codec, enmMixerCtl, false /*fImmediate*/); 2096 2080 } 2097 2081 … … 2183 2167 PHDASTATER3 pThisCC = PDMDEVINS_2_DATA_CC(pDevIns, PHDASTATER3); 2184 2168 uint64_t uResp = 0; 2185 int rc2 = pThisCC-> pCodec->pfnLookup(&pThis->Codec, pThisCC->pCodec, HDA_CODEC_CMD(uCmd, 0 /* LUN */), &uResp);2169 int rc2 = pThisCC->Codec.pfnLookup(&pThisCC->Codec, HDA_CODEC_CMD(uCmd, 0 /* LUN */), &uResp); 2186 2170 if (RT_FAILURE(rc2)) 2187 2171 LogFunc(("Codec lookup failed with rc2=%Rrc\n", rc2)); … … 2938 2922 * Reset the codec. 2939 2923 */ 2940 hdaCodecReset(&pThis ->Codec);2924 hdaCodecReset(&pThisCC->Codec); 2941 2925 2942 2926 /* … … 3536 3520 3537 3521 /* Save Codec nodes states. */ 3538 hdaCodecSaveState(pDevIns, &pThis ->Codec, pSSM);3522 hdaCodecSaveState(pDevIns, &pThisCC->Codec, pSSM); 3539 3523 3540 3524 /* Save MMIO registers. */ … … 3904 3888 * Load Codec nodes states. 3905 3889 */ 3906 int rc = hdaR3CodecLoadState(pDevIns, &pThis ->Codec, pThisCC->pCodec, pSSM, uVersion);3890 int rc = hdaR3CodecLoadState(pDevIns, &pThisCC->Codec, pSSM, uVersion); 3907 3891 if (RT_FAILURE(rc)) 3908 3892 { … … 4385 4369 static DECLCALLBACK(void) hdaR3DbgInfoCodecNodes(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *pszArgs) 4386 4370 { 4387 PHDASTATE pThis = PDMDEVINS_2_DATA(pDevIns, PHDASTATE);4388 4371 PHDASTATER3 pThisCC = PDMDEVINS_2_DATA_CC(pDevIns, PHDASTATER3); 4389 4372 4390 if (pThisCC-> pCodec->pfnDbgListNodes)4391 pThisCC-> pCodec->pfnDbgListNodes(&pThis->Codec, pThisCC->pCodec, pHlp, pszArgs);4373 if (pThisCC->Codec.pfnDbgListNodes) 4374 pThisCC->Codec.pfnDbgListNodes(&pThisCC->Codec, pHlp, pszArgs); 4392 4375 else 4393 4376 pHlp->pfnPrintf(pHlp, "Codec implementation doesn't provide corresponding callback\n"); … … 4399 4382 static DECLCALLBACK(void) hdaR3DbgInfoCodecSelector(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *pszArgs) 4400 4383 { 4401 PHDASTATE pThis = PDMDEVINS_2_DATA(pDevIns, PHDASTATE);4402 4384 PHDASTATER3 pThisCC = PDMDEVINS_2_DATA_CC(pDevIns, PHDASTATER3); 4403 4385 4404 if (pThisCC-> pCodec->pfnDbgSelector)4405 pThisCC-> pCodec->pfnDbgSelector(&pThis->Codec, pThisCC->pCodec, pHlp, pszArgs);4386 if (pThisCC->Codec.pfnDbgSelector) 4387 pThisCC->Codec.pfnDbgSelector(&pThisCC->Codec, pHlp, pszArgs); 4406 4388 else 4407 4389 pHlp->pfnPrintf(pHlp, "Codec implementation doesn't provide corresponding callback\n"); … … 4620 4602 4621 4603 /* Ditto goes for the codec, which in turn uses the mixer. */ 4622 hdaR3CodecPowerOff( pThisCC->pCodec);4604 hdaR3CodecPowerOff(&pThisCC->Codec); 4623 4605 4624 4606 /* This is to prevent us from calling into the mixer and mixer sink code … … 4692 4674 } 4693 4675 4694 if (pThisCC->pCodec) 4695 { 4696 RTMemFree(pThisCC->pCodec); 4697 pThisCC->pCodec = NULL; 4698 } 4699 4700 hdaCodecDestruct(&pThis->Codec); 4676 hdaCodecDestruct(&pThisCC->Codec); 4701 4677 4702 4678 for (uint8_t i = 0; i < HDA_MAX_STREAMS; i++) … … 4985 4961 AssertRCReturn(rc, rc); 4986 4962 4987 /* Allocate codec. */4988 PHDACODECR3 pCodecR3 = (PHDACODECR3)RTMemAllocZ(sizeof(HDACODECR3));4989 AssertPtrReturn(pCodecR3, VERR_NO_MEMORY);4963 /* 4964 * Initialize the codec. 4965 */ 4990 4966 4991 4967 /* Set codec callbacks to this controller. */ 4992 p CodecR3->pDevIns = pDevIns;4993 p CodecR3->pfnCbMixerAddStream = hdaR3MixerAddStream;4994 p CodecR3->pfnCbMixerRemoveStream = hdaR3MixerRemoveStream;4995 p CodecR3->pfnCbMixerControl = hdaR3MixerControl;4996 p CodecR3->pfnCbMixerSetVolume = hdaR3MixerSetVolume;4968 pThisCC->Codec.pDevIns = pDevIns; 4969 pThisCC->Codec.pfnCbMixerAddStream = hdaR3MixerAddStream; 4970 pThisCC->Codec.pfnCbMixerRemoveStream = hdaR3MixerRemoveStream; 4971 pThisCC->Codec.pfnCbMixerControl = hdaR3MixerControl; 4972 pThisCC->Codec.pfnCbMixerSetVolume = hdaR3MixerSetVolume; 4997 4973 4998 4974 /* Construct the common + R3 codec part. */ 4999 rc = hdaR3CodecConstruct(pDevIns, &pThis ->Codec, pCodecR3, 0 /* Codec index */, pCfg);4975 rc = hdaR3CodecConstruct(pDevIns, &pThisCC->Codec, 0 /* Codec index */, pCfg); 5000 4976 AssertRCReturn(rc, rc); 5001 5002 pThisCC->pCodec = pCodecR3;5003 4977 5004 4978 /* ICH6 datasheet defines 0 values for SVID and SID (18.1.14-15), which together with values returned for 5005 4979 verb F20 should provide device/codec recognition. */ 5006 Assert(pThis ->Codec.u16VendorId);5007 Assert(pThis ->Codec.u16DeviceId);5008 PDMPciDevSetSubSystemVendorId(pPciDev, pThis ->Codec.u16VendorId); /* 2c ro - intel.) */5009 PDMPciDevSetSubSystemId( pPciDev, pThis ->Codec.u16DeviceId); /* 2e ro. */4980 Assert(pThisCC->Codec.State.u16VendorId); 4981 Assert(pThisCC->Codec.State.u16DeviceId); 4982 PDMPciDevSetSubSystemVendorId(pPciDev, pThisCC->Codec.State.u16VendorId); /* 2c ro - intel.) */ 4983 PDMPciDevSetSubSystemId( pPciDev, pThisCC->Codec.State.u16DeviceId); /* 2e ro. */ 5010 4984 5011 4985 /* -
trunk/src/VBox/Devices/Audio/DevHda.h
r89906 r90134 626 626 IOMMMIOHANDLE hMmio; 627 627 628 /** Shared R0/R3 HDA codec to use. */629 HDACODEC Codec;630 631 628 #ifdef VBOX_HDA_WITH_ON_REG_ACCESS_DMA 632 629 STAMCOUNTER StatAccessDmaOutput; … … 730 727 /** The base interface for LUN\#0. */ 731 728 PDMIBASE IBase; 732 /** Pointer to HDA codec to use. */733 R3PTRTYPE(PHDACODECR3) pCodec;734 729 /** List of associated LUN drivers (HDADRIVER). */ 735 730 RTLISTANCHORR3 lstDrv; … … 759 754 R3PTRTYPE(char *) pszOutPath; 760 755 } Dbg; 756 757 /** The HDA codec state. */ 758 HDACODECR3 Codec; 761 759 } HDASTATER3; 762 760 -
trunk/src/VBox/Devices/Audio/DevHdaCodec.cpp
r90131 r90134 1470 1470 Assert(CODEC_CAD(uCmd) == pThis->id); 1471 1471 1472 if (pThis->enmType == CODEC _TYPE_STAC9220)1472 if (pThis->enmType == CODECTYPE_STAC9220) 1473 1473 { 1474 1474 Assert(CODEC_NID(uCmd) == STAC9220_NID_AFG); … … 2290 2290 * @returns VBox status code (not strict). 2291 2291 */ 2292 static DECLCALLBACK(int) codecLookup(PHDACODEC pThis, PHDACODECCC pThisCC, uint32_t uCmd, uint64_t *puResp) 2293 { 2292 static DECLCALLBACK(int) codecLookup(PHDACODECCC pThisCC, uint32_t uCmd, uint64_t *puResp) 2293 { 2294 PHDACODEC pThis = &pThisCC->State; 2295 2294 2296 /* 2295 2297 * Clear the return value and assert some sanity. … … 2297 2299 AssertPtr(puResp); 2298 2300 *puResp = 0; 2299 AssertPtr(pThis);2300 2301 AssertPtr(pThisCC); 2301 2302 AssertMsgReturn(CODEC_CAD(uCmd) == pThis->id, … … 2371 2372 { 2372 2373 /** DBGF info helpers. */ 2373 PCDBGFINFOHLP pHlp;2374 PCDBGFINFOHLP pHlp; 2374 2375 /** Current recursion level. */ 2375 uint8_t uLevel;2376 uint8_t uLevel; 2376 2377 /** Pointer to codec state. */ 2377 PHDACODEC pThis;2378 PHDACODEC pThis; 2378 2379 } CODECDEBUG; 2379 2380 /** Pointer to the debug info item printing state for the codec. */ … … 2574 2575 2575 2576 2576 static DECLCALLBACK(void) codecR3DbgListNodes(PHDACODEC pThis, PHDACODECR3 pThisCC, PCDBGFINFOHLP pHlp, const char *pszArgs)2577 static DECLCALLBACK(void) codecR3DbgListNodes(PHDACODECR3 pThisCC, PCDBGFINFOHLP pHlp, const char *pszArgs) 2577 2578 { 2578 2579 RT_NOREF(pThisCC, pszArgs); … … 2581 2582 2582 2583 CODECDEBUG DbgInfo; 2583 DbgInfo.pHlp = pHlp;2584 DbgInfo.pThis = pThis;2585 DbgInfo.uLevel = 0;2584 DbgInfo.pHlp = pHlp; 2585 DbgInfo.pThis = &pThisCC->State; 2586 DbgInfo.uLevel = 0; 2586 2587 2587 2588 PCODECDEBUG pInfo = &DbgInfo; 2588 2589 2589 2590 CODECDBG_INDENT 2590 for (uint8_t i = 0; i < pThis ->cTotalNodes; i++)2591 { 2592 PCODECNODE pNode = &pThis ->aNodes[i];2591 for (uint8_t i = 0; i < pThisCC->State.cTotalNodes; i++) 2592 { 2593 PCODECNODE pNode = &pThisCC->State.aNodes[i]; 2593 2594 2594 2595 /* Start with all nodes which have connection entries set. */ … … 2600 2601 2601 2602 2602 static DECLCALLBACK(void) codecR3DbgSelector(PHDACODEC pThis, PHDACODECR3 pThisCC, PCDBGFINFOHLP pHlp, const char *pszArgs)2603 { 2604 RT_NOREF(pThis , pThisCC, pHlp, pszArgs);2603 static DECLCALLBACK(void) codecR3DbgSelector(PHDACODECR3 pThisCC, PCDBGFINFOHLP pHlp, const char *pszArgs) 2604 { 2605 RT_NOREF(pThisCC, pHlp, pszArgs); 2605 2606 } 2606 2607 … … 2677 2678 2678 2679 2679 int hdaCodecSaveState(PPDMDEVINS pDevIns, PHDACODEC pThis, PSSMHANDLE pSSM) 2680 { 2681 PCPDMDEVHLPR3 pHlp = pDevIns->pHlpR3; 2680 /** 2681 * Saved the codec state. 2682 * 2683 * @returns VBox status code. 2684 * @param pDevIns The device instance of the HDA device. 2685 * @param pThisCC The codec instance data. 2686 * @param pSSM The saved state handle. 2687 */ 2688 int hdaCodecSaveState(PPDMDEVINS pDevIns, PHDACODECR3 pThisCC, PSSMHANDLE pSSM) 2689 { 2690 PHDACODEC pThis = &pThisCC->State; 2691 PCPDMDEVHLPR3 pHlp = pDevIns->pHlpR3; 2682 2692 AssertLogRelMsgReturn(pThis->cTotalNodes == STAC9221_NUM_NODES, ("cTotalNodes=%#x, should be 0x1c", pThis->cTotalNodes), 2683 2693 VERR_INTERNAL_ERROR); … … 2690 2700 2691 2701 2692 int hdaR3CodecLoadState(PPDMDEVINS pDevIns, PHDACODEC pThis, PHDACODECR3 pThisCC, PSSMHANDLE pSSM, uint32_t uVersion) 2693 { 2694 PCPDMDEVHLPR3 pHlp = pDevIns->pHlpR3; 2695 PCSSMFIELD pFields = NULL; 2696 uint32_t fFlags = 0; 2702 /** 2703 * Loads the codec state. 2704 * 2705 * @returns VBox status code. 2706 * @param pDevIns The device instance of the HDA device. 2707 * @param pThisCC The codec instance data. 2708 * @param pSSM The saved state handle. 2709 * @param uVersion The state version. 2710 */ 2711 int hdaR3CodecLoadState(PPDMDEVINS pDevIns, PHDACODECR3 pThisCC, PSSMHANDLE pSSM, uint32_t uVersion) 2712 { 2713 PHDACODEC pThis = &pThisCC->State; 2714 PCPDMDEVHLPR3 pHlp = pDevIns->pHlpR3; 2715 PCSSMFIELD pFields = NULL; 2716 uint32_t fFlags = 0; 2697 2717 if (uVersion >= HDA_SAVED_STATE_VERSION_4) 2698 2718 { … … 2759 2779 * Powers off the codec (ring-3). 2760 2780 * 2761 * @param pThisCC Context-specific codec data (ring-3) to power off.2781 * @param pThisCC The codec data. 2762 2782 */ 2763 2783 void hdaR3CodecPowerOff(PHDACODECR3 pThisCC) 2764 2784 { 2765 if (!pThisCC)2766 return;2767 2768 2785 LogFlowFuncEnter(); 2769 2770 2786 LogRel2(("HDA: Powering off codec ...\n")); 2771 2787 … … 2792 2808 * 2793 2809 * @returns VBox status code. 2794 * @param pDevIns Associated device instance. 2795 * @param pThis Shared codec data beteen r0/r3. 2796 * @param pThisCC Context-specific codec data (ring-3). 2797 * @param uLUN Device LUN to assign. 2798 * @param pCfg CFGM node to use for configuration. 2799 */ 2800 int hdaR3CodecConstruct(PPDMDEVINS pDevIns, PHDACODEC pThis, PHDACODECR3 pThisCC, uint16_t uLUN, PCFGMNODE pCfg) 2810 * @param pDevIns The associated device instance. 2811 * @param pThisCC The codec data. 2812 * @param uLUN Device LUN to assign. 2813 * @param pCfg CFGM node to use for configuration. 2814 */ 2815 int hdaR3CodecConstruct(PPDMDEVINS pDevIns, PHDACODECR3 pThisCC, uint16_t uLUN, PCFGMNODE pCfg) 2801 2816 { 2802 2817 AssertPtrReturn(pDevIns, VERR_INVALID_POINTER); 2803 AssertPtrReturn(pThis, VERR_INVALID_POINTER);2804 2818 AssertPtrReturn(pThisCC, VERR_INVALID_POINTER); 2805 2819 AssertPtrReturn(pCfg, VERR_INVALID_POINTER); 2820 PHDACODEC pThis = &pThisCC->State; 2806 2821 2807 2822 pThis->id = uLUN; 2808 pThis->enmType = CODEC _TYPE_STAC9220; /** @todo Make this dynamic. */2823 pThis->enmType = CODECTYPE_STAC9220; /** @todo Make this dynamic. */ 2809 2824 2810 2825 int rc; … … 2812 2827 switch (pThis->enmType) 2813 2828 { 2814 case CODEC _TYPE_STAC9220:2829 case CODECTYPE_STAC9220: 2815 2830 { 2816 2831 rc = stac9220Construct(pThis); … … 2858 2873 * Destructs a codec. 2859 2874 * 2860 * @param pThis Codec to destruct. 2861 */ 2862 void hdaCodecDestruct(PHDACODEC pThis) 2863 { 2864 if (!pThis) 2865 return; 2875 * @param pThisCC Codec to destruct. 2876 */ 2877 void hdaCodecDestruct(PHDACODECR3 pThisCC) 2878 { 2879 LogFlowFuncEnter(); 2866 2880 2867 2881 /* Nothing to do here atm. */ 2868 2869 LogFlowFuncEnter(); 2882 RT_NOREF(pThisCC); 2870 2883 } 2871 2884 … … 2874 2887 * Resets a codec. 2875 2888 * 2876 * @param pThis 2877 */ 2878 void hdaCodecReset(PHDACODEC pThis)2879 { 2880 switch (pThis ->enmType)2881 { 2882 case CODEC _TYPE_STAC9220:2883 stac9220Reset( pThis);2889 * @param pThisCC Codec to reset. 2890 */ 2891 void hdaCodecReset(PHDACODECR3 pThisCC) 2892 { 2893 switch (pThisCC->State.enmType) 2894 { 2895 case CODECTYPE_STAC9220: 2896 stac9220Reset(&pThisCC->State); 2884 2897 break; 2885 2898 -
trunk/src/VBox/Devices/Audio/DevHdaCodec.h
r90131 r90134 35 35 typedef struct HDACODECR3 *PHDACODECR3; 36 36 #ifdef IN_RING3 /* (A leftover from attempt at running the codec in ring-0. Deemed unsafe 37 and not help with performance when it mattered.) */37 and not a help with performance when it mattered.) */ 38 38 /** The ICH HDA (Intel) current context codec state. */ 39 39 typedef CTX_SUFF(PHDACODEC) PHDACODECCC; … … 43 43 * Enumeration specifying the codec type to use. 44 44 */ 45 typedef enum CODEC _TYPE45 typedef enum CODECTYPE 46 46 { 47 47 /** Invalid, do not use. */ 48 CODEC _TYPE_INVALID = 0,48 CODECTYPE_INVALID = 0, 49 49 /** SigmaTel 9220 (922x). */ 50 CODEC _TYPE_STAC9220,50 CODECTYPE_STAC9220, 51 51 /** Hack to blow the type up to 32-bit. */ 52 CODEC _TYPE_32BIT_HACK = 0x7fffffff53 } CODEC _TYPE;52 CODECTYPE_32BIT_HACK = 0x7fffffff 53 } CODECTYPE; 54 54 55 55 /* PRM 5.3.1 */ … … 803 803 { 804 804 /** Codec implementation type. */ 805 CODEC _TYPEenmType;805 CODECTYPE enmType; 806 806 /** Codec ID. */ 807 807 uint16_t id; … … 850 850 /** @name Public codec functions. 851 851 * @{ */ 852 DECLR3CALLBACKMEMBER(int, pfnLookup, (PHDACODEC pThis, PHDACODECR3 pThisCC, uint32_t uVerb, uint64_t *puResp));853 DECLR3CALLBACKMEMBER(void, pfnDbgListNodes, (PHDACODEC pThis, PHDACODECR3 pThisCC, PCDBGFINFOHLP pHlp, const char *pszArgs));854 DECLR3CALLBACKMEMBER(void, pfnDbgSelector, (PHDACODEC pThis, PHDACODECR3 pThisCC, PCDBGFINFOHLP pHlp, const char *pszArgs));852 DECLR3CALLBACKMEMBER(int, pfnLookup, (PHDACODECR3 pThisCC, uint32_t uVerb, uint64_t *puResp)); 853 DECLR3CALLBACKMEMBER(void, pfnDbgListNodes, (PHDACODECR3 pThisCC, PCDBGFINFOHLP pHlp, const char *pszArgs)); 854 DECLR3CALLBACKMEMBER(void, pfnDbgSelector, (PHDACODECR3 pThisCC, PCDBGFINFOHLP pHlp, const char *pszArgs)); 855 855 /** @} */ 856 856 … … 907 907 DECLR3CALLBACKMEMBER(int, pfnCbMixerSetVolume, (PPDMDEVINS pDevIns, PDMAUDIOMIXERCTL enmMixerCtl, PPDMAUDIOVOLUME pVol)); 908 908 /** @} */ 909 910 /** The state (was shared with ring-0 for a while). */ 911 HDACODEC State; 909 912 } HDACODECR3; 910 913 911 int hdaR3CodecConstruct(PPDMDEVINS pDevIns, PHDACODEC pThis, PHDACODECR3 pThisCC, uint16_t uLUN, PCFGMNODE pCfg);912 void hdaR3CodecPowerOff(PHDACODECR3 pThisCC);913 int hdaR3CodecLoadState(PPDMDEVINS pDevIns, PHDACODEC pThis, PHDACODECR3 pThisCC, PSSMHANDLE pSSM, uint32_t uVersion);914 int hdaR3CodecAddStream(PHDACODECR3 pThisCC, PDMAUDIOMIXERCTL enmMixerCtl, PPDMAUDIOSTREAMCFG pCfg);915 int hdaR3CodecRemoveStream(PHDACODECR3 pThisCC, PDMAUDIOMIXERCTL enmMixerCtl, bool fImmediate);916 917 int hdaCodecSaveState(PPDMDEVINS pDevIns, PHDACODEC pThis, PSSMHANDLE pSSM);918 void hdaCodecDestruct(PHDACODEC pThis);919 void hdaCodecReset(PHDACODEC pThis);914 int hdaR3CodecConstruct(PPDMDEVINS pDevIns, PHDACODECR3 pThisCC, uint16_t uLUN, PCFGMNODE pCfg); 915 void hdaR3CodecPowerOff(PHDACODECR3 pThisCC); 916 int hdaR3CodecLoadState(PPDMDEVINS pDevIns, PHDACODECR3 pThisCC, PSSMHANDLE pSSM, uint32_t uVersion); 917 int hdaR3CodecAddStream(PHDACODECR3 pThisCC, PDMAUDIOMIXERCTL enmMixerCtl, PPDMAUDIOSTREAMCFG pCfg); 918 int hdaR3CodecRemoveStream(PHDACODECR3 pThisCC, PDMAUDIOMIXERCTL enmMixerCtl, bool fImmediate); 919 920 int hdaCodecSaveState(PPDMDEVINS pDevIns, PHDACODECR3 pThisCC, PSSMHANDLE pSSM); 921 void hdaCodecDestruct(PHDACODECR3 pThisCC); 922 void hdaCodecReset(PHDACODECR3 pThisCC); 920 923 921 924 #endif /* !VBOX_INCLUDED_SRC_Audio_DevHdaCodec_h */
Note:
See TracChangeset
for help on using the changeset viewer.