diff fuhtark_test/include/winapi/msptrmac.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/msptrmac.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,48 @@
+#ifndef _MSPTRMAC_H_
+#define _MSPTRMAC_H_
+
+#define WAVEIN_NAME L"WaveIn Terminal"
+
+#ifdef __cplusplus
+
+class CAudioCaptureTerminal : public IDispatchImpl<ITBasicAudioTerminal,&IID_ITBasicAudioTerminal,&LIBID_TAPI3Lib>,public IDispatchImpl<ITStaticAudioTerminal,&IID_ITStaticAudioTerminal,&LIBID_TAPI3Lib>,public CSingleFilterStaticTerminal,public CMSPObjectSafetyImpl
+{
+  BEGIN_COM_MAP(CAudioCaptureTerminal)
+    COM_INTERFACE_ENTRY(IObjectSafety)
+    COM_INTERFACE_ENTRY(ITBasicAudioTerminal)
+    COM_INTERFACE_ENTRY(ITStaticAudioTerminal)
+    COM_INTERFACE_ENTRY_CHAIN(CSingleFilterStaticTerminal)
+  END_COM_MAP()
+  DECLARE_VQI()
+  DECLARE_LOG_ADDREF_RELEASE(CAudioCaptureTerminal)
+public:
+  CAudioCaptureTerminal();
+  virtual ~CAudioCaptureTerminal();
+  static HRESULT CreateTerminal(CComPtr<IMoniker> pMoniker,MSP_HANDLE htAddress,ITTerminal **ppTerm);
+  HRESULT FindTerminalPin();
+public:
+  STDMETHOD(get_Balance)(long *pVal);
+  STDMETHOD(put_Balance)(long newVal);
+  STDMETHOD(get_Volume) (long *pVal);
+  STDMETHOD(put_Volume) (long newVal);
+public:
+  STDMETHOD(get_WaveId) (long *plWaveId);
+  STDMETHODIMP CompleteConnectTerminal(void);
+  STDMETHODIMP DisconnectTerminal(IGraphBuilder *pGraph,DWORD dwReserved);
+  virtual HRESULT AddFiltersToGraph();
+  virtual DWORD GetSupportedMediaTypes(void) { return (DWORD) TAPIMEDIATYPE_AUDIO; }
+  HRESULT CreateFilters();
+  inline HRESULT CreateFiltersIfRequired();
+private:
+  bool m_bResourceReserved;
+  CComPtr<IAMAudioInputMixer> m_pIAMAudioInputMixer;
+};
+
+inline HRESULT CAudioCaptureTerminal::CreateFiltersIfRequired() {
+  if(!m_pIFilter) return CreateFilters();
+  return S_OK;
+}
+
+#endif /* __cplusplus */
+
+#endif