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