1 /* 2 * Declarations for MSACM driver 3 * 4 * Copyright 1998 Patrik Stridvall 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21 #ifndef __WINE_MSACMDRV_H 22 #define __WINE_MSACMDRV_H 23 24 #include <stdarg.h> 25 26 #include <windef.h> 27 #include <winbase.h> 28 #include <mmsystem.h> 29 #include <mmreg.h> 30 #include <msacm.h> 31 32 /*********************************************************************** 33 * Types 34 */ 35 36 /*********************************************************************** 37 * Defines/Enums 38 */ 39 40 #define MAKE_ACM_VERSION(mjr, mnr, bld) \ 41 (((LONG)(mjr)<<24) | ((LONG)(mnr)<<16) | ((LONG)bld)) 42 43 #define ACMDRVOPENDESC_SECTIONNAME_CHARS 44 45 #define ACMDM_DRIVER_NOTIFY (ACMDM_BASE + 1) 46 #define ACMDM_DRIVER_DETAILS (ACMDM_BASE + 10) 47 48 #define ACMDM_HARDWARE_WAVE_CAPS_INPUT (ACMDM_BASE + 20) 49 #define ACMDM_HARDWARE_WAVE_CAPS_OUTPUT (ACMDM_BASE + 21) 50 51 #define ACMDM_FORMATTAG_DETAILS (ACMDM_BASE + 25) 52 #define ACMDM_FORMAT_DETAILS (ACMDM_BASE + 26) 53 #define ACMDM_FORMAT_SUGGEST (ACMDM_BASE + 27) 54 55 #define ACMDM_FILTERTAG_DETAILS (ACMDM_BASE + 50) 56 #define ACMDM_FILTER_DETAILS (ACMDM_BASE + 51) 57 58 #define ACMDM_STREAM_OPEN (ACMDM_BASE + 76) 59 #define ACMDM_STREAM_CLOSE (ACMDM_BASE + 77) 60 #define ACMDM_STREAM_SIZE (ACMDM_BASE + 78) 61 #define ACMDM_STREAM_CONVERT (ACMDM_BASE + 79) 62 #define ACMDM_STREAM_RESET (ACMDM_BASE + 80) 63 #define ACMDM_STREAM_PREPARE (ACMDM_BASE + 81) 64 #define ACMDM_STREAM_UNPREPARE (ACMDM_BASE + 82) 65 #define ACMDM_STREAM_UPDATE (ACMDM_BASE + 83) 66 67 /*********************************************************************** 68 * Structures 69 */ 70 71 typedef struct _ACMDRVOPENDESCA 72 { 73 DWORD cbStruct; 74 FOURCC fccType; 75 FOURCC fccComp; 76 DWORD dwVersion; 77 DWORD dwFlags; 78 DWORD dwError; 79 LPCSTR pszSectionName; 80 LPCSTR pszAliasName; 81 DWORD dnDevNode; 82 } ACMDRVOPENDESCA, *PACMDRVOPENDESCA; 83 84 typedef struct _ACMDRVOPENDESCW 85 { 86 DWORD cbStruct; 87 FOURCC fccType; 88 FOURCC fccComp; 89 DWORD dwVersion; 90 DWORD dwFlags; 91 DWORD dwError; 92 LPCWSTR pszSectionName; 93 LPCWSTR pszAliasName; 94 DWORD dnDevNode; 95 } ACMDRVOPENDESCW, *PACMDRVOPENDESCW; 96 97 typedef struct _ACMDRVSTREAMINSTANCE 98 { 99 DWORD cbStruct; 100 PWAVEFORMATEX pwfxSrc; 101 PWAVEFORMATEX pwfxDst; 102 PWAVEFILTER pwfltr; 103 DWORD_PTR dwCallback; 104 DWORD_PTR dwInstance; 105 DWORD fdwOpen; 106 DWORD fdwDriver; 107 DWORD_PTR dwDriver; 108 HACMSTREAM has; 109 } ACMDRVSTREAMINSTANCE, *PACMDRVSTREAMINSTANCE; 110 111 typedef struct _ACMDRVSTREAMHEADER *PACMDRVSTREAMHEADER; 112 typedef struct _ACMDRVSTREAMHEADER { 113 DWORD cbStruct; 114 DWORD fdwStatus; 115 DWORD_PTR dwUser; 116 LPBYTE pbSrc; 117 DWORD cbSrcLength; 118 DWORD cbSrcLengthUsed; 119 DWORD_PTR dwSrcUser; 120 LPBYTE pbDst; 121 DWORD cbDstLength; 122 DWORD cbDstLengthUsed; 123 DWORD_PTR dwDstUser; 124 125 DWORD fdwConvert; 126 PACMDRVSTREAMHEADER *padshNext; 127 DWORD fdwDriver; 128 DWORD_PTR dwDriver; 129 130 /* Internal fields for ACM */ 131 DWORD fdwPrepared; 132 DWORD_PTR dwPrepared; 133 LPBYTE pbPreparedSrc; 134 DWORD cbPreparedSrcLength; 135 LPBYTE pbPreparedDst; 136 DWORD cbPreparedDstLength; 137 } ACMDRVSTREAMHEADER; 138 139 typedef struct _ACMDRVSTREAMSIZE 140 { 141 DWORD cbStruct; 142 DWORD fdwSize; 143 DWORD cbSrcLength; 144 DWORD cbDstLength; 145 } ACMDRVSTREAMSIZE, *PACMDRVSTREAMSIZE; 146 147 typedef struct _ACMDRVFORMATSUGGEST 148 { 149 DWORD cbStruct; 150 DWORD fdwSuggest; 151 PWAVEFORMATEX pwfxSrc; 152 DWORD cbwfxSrc; 153 PWAVEFORMATEX pwfxDst; 154 DWORD cbwfxDst; 155 } ACMDRVFORMATSUGGEST, *PACMDRVFORMATSUGGEST; 156 157 #endif /* __WINE_MSACMDRV_H */ 158