From ce4c1987a11bcacb7d1ba14f2e9a6bb18d23728b Mon Sep 17 00:00:00 2001 From: Anton Baskanov Date: Wed, 13 Apr 2022 09:21:52 +0700 Subject: [PATCH] include: Add IMpegAudioDecoder definition. Signed-off-by: Anton Baskanov Signed-off-by: Alexandre Julliard --- include/Makefile.in | 1 + include/mmreg.h | 12 ++++++++ include/mpegtype.idl | 69 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 include/mpegtype.idl diff --git a/include/Makefile.in b/include/Makefile.in index f3e62c4bb5a..14c4caeb688 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -435,6 +435,7 @@ SOURCES = \ mmreg.h \ mmstream.idl \ mmsystem.h \ + mpegtype.idl \ mprapi.h \ mprerror.h \ msacm.h \ diff --git a/include/mmreg.h b/include/mmreg.h index bcee2a5ec61..1b19e1f068f 100644 --- a/include/mmreg.h +++ b/include/mmreg.h @@ -836,6 +836,18 @@ typedef struct { GUID SubFormat; } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE; +typedef struct { + WAVEFORMATEX wfx; + WORD fwHeadLayer; + DWORD dwHeadBitrate; + WORD fwHeadMode; + WORD fwHeadModeExt; + WORD wHeadEmphasis; + WORD fwHeadFlags; + DWORD dwPTSLow; + DWORD dwPTSHigh; +} MPEG1WAVEFORMAT; + #pragma pack(pop) cpp_quote("#endif") diff --git a/include/mpegtype.idl b/include/mpegtype.idl new file mode 100644 index 00000000000..dd0284cfc53 --- /dev/null +++ b/include/mpegtype.idl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2022 Anton Baskanov + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "unknwn.idl"; + +cpp_quote("#include ") +#include + +[ + object, + /* uuid(b45dd570-3c77-11d1-abe1-00a0c905f375) conflicts with uuids.h */ + pointer_default(unique) +] +interface IMpegAudioDecoder : IUnknown +{ + [propget] HRESULT FrequencyDivider( + [out, retval] unsigned long *divider); + + [propput] HRESULT FrequencyDivider( + unsigned long divider); + + [propget] HRESULT DecoderAccuracy( + [out, retval] unsigned long *accuracy); + + [propput] HRESULT DecoderAccuracy( + unsigned long accuracy); + + [propget] HRESULT Stereo( + [out, retval] unsigned long *stereo); + + [propput] HRESULT Stereo( + unsigned long stereo); + + [propget] HRESULT DecoderWordSize( + [out, retval] unsigned long *word_size); + + [propput] HRESULT DecoderWordSize( + unsigned long word_size); + + [propget] HRESULT IntegerDecode( + [out, retval] unsigned long *integer_decode); + + [propput] HRESULT IntegerDecode( + unsigned long integer_decode); + + [propget] HRESULT DualMode( + [out, retval] unsigned long *dual_mode); + + [propput] HRESULT DualMode( + unsigned long dual_mode); + + [propget] HRESULT AudioFormat( + [out, retval] MPEG1WAVEFORMAT *format); +}