[PATCH 1/5] include: Add some interface definitions for axextend.idl.
Jactry Zeng
jzeng at codeweavers.com
Tue May 12 08:35:14 CDT 2020
Signed-off-by: Jactry Zeng <jzeng at codeweavers.com>
---
include/Makefile.in | 3 +
include/axextend.idl | 183 ++++++++++++++++++++++++++++++++
include/axextendenums.h | 32 ++++++
include/exposeenums2managed.h | 29 +++++
include/unexposeenums2managed.h | 20 ++++
5 files changed, 267 insertions(+)
create mode 100644 include/axextendenums.h
create mode 100644 include/exposeenums2managed.h
create mode 100644 include/unexposeenums2managed.h
diff --git a/include/Makefile.in b/include/Makefile.in
index 07ab7b7e8f..9c64ca293d 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -36,6 +36,7 @@ SOURCES = \
avrt.h \
axcore.idl \
axextend.idl \
+ axextendenums.h \
basetsd.h \
basetyps.h \
bcrypt.h \
@@ -268,6 +269,7 @@ SOURCES = \
errorrep.h \
errors.h \
errrec.idl \
+ exposeenums2managed.h \
evcode.h \
evntprov.h \
evntrace.h \
@@ -680,6 +682,7 @@ SOURCES = \
uiautomationcoreapi.h \
uiribbon.idl \
unknwn.idl \
+ unexposeenums2managed.h \
urlhist.idl \
urlmon.idl \
userenv.h \
diff --git a/include/axextend.idl b/include/axextend.idl
index 6efe659fda..8b46d665b5 100644
--- a/include/axextend.idl
+++ b/include/axextend.idl
@@ -20,6 +20,8 @@
#pragma makedep install
#endif
+#include <axextendenums.h>
+
interface IAMAnalogVideoDecoder;
interface IAMAnalogVideoEncoder;
interface IAMAudioInputMixer;
@@ -1288,3 +1290,184 @@ interface IAMVfwCaptureDialogs : IUnknown
[in] long data1,
[in] long data2);
}
+
+[
+ local,
+ object,
+ uuid(6a2e0670-28e4-11d0-a18c-00a0c9118956),
+ pointer_default(unique)
+]
+interface IAMVideoControl : IUnknown
+{
+ HRESULT GetCaps([in] IPin *pin, [out] long *flags);
+ HRESULT SetMode([in] IPin *pin, long mode);
+ HRESULT GetMode([in] IPin *pin, [out] long *mode);
+ HRESULT GetCurrentActualFrameRate([in] IPin *pin, [out] LONGLONG *frame_rate);
+ HRESULT GetMaxAvailableFrameRate([in] IPin *pin, [in] long index,
+ [in] SIZE dimensions, [out] LONGLONG *frame_rate);
+ HRESULT GetFrameRateList([in] IPin *pin, [in] long index, [in] SIZE dimensions,
+ [out] long *list_size, [out] LONGLONG **frame_rate);
+}
+
+[
+ local,
+ object,
+ uuid(56ed71a0-af5f-11d0-b3f0-00aa003761c5),
+ pointer_default(unique)
+]
+interface IAMBufferNegotiation : IUnknown
+{
+ HRESULT SuggestAllocatorProperties([in] const ALLOCATOR_PROPERTIES *prop);
+ HRESULT GetAllocatorProperties([out] ALLOCATOR_PROPERTIES *prop);
+}
+
+[
+ local,
+ object,
+ uuid(c6e13344-30ac-11d0-a18c-00a0c9118956),
+ pointer_default(unique)
+]
+interface IAMDroppedFrames : IUnknown
+{
+ HRESULT GetNumDropped([out] long *number);
+ HRESULT GetNumNotDropped([out] long *number);
+ HRESULT GetDroppedInfo([in] long size, [out] long *array, [out] long *copied);
+ HRESULT GetAverageFrameSize([out] long *size);
+}
+
+[
+ local,
+ object,
+ uuid(62ea93ba-ec62-11d2-b770-00c04fb6bd3d),
+ pointer_default(unique)
+]
+interface IAMLatency : IUnknown
+{
+ HRESULT GetLatency([in, out] REFERENCE_TIME *latency);
+}
+
+[
+ local,
+ object,
+ uuid(f185fe76-e64e-11d2-b76e-00c04fb6bd3d),
+ pointer_default(unique)
+]
+interface IAMPushSource : IAMLatency
+{
+ HRESULT GetPushSourceFlags([out] ULONG *flags);
+ HRESULT SetPushSourceFlags([in] ULONG flags);
+ HRESULT SetStreamOffset([in] REFERENCE_TIME offset);
+ HRESULT GetStreamOffset([out] REFERENCE_TIME *offset);
+ HRESULT GetMaxStreamOffset([out] REFERENCE_TIME *offset);
+ HRESULT SetMaxStreamOffset([in] REFERENCE_TIME offset);
+};
+
+[
+ local,
+ object,
+ uuid(c6e13343-30ac-11d0-a18c-00a0c9118956),
+ pointer_default(unique)
+]
+interface IAMVideoCompression : IUnknown
+{
+ HRESULT put_KeyFrameRate([in] long frame_rate);
+ HRESULT get_KeyFrameRate([out] long *frame_rate);
+ HRESULT put_PFramesPerKeyFrame([in] long frame);
+ HRESULT get_PFramesPerKeyFrame([out] long *frame);
+ HRESULT put_Quality([in] double quality);
+ HRESULT get_Quality([out] double *quality);
+ HRESULT put_WindowSize([in] DWORDLONG size);
+ HRESULT get_WindowSize([out] DWORDLONG *size);
+ HRESULT GetInfo([out, size_is(*version_size)] LPWSTR version, [in, out] int *version_size,
+ [out, size_is(*description_size)] LPWSTR description, [in, out] int *description_size,
+ [out] long *frame_rate, [out] long *key, [out] double *quality, [out] long *capabilities);
+ HRESULT OverrideKeyFrame([in] long number);
+ HRESULT OverrideFrameSize([in] long number, [in] long size);
+}
+
+[
+ local,
+ object,
+ uuid(c6e13380-30ac-11d0-a18c-00a0c9118956),
+ pointer_default(unique)
+]
+interface IAMCrossbar : IUnknown
+{
+ HRESULT get_PinCounts([out] long *output, [out] long *intput);
+ HRESULT CanRoute([in] long output, [in] long input);
+ HRESULT Route([in] long output, [in] long input);
+ HRESULT get_IsRoutedTo([in] long output, [out] long *input);
+ HRESULT get_CrossbarPinInfo([in] BOOL is_input, [in] long index,
+ [out] long *related, [out] long *type);
+}
+
+typedef enum tagAMTunerEventType
+{
+ AMTUNER_EVENT_CHANGED = 0x0001,
+} AMTunerEventType;
+
+[
+ local,
+ object,
+ uuid(211a8760-03ac-11d1-8d13-00aa00bd8339),
+ pointer_default(unique)
+]
+interface IAMTunerNotification : IUnknown
+{
+ HRESULT OnEvent([in] AMTunerEventType event);
+}
+
+typedef enum tagAMTunerModeType
+{
+ AMTUNER_MODE_DEFAULT = 0x0000,
+ AMTUNER_MODE_TV = 0x0001,
+ AMTUNER_MODE_FM_RADIO = 0x0002,
+ AMTUNER_MODE_AM_RADIO = 0x0004,
+ AMTUNER_MODE_DSS = 0x0008,
+} AMTunerModeType;
+
+[
+ local,
+ object,
+ uuid(211a8761-03ac-11d1-8d13-00aa00bd8339),
+ pointer_default(unique)
+]
+interface IAMTuner : IUnknown
+{
+ HRESULT put_Channel([in] long channel, [in] long video, [in] long audio);
+ HRESULT get_Channel([out] long *channel, [out] long *video, [out] long *audio);
+ HRESULT ChannelMinMax([out] long *min, [out] long *max);
+ HRESULT put_CountryCode([in] long country);
+ HRESULT get_CountryCode([out] long *country);
+ HRESULT put_TuningSpace([in] long tuning_space);
+ HRESULT get_TuningSpace([out] long *tuning_space);
+ [local] HRESULT Logon([in] HANDLE user);
+ HRESULT Logout();
+ HRESULT SignalPresent([out] long *signal_strength);
+ HRESULT put_Mode([in] AMTunerModeType mode);
+ HRESULT get_Mode([out] AMTunerModeType *mode);
+ HRESULT GetAvailableModes([out] long *modes);
+ HRESULT RegisterNotificationCallBack([in] IAMTunerNotification *notify, [in] long events);
+ HRESULT UnRegisterNotificationCallBack([in] IAMTunerNotification *notify);
+}
+
+[
+ local,
+ object,
+ uuid(211a8766-03ac-11d1-8d13-00aa00bd8339),
+ pointer_default(unique)
+]
+interface IAMTVTuner : IAMTuner
+{
+ HRESULT get_AvailableTVFormats([out] long *standard);
+ HRESULT get_TVFormat([out] long *standard);
+ HRESULT AutoTune([in] long channel, [out] long *signal);
+ HRESULT StoreAutoTune();
+ HRESULT get_NumInputConnections([out] long *number);
+ HRESULT put_InputType([in] long index, [in] TunerInputType type);
+ HRESULT get_InputType([in] long index, [out] TunerInputType *type);
+ HRESULT put_ConnectInput([in] long index);
+ HRESULT get_ConnectInput([out] long *index);
+ HRESULT get_VideoFrequency([out] long *freq);
+ HRESULT get_AudioFrequency([out] long *freq);
+}
diff --git a/include/axextendenums.h b/include/axextendenums.h
new file mode 100644
index 0000000000..add145a37b
--- /dev/null
+++ b/include/axextendenums.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2020 Jactry Zeng for CodeWeavers
+ *
+ * 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
+ */
+
+#ifndef AXEXTEND_ENUM_H
+#define AXEXTEND_ENUM_H
+
+#include <exposeenums2managed.h>
+
+ENUM16 TAG(TunerInputType)
+{
+ TunerInputCable,
+ TunerInputAntenna
+} TunerInputType;
+
+#include <unexposeenums2managed.h>
+
+#endif /* AXEXTEND_ENUM_H */
diff --git a/include/exposeenums2managed.h b/include/exposeenums2managed.h
new file mode 100644
index 0000000000..3f2e17cfc5
--- /dev/null
+++ b/include/exposeenums2managed.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2020 Jactry Zeng for CodeWeavers
+ *
+ * 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
+ */
+
+#ifdef MANAGED_ENUMS
+
+#define TAG(x) x
+#define ENUM16 ENUM
+
+#else /* MANAGED_ENUMS */
+
+#define TAG(x) tag##x
+#define ENUM16 typedef enum
+
+#endif /* MANAGED_ENUMS */
diff --git a/include/unexposeenums2managed.h b/include/unexposeenums2managed.h
new file mode 100644
index 0000000000..e38149c5ea
--- /dev/null
+++ b/include/unexposeenums2managed.h
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2020 Jactry Zeng for CodeWeavers
+ *
+ * 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
+ */
+
+#undef ENUM16
+#undef TAG
--
2.26.2
More information about the wine-devel
mailing list