From: Anton Baskanov baskanov@gmail.com
Signed-off-by: Anton Baskanov baskanov@gmail.com --- 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 <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); +}