Vijay Kiran Kamuju : include: Add IXACT3Wave definition.

Alexandre Julliard julliard at winehq.org
Thu Jul 2 15:04:31 CDT 2020


Module: wine
Branch: master
Commit: b4a59b3ffc2c4123a68a0cbc5a7802b02c9d8e8d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=b4a59b3ffc2c4123a68a0cbc5a7802b02c9d8e8d

Author: Vijay Kiran Kamuju <infyquest at gmail.com>
Date:   Wed Jul  1 23:14:50 2020 +0200

include: Add IXACT3Wave definition.

Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/xact3.h | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/include/xact3.h b/include/xact3.h
index 46f3bc467d..8b9c3967cf 100644
--- a/include/xact3.h
+++ b/include/xact3.h
@@ -331,6 +331,23 @@ typedef struct XACT_NOTIFICATION_CUE
 } XACT_NOTIFICATION_CUE, *LPXACT_NOTIFICATION_CUE;
 typedef const XACT_NOTIFICATION_CUE *LPCXACT_NOTIFICATION_CUE;
 
+typedef struct XACT_WAVE_PROPERTIES
+{
+    char friendlyName[WAVEBANK_ENTRYNAME_LENGTH];
+    WAVEBANKMINIWAVEFORMAT format;
+    DWORD durationInSamples;
+    WAVEBANKSAMPLEREGION loopRegion;
+    BOOL streaming;
+} XACT_WAVE_PROPERTIES, *LPXACT_WAVE_PROPERTIES;
+typedef const XACT_WAVE_PROPERTIES *LPCXACT_WAVE_PROPERTIES;
+
+typedef struct XACT_WAVE_INSTANCE_PROPERTIES
+{
+    XACT_WAVE_PROPERTIES properties;
+    BOOL backgroundMusic;
+} XACT_WAVE_INSTANCE_PROPERTIES, *LPXACT_WAVE_INSTANCE_PROPERTIES;
+typedef const XACT_WAVE_INSTANCE_PROPERTIES *LPCXACT_WAVE_INSTANCE_PROPERTIES;
+
 typedef struct XACT_NOTIFICATION_MARKER
 {
     XACTINDEX cueIndex;
@@ -482,6 +499,49 @@ DECLARE_INTERFACE(IXACT3Cue)
 #define IXACT3Cue_SetOutputVoiceMatrix(p,a,b,c,d) (p)->SetOutputVoiceMatrix(a,b,c,d)
 #endif
 
+/*****************************************************************************
+ * IXACT3Wave interface
+ */
+#define INTERFACE IXACT3Wave
+DECLARE_INTERFACE(IXACT3Wave)
+{
+    /*** IXACT3Wave methods ***/
+    STDMETHOD(Destroy)(THIS) PURE;
+    STDMETHOD(Play)(THIS) PURE;
+    STDMETHOD(Stop)(THIS_ DWORD pdwFlags) PURE;
+    STDMETHOD(Pause)(THIS_ BOOL fPause) PURE;
+    STDMETHOD(GetState)(THIS_ DWORD *pdwState) PURE;
+    STDMETHOD(SetPitch)(THIS_ XACTPITCH pitch) PURE;
+    STDMETHOD(SetVolume)(THIS_ XACTVOLUME volume) PURE;
+    STDMETHOD(SetMatrixCoefficients)(THIS_ UINT32 uSrcChannelCount, UINT32 uDstChannelCount, float *pMatrixCoefficients) PURE;
+    STDMETHOD(GetProperties)(THIS_ LPXACT_WAVE_INSTANCE_PROPERTIES pProperties) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IXACT3Wave methods ***/
+#define IXACT3Wave_Destroy(p)            (p)->lpVtbl->Destroy(p)
+#define IXACT3Wave_Play(p)               (p)->lpVtbl->Destroy(p)
+#define IXACT3Wave_Stop(p,a)             (p)->lpVtbl->Stop(p,a)
+#define IXACT3Wave_Pause(p,a)            (p)->lpVtbl->Pause(p,a)
+#define IXACT3Wave_GetState(p,a)         (p)->lpVtbl->GetState(p,a)
+#define IXACT3Wave_SetPitch(p,a)         (p)->lpVtbl->SetPitch(p,a)
+#define IXACT3Wave_SetVolume(p,a)        (p)->lpVtbl->SetVolume(p,a)
+#define IXACT3Wave_SetMatrixCoefficients(p,a,b,c) (p)->lpVtbl->SetMatrixCoefficients(p,a,b,c)
+#define IXACT3Wave_GetProperties(p,a)    (p)->lpVtbl->GetProperties(p,a)
+#else
+/*** IXACT3Wave methods ***/
+#define IXACT3Wave_Destroy(p)            (p)->Destroy()
+#define IXACT3Wave_Play(p)               (p)->Destroy()
+#define IXACT3Wave_Stop(p,a)             (p)->Stop(a)
+#define IXACT3Wave_Pause(p,a)            (p)->Pause(a)
+#define IXACT3Wave_GetState(p,a)         (p)->Stop(a)
+#define IXACT3Wave_SetPitch(p,a)         (p)->SetVariable(a)
+#define IXACT3Wave_SetVolume(p,a)        (p)->SetVolume(a)
+#define IXACT3Wave_SetMatrixCoefficients(p,a,b,c) (p)->SetMatrixCoefficients(a,b,c)
+#define IXACT3Wave_GetProperties(p,a)    (p)->GetProperties(a)
+#endif
+
 #define XACT_FLAG_ENGINE_CREATE_MANAGEDATA XACT_FLAG_MANAGEDATA
 #define XACT_FLAG_ENGINE_STOP_IMMEDIATE    XACT_FLAG_STOP_IMMEDIATE
 




More information about the wine-cvs mailing list