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..5f26283640c --- /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 +{ + HRESULT get_AudioFormat( + MPEG1WAVEFORMAT *format); + + HRESULT get_DecoderAccuracy( + unsigned long *accuracy); + + HRESULT get_DecoderWordSize( + unsigned long *word_size); + + HRESULT get_DualMode( + unsigned long *dual_mode); + + HRESULT get_FrequencyDivider( + unsigned long *divider); + + HRESULT get_IntegerDecode( + unsigned long *integer_decode); + + HRESULT get_Stereo( + unsigned long *stereo); + + HRESULT put_DecoderAccuracy( + unsigned long accuracy); + + HRESULT put_DecoderWordSize( + unsigned long word_size); + + HRESULT put_DualMode( + unsigned long dual_mode); + + HRESULT put_FrequencyDivider( + unsigned long divider); + + HRESULT put_IntegerDecode( + unsigned long integer_decode); + + HRESULT put_Stereo( + unsigned long stereo); +}