- 時間撮記:
- 2016-4-6 上午11:54:39 (9 年 以前)
- svn:sync-xref-src-repo-rev:
- 106428
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/Devices/Audio/DevIchHdaCodec.h
r59439 r60353 16 16 */ 17 17 18 #ifndef DEV_ CODEC_H19 #define DEV_ CODEC_H18 #ifndef DEV_HDA_CODEC_H 19 #define DEV_HDA_CODEC_H 20 20 21 21 /** The ICH HDA (Intel) controller. */ … … 39 39 #define CODEC_RESPONSE_UNSOLICITED RT_BIT_64(34) 40 40 41 42 #ifndef VBOX_WITH_HDA_CODEC_EMU43 41 typedef struct CODECVERB 44 42 { … … 48 46 PFNHDACODECVERBPROCESSOR pfn; 49 47 } CODECVERB; 50 #endif51 48 52 #ifndef VBOX_WITH_HDA_CODEC_EMU 53 # define TYPE union 54 #else 55 # define TYPE struct 56 typedef struct CODECEMU CODECEMU; 57 typedef CODECEMU *PCODECEMU; 58 #endif 59 TYPE CODECNODE; 60 typedef TYPE CODECNODE CODECNODE; 61 typedef TYPE CODECNODE *PCODECNODE; 49 union CODECNODE; 50 typedef union CODECNODE CODECNODE, *PCODECNODE; 62 51 63 typedef enum 64 { 65 PI_INDEX = 0, /**< PCM in */ 66 PO_INDEX, /**< PCM out */ 67 MC_INDEX, /**< Mic in */ 68 LAST_INDEX 69 } ENMSOUNDSOURCE; 70 52 /** 53 * Structure for keeping a HDA codec state. 54 */ 71 55 typedef struct HDACODEC 72 56 { … … 79 63 * A driver only can be assigned to one codec at a time. */ 80 64 RTLISTANCHOR lstDrv; 81 /** The codec's current audio stream configuration. */82 PDMAUDIOSTREAMCFG strmCfg;83 65 84 #ifndef VBOX_WITH_HDA_CODEC_EMU85 66 CODECVERB const *paVerbs; 86 67 int cVerbs; 87 #else 88 PCODECEMU pCodecBackend; 89 #endif 68 90 69 PCODECNODE paNodes; 91 70 /** Pointer to HDA state (controller) this … … 93 72 PHDASTATE pHDAState; 94 73 bool fInReset; 95 #ifndef VBOX_WITH_HDA_CODEC_EMU 74 96 75 const uint8_t cTotalNodes; 97 76 const uint8_t *au8Ports; … … 110 89 const uint8_t u8AdcVolsLineIn; 111 90 const uint8_t u8DacLineOut; 112 #endif 91 113 92 /** Callbacks to the HDA controller, mostly used for multiplexing to the various host backends. */ 114 DECLR3CALLBACKMEMBER(void, pfnCloseIn, (PHDASTATE pThis, PDMAUDIORECSOURCE enmRecSource)); 115 DECLR3CALLBACKMEMBER(void, pfnCloseOut, (PHDASTATE pThis)); 116 DECLR3CALLBACKMEMBER(int, pfnOpenIn, (PHDASTATE pThis, const char *pszName, PDMAUDIORECSOURCE enmRecSource, PPDMAUDIOSTREAMCFG pCfg)); 117 DECLR3CALLBACKMEMBER(int, pfnOpenOut, (PHDASTATE pThis, const char *pszName, PPDMAUDIOSTREAMCFG pCfg)); 118 DECLR3CALLBACKMEMBER(int, pfnSetVolume, (PHDASTATE pThis, ENMSOUNDSOURCE enmSource, bool fMute, uint8_t uVolLeft, uint8_t uVolRight)); 93 DECLR3CALLBACKMEMBER(int, pfnMixerAddStream, (PHDASTATE pThis, PDMAUDIOMIXERCTL enmMixerCtl, PPDMAUDIOSTREAMCFG pCfg)); 94 DECLR3CALLBACKMEMBER(int, pfnMixerRemoveStream, (PHDASTATE pThis, PDMAUDIOMIXERCTL enmMixerCtl)); 95 DECLR3CALLBACKMEMBER(int, pfnMixerSetVolume, (PHDASTATE pThis, PDMAUDIOMIXERCTL enmMixerCtl, PPDMAUDIOVOLUME pVol)); 119 96 /** Callbacks by codec implementation. */ 120 97 DECLR3CALLBACKMEMBER(int, pfnLookup, (PHDACODEC pThis, uint32_t verb, PPFNHDACODECVERBPROCESSOR)); … … 130 107 int hdaCodecSaveState(PHDACODEC pThis, PSSMHANDLE pSSM); 131 108 int hdaCodecLoadState(PHDACODEC pThis, PSSMHANDLE pSSM, uint32_t uVersion); 132 int hdaCodecOpenStream(PHDACODEC pThis, ENMSOUNDSOURCE enmSoundSource, PPDMAUDIOSTREAMCFG pCfg); 109 int hdaCodecAddStream(PHDACODEC pThis, PDMAUDIOMIXERCTL enmMixerCtl, PPDMAUDIOSTREAMCFG pCfg); 110 int hdaCodecRemoveStream(PHDACODEC pThis, PDMAUDIOMIXERCTL enmMixerCtl); 133 111 134 112 #define HDA_SSM_VERSION 6 … … 143 121 #define HDA_SSM_VERSION_1 1 144 122 145 # ifdef VBOX_WITH_HDA_CODEC_EMU 146 /* */ 147 struct CODECEMU 148 { 149 DECLR3CALLBACKMEMBER(int, pfnCodecEmuConstruct,(PHDACODEC pThis)); 150 DECLR3CALLBACKMEMBER(int, pfnCodecEmuDestruct,(PHDACODEC pThis)); 151 DECLR3CALLBACKMEMBER(int, pfnCodecEmuReset,(PHDACODEC pThis, bool fInit)); 152 }; 153 # endif 154 #endif 123 #endif /* DEV_HDA_CODEC_H */ 155 124
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器