Module: wine
Branch: master
Commit: ce4c1987a11bcacb7d1ba14f2e9a6bb18d23728b
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ce4c1987a11bcacb7d1ba14f…
Author: Anton Baskanov <baskanov(a)gmail.com>
Date: Wed Apr 13 09:21:52 2022 +0700
include: Add IMpegAudioDecoder definition.
Signed-off-by: Anton Baskanov <baskanov(a)gmail.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
include/Makefile.in | 1 +
include/mmreg.h | 12 +++++++++
include/mpegtype.idl | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 82 insertions(+)
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 <mmreg.h>")
+#include <mmreg.h>
+
+[
+ 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);
+}