Commit cba0e8ec authored by Jactry Zeng's avatar Jactry Zeng Committed by Alexandre Julliard

include: Add some interface definitions for axextend.idl.

parent 49c33c92
......@@ -36,6 +36,7 @@ SOURCES = \
avrt.h \
axcore.idl \
axextend.idl \
axextendenums.h \
basetsd.h \
basetyps.h \
bcrypt.h \
......@@ -275,6 +276,7 @@ SOURCES = \
excpt.h \
exdisp.idl \
exdispid.h \
exposeenums2managed.h \
fci.h \
fdi.h \
fileapi.h \
......@@ -679,6 +681,7 @@ SOURCES = \
uiautomationcore.idl \
uiautomationcoreapi.h \
uiribbon.idl \
unexposeenums2managed.h \
unknwn.idl \
urlhist.idl \
urlmon.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);
}
/*
* 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 */
/*
* 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 */
/*
* 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment