Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 1 | /* |
Alexandre Julliard | 0799c1a | 2002-03-09 23:29:33 +0000 | [diff] [blame] | 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 19 | */ |
| 20 | |
| 21 | #ifndef __WINE_MSACMDRV_H |
| 22 | #define __WINE_MSACMDRV_H |
| 23 | |
Alexandre Julliard | e37c6e1 | 2003-09-05 23:08:26 +0000 | [diff] [blame] | 24 | #include <stdarg.h> |
| 25 | |
Jim Aston | 2e1cafa | 1999-03-14 16:35:05 +0000 | [diff] [blame] | 26 | #include "windef.h" |
Alexandre Julliard | e37c6e1 | 2003-09-05 23:08:26 +0000 | [diff] [blame] | 27 | #include "winbase.h" |
Alexandre Julliard | e37c6e1 | 2003-09-05 23:08:26 +0000 | [diff] [blame] | 28 | #include "mmsystem.h" |
| 29 | #include "mmreg.h" |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 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 | |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 43 | #define ACMDRVOPENDESC_SECTIONNAME_CHARS |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 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 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 71 | typedef struct _ACMDRVOPENDESCA |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 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; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 82 | } ACMDRVOPENDESCA, *PACMDRVOPENDESCA; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 83 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 84 | typedef struct _ACMDRVOPENDESCW |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 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; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 95 | } ACMDRVOPENDESCW, *PACMDRVOPENDESCW; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 96 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 97 | typedef struct _ACMDRVSTREAMINSTANCE |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 98 | { |
| 99 | DWORD cbStruct; |
Bertho Stultiens | 27a0ced | 1999-02-14 09:41:42 +0000 | [diff] [blame] | 100 | PWAVEFORMATEX pwfxSrc; |
| 101 | PWAVEFORMATEX pwfxDst; |
| 102 | PWAVEFILTER pwfltr; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 103 | DWORD dwCallback; |
| 104 | DWORD dwInstance; |
| 105 | DWORD fdwOpen; |
| 106 | DWORD fdwDriver; |
| 107 | DWORD dwDriver; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 108 | HACMSTREAM has; |
| 109 | } ACMDRVSTREAMINSTANCE, *PACMDRVSTREAMINSTANCE; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 110 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 111 | typedef struct _ACMDRVSTREAMHEADER *PACMDRVSTREAMHEADER; |
| 112 | typedef struct _ACMDRVSTREAMHEADER { |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 113 | DWORD cbStruct; |
| 114 | DWORD fdwStatus; |
| 115 | DWORD dwUser; |
| 116 | LPBYTE pbSrc; |
| 117 | DWORD cbSrcLength; |
| 118 | DWORD cbSrcLengthUsed; |
| 119 | DWORD dwSrcUser; |
| 120 | LPBYTE pbDst; |
| 121 | DWORD cbDstLength; |
| 122 | DWORD cbDstLengthUsed; |
| 123 | DWORD dwDstUser; |
| 124 | |
| 125 | DWORD fdwConvert; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 126 | PACMDRVSTREAMHEADER *padshNext; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 127 | DWORD fdwDriver; |
| 128 | DWORD dwDriver; |
| 129 | |
| 130 | /* Internal fields for ACM */ |
| 131 | DWORD fdwPrepared; |
| 132 | DWORD dwPrepared; |
| 133 | LPBYTE pbPreparedSrc; |
| 134 | DWORD cbPreparedSrcLength; |
| 135 | LPBYTE pbPreparedDst; |
| 136 | DWORD cbPreparedDstLength; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 137 | } ACMDRVSTREAMHEADER; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 138 | |
| 139 | typedef struct _ACMDRVSTREAMSIZE |
| 140 | { |
| 141 | DWORD cbStruct; |
| 142 | DWORD fdwSize; |
| 143 | DWORD cbSrcLength; |
| 144 | DWORD cbDstLength; |
Alexandre Julliard | 32b1e67 | 2004-01-20 21:55:28 +0000 | [diff] [blame] | 145 | } ACMDRVSTREAMSIZE, *PACMDRVSTREAMSIZE; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 146 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 147 | typedef struct _ACMDRVFORMATSUGGEST |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 148 | { |
| 149 | DWORD cbStruct; |
| 150 | DWORD fdwSuggest; |
Bertho Stultiens | 27a0ced | 1999-02-14 09:41:42 +0000 | [diff] [blame] | 151 | PWAVEFORMATEX pwfxSrc; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 152 | DWORD cbwfxSrc; |
Bertho Stultiens | 27a0ced | 1999-02-14 09:41:42 +0000 | [diff] [blame] | 153 | PWAVEFORMATEX pwfxDst; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 154 | DWORD cbwfxDst; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 155 | } ACMDRVFORMATSUGGEST, *PACMDRVFORMATSUGGEST; |
Patrik Stridvall | 29c08dd | 1998-10-11 17:00:29 +0000 | [diff] [blame] | 156 | |
| 157 | #endif /* __WINE_MSACMDRV_H */ |