3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Declarations for MSACM driver
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright 1998 Patrik Stridvall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __WINE_MSACMDRV_H
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __WINE_MSACMDRV_H
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <stdarg.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <windef.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <winbase.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <mmsystem.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <mmreg.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <msacm.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/***********************************************************************
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Types
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/***********************************************************************
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Defines/Enums
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MAKE_ACM_VERSION(mjr, mnr, bld) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (((LONG)(mjr)<<24) | ((LONG)(mnr)<<16) | ((LONG)bld))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDRVOPENDESC_SECTIONNAME_CHARS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_DRIVER_NOTIFY (ACMDM_BASE + 1)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_DRIVER_DETAILS (ACMDM_BASE + 10)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_HARDWARE_WAVE_CAPS_INPUT (ACMDM_BASE + 20)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_HARDWARE_WAVE_CAPS_OUTPUT (ACMDM_BASE + 21)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_FORMATTAG_DETAILS (ACMDM_BASE + 25)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_FORMAT_DETAILS (ACMDM_BASE + 26)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_FORMAT_SUGGEST (ACMDM_BASE + 27)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_FILTERTAG_DETAILS (ACMDM_BASE + 50)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_FILTER_DETAILS (ACMDM_BASE + 51)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_STREAM_OPEN (ACMDM_BASE + 76)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_STREAM_CLOSE (ACMDM_BASE + 77)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_STREAM_SIZE (ACMDM_BASE + 78)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_STREAM_CONVERT (ACMDM_BASE + 79)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_STREAM_RESET (ACMDM_BASE + 80)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_STREAM_PREPARE (ACMDM_BASE + 81)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_STREAM_UNPREPARE (ACMDM_BASE + 82)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACMDM_STREAM_UPDATE (ACMDM_BASE + 83)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/***********************************************************************
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Structures
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _ACMDRVOPENDESCA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbStruct;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FOURCC fccType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FOURCC fccComp;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwVersion;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwFlags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwError;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPCSTR pszSectionName;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPCSTR pszAliasName;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dnDevNode;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} ACMDRVOPENDESCA, *PACMDRVOPENDESCA;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _ACMDRVOPENDESCW
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbStruct;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FOURCC fccType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FOURCC fccComp;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwVersion;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwFlags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwError;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPCWSTR pszSectionName;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPCWSTR pszAliasName;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dnDevNode;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} ACMDRVOPENDESCW, *PACMDRVOPENDESCW;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _ACMDRVSTREAMINSTANCE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbStruct;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PWAVEFORMATEX pwfxSrc;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PWAVEFORMATEX pwfxDst;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PWAVEFILTER pwfltr;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD_PTR dwCallback;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD_PTR dwInstance;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD fdwOpen;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD fdwDriver;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD_PTR dwDriver;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HACMSTREAM has;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} ACMDRVSTREAMINSTANCE, *PACMDRVSTREAMINSTANCE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _ACMDRVSTREAMHEADER *PACMDRVSTREAMHEADER;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <pshpack1.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _ACMDRVSTREAMHEADER {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbStruct;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD fdwStatus;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD_PTR dwUser;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPBYTE pbSrc;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbSrcLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbSrcLengthUsed;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD_PTR dwSrcUser;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPBYTE pbDst;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbDstLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbDstLengthUsed;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD_PTR dwDstUser;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD fdwConvert;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PACMDRVSTREAMHEADER *padshNext;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD fdwDriver;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD_PTR dwDriver;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /* Internal fields for ACM */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD fdwPrepared;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD_PTR dwPrepared;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPBYTE pbPreparedSrc;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbPreparedSrcLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPBYTE pbPreparedDst;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbPreparedDstLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} ACMDRVSTREAMHEADER;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <poppack.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _ACMDRVSTREAMSIZE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbStruct;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD fdwSize;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbSrcLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbDstLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} ACMDRVSTREAMSIZE, *PACMDRVSTREAMSIZE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _ACMDRVFORMATSUGGEST
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbStruct;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD fdwSuggest;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PWAVEFORMATEX pwfxSrc;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbwfxSrc;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PWAVEFORMATEX pwfxDst;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbwfxDst;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} ACMDRVFORMATSUGGEST, *PACMDRVFORMATSUGGEST;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* __WINE_MSACMDRV_H */