You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
393 lines
9.5 KiB
393 lines
9.5 KiB
///////////////////////////////////////////////////////////////////////////
|
|
// ipmsp.idl : IDL source for IP specific msp interfaces
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __IPMSP_IDL__
|
|
#define __IPMSP_IDL__
|
|
|
|
import "tapi3if.idl";
|
|
import "strmif.idl";
|
|
|
|
// The maximum length of the info string is 256 bytes inluding EOS.
|
|
const unsigned long MAX_PARTICIPANT_TYPED_INFO_LENGTH = 256;
|
|
|
|
const unsigned long MAX_QOS_ID_LEN = 128;
|
|
|
|
typedef enum PARTICIPANT_TYPED_INFO
|
|
{
|
|
PTI_CANONICALNAME,
|
|
PTI_NAME,
|
|
PTI_EMAILADDRESS,
|
|
PTI_PHONENUMBER,
|
|
PTI_LOCATION,
|
|
PTI_TOOL,
|
|
PTI_NOTES,
|
|
PTI_PRIVATE
|
|
|
|
} PARTICIPANT_TYPED_INFO;
|
|
|
|
typedef enum PARTICIPANT_EVENT
|
|
{
|
|
PE_NEW_PARTICIPANT,
|
|
PE_INFO_CHANGE,
|
|
PE_PARTICIPANT_LEAVE,
|
|
|
|
PE_NEW_SUBSTREAM,
|
|
PE_SUBSTREAM_REMOVED,
|
|
|
|
PE_SUBSTREAM_MAPPED,
|
|
PE_SUBSTREAM_UNMAPPED,
|
|
|
|
PE_PARTICIPANT_TIMEOUT,
|
|
PE_PARTICIPANT_RECOVERED,
|
|
|
|
PE_PARTICIPANT_ACTIVE,
|
|
PE_PARTICIPANT_INACTIVE,
|
|
|
|
PE_LOCAL_TALKING,
|
|
PE_LOCAL_SILENT
|
|
|
|
} PARTICIPANT_EVENT;
|
|
|
|
[
|
|
uuid(5899b820-5a34-11d2-95a0-00a0244d2298),
|
|
helpstring("ITParticipant Interface"),
|
|
pointer_default(unique),
|
|
dual
|
|
]
|
|
interface ITParticipant : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("propertry ParticipantTypedInfo")]
|
|
HRESULT ParticipantTypedInfo(
|
|
[in] PARTICIPANT_TYPED_INFO InfoType,
|
|
[out, retval] BSTR * ppInfo
|
|
);
|
|
|
|
[propget, id(2), helpstring("the media types of the participant")]
|
|
HRESULT MediaTypes(
|
|
[out, retval] long * plMediaType
|
|
);
|
|
|
|
[propput, id(3), helpstring("enable or disable a participant")]
|
|
HRESULT Status(
|
|
[in] ITStream * pITStream,
|
|
[in] VARIANT_BOOL fEnable
|
|
);
|
|
|
|
[propget, id(3), helpstring("the status of the participant")]
|
|
HRESULT Status(
|
|
[in] ITStream * pITStream,
|
|
[out, retval] VARIANT_BOOL * pStatus
|
|
);
|
|
|
|
[propget, id(4), helpstring("an ITCollection of streams that have the participant")]
|
|
HRESULT Streams(
|
|
[out, retval] VARIANT * pVariant
|
|
);
|
|
|
|
[id(6), hidden]
|
|
HRESULT EnumerateStreams(
|
|
[out, retval] IEnumStream ** ppEnumStream
|
|
);
|
|
}
|
|
|
|
|
|
cpp_quote("#ifndef STREAM_INTERFACES_DEFINED")
|
|
cpp_quote("#define STREAM_INTERFACES_DEFINED")
|
|
|
|
const DWORD MAX_DESCRIPTION_LEN = 256;
|
|
|
|
typedef struct _TAPI_AUDIO_STREAM_CONFIG_CAPS
|
|
{
|
|
WCHAR Description[MAX_DESCRIPTION_LEN];
|
|
ULONG MinimumChannels;
|
|
ULONG MaximumChannels;
|
|
ULONG ChannelsGranularity;
|
|
ULONG MinimumBitsPerSample;
|
|
ULONG MaximumBitsPerSample;
|
|
ULONG BitsPerSampleGranularity;
|
|
ULONG MinimumSampleFrequency;
|
|
ULONG MaximumSampleFrequency;
|
|
ULONG SampleFrequencyGranularity;
|
|
ULONG MinimumAvgBytesPerSec;
|
|
ULONG MaximumAvgBytesPerSec;
|
|
ULONG AvgBytesPerSecGranularity;
|
|
} TAPI_AUDIO_STREAM_CONFIG_CAPS, *PTAPI_AUDIO_STREAM_CONFIG_CAPS;
|
|
|
|
typedef struct _TAPI_VIDEO_STREAM_CONFIG_CAPS
|
|
{
|
|
WCHAR Description[MAX_DESCRIPTION_LEN];
|
|
ULONG VideoStandard;
|
|
SIZE InputSize;
|
|
SIZE MinCroppingSize;
|
|
SIZE MaxCroppingSize;
|
|
int CropGranularityX;
|
|
int CropGranularityY;
|
|
int CropAlignX;
|
|
int CropAlignY;
|
|
SIZE MinOutputSize;
|
|
SIZE MaxOutputSize;
|
|
int OutputGranularityX;
|
|
int OutputGranularityY;
|
|
int StretchTapsX;
|
|
int StretchTapsY;
|
|
int ShrinkTapsX;
|
|
int ShrinkTapsY;
|
|
LONGLONG MinFrameInterval;
|
|
LONGLONG MaxFrameInterval;
|
|
LONG MinBitsPerSecond;
|
|
LONG MaxBitsPerSecond;
|
|
} TAPI_VIDEO_STREAM_CONFIG_CAPS, *PTAPI_VIDEO_STREAM_CONFIG_CAPS;
|
|
|
|
|
|
typedef enum tagStreamConfigCapsType
|
|
{
|
|
AudioStreamConfigCaps,
|
|
VideoStreamConfigCaps
|
|
} StreamConfigCapsType;
|
|
|
|
typedef struct tagTAPI_STREAM_CONFIG_CAPS
|
|
{
|
|
StreamConfigCapsType CapsType;
|
|
union
|
|
{
|
|
TAPI_VIDEO_STREAM_CONFIG_CAPS VideoCap;
|
|
TAPI_AUDIO_STREAM_CONFIG_CAPS AudioCap;
|
|
};
|
|
} TAPI_STREAM_CONFIG_CAPS, *PTAPI_STREAM_CONFIG_CAPS;
|
|
|
|
typedef enum tagTAPIControlFlags
|
|
{
|
|
TAPIControl_Flags_None = 0x0000,
|
|
TAPIControl_Flags_Auto = 0x0001,
|
|
TAPIControl_Flags_Manual = 0x0002
|
|
|
|
} TAPIControlFlags;
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(6c0ab6c1-21e3-11d3-a577-00c04f8ef6e3),
|
|
pointer_default(unique),
|
|
hidden
|
|
]
|
|
interface ITFormatControl : IUnknown
|
|
{
|
|
HRESULT GetCurrentFormat(
|
|
[out] AM_MEDIA_TYPE **ppMediaType
|
|
);
|
|
|
|
HRESULT ReleaseFormat (
|
|
[in] AM_MEDIA_TYPE *pMediaType
|
|
);
|
|
|
|
HRESULT GetNumberOfCapabilities(
|
|
[out] DWORD *pdwCount
|
|
);
|
|
|
|
HRESULT GetStreamCaps(
|
|
[in] DWORD dwIndex,
|
|
[out] AM_MEDIA_TYPE **ppMediaType,
|
|
[out] TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,
|
|
[out] BOOL *pfEnabled
|
|
);
|
|
|
|
HRESULT ReOrderCapabilities(
|
|
[in] DWORD *pdwIndices,
|
|
[in] BOOL *pfEnabled,
|
|
[in] BOOL *pfPublicize,
|
|
[in] DWORD dwNumIndices
|
|
);
|
|
}
|
|
|
|
typedef enum tagStreamQualityProperty
|
|
{
|
|
StreamQuality_MaxBitrate,
|
|
StreamQuality_CurrBitrate, // Read-Only
|
|
StreamQuality_MinFrameInterval,
|
|
StreamQuality_AvgFrameInterval, // Read-Only
|
|
|
|
} StreamQualityProperty;
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(6c0ab6c2-21e3-11d3-a577-00c04f8ef6e3),
|
|
pointer_default(unique),
|
|
hidden
|
|
]
|
|
interface ITStreamQualityControl : IUnknown
|
|
{
|
|
HRESULT GetRange(
|
|
[in] StreamQualityProperty Property,
|
|
[out] long *plMin,
|
|
[out] long *plMax,
|
|
[out] long *plSteppingDelta,
|
|
[out] long *plDefault,
|
|
[out] TAPIControlFlags *plFlags
|
|
);
|
|
|
|
HRESULT Get(
|
|
[in] StreamQualityProperty Property,
|
|
[out] long *plValue,
|
|
[out] TAPIControlFlags *plFlags
|
|
);
|
|
|
|
HRESULT Set(
|
|
[in] StreamQualityProperty Property,
|
|
[in] long lValue,
|
|
[in] TAPIControlFlags lFlags
|
|
);
|
|
}
|
|
|
|
typedef enum tagCallQualityProperty
|
|
{
|
|
CallQuality_ControlInterval,
|
|
CallQuality_ConfBitrate, // confmsp and read-only
|
|
CallQuality_MaxInputBitrate, // read only
|
|
CallQuality_CurrInputBitrate, // Read-Only
|
|
CallQuality_MaxOutputBitrate,
|
|
CallQuality_CurrOutputBitrate, // Read-Only
|
|
CallQuality_MaxCPULoad,
|
|
CallQuality_CurrCPULoad // Read-Only
|
|
|
|
} CallQualityProperty;
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(fe1d8ae0-edc4-49b5-8f8c-4de40f9cdfaf),
|
|
pointer_default(unique),
|
|
hidden
|
|
]
|
|
interface ITCallQualityControl : IUnknown
|
|
{
|
|
HRESULT GetRange(
|
|
[in] CallQualityProperty Property,
|
|
[out] long *plMin,
|
|
[out] long *plMax,
|
|
[out] long *plSteppingDelta,
|
|
[out] long *plDefault,
|
|
[out] TAPIControlFlags *plFlags
|
|
);
|
|
|
|
HRESULT Get(
|
|
[in] CallQualityProperty Property,
|
|
[out] long *plValue,
|
|
[out] TAPIControlFlags *plFlags
|
|
);
|
|
|
|
HRESULT Set(
|
|
[in] CallQualityProperty Property,
|
|
[in] long lValue,
|
|
[in] TAPIControlFlags lFlags
|
|
);
|
|
}
|
|
|
|
typedef enum tagAudioDeviceProperty
|
|
{
|
|
AudioDevice_DuplexMode,
|
|
AudioDevice_AutomaticGainControl,
|
|
AudioDevice_AcousticEchoCancellation
|
|
|
|
} AudioDeviceProperty;
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(6c0ab6c5-21e3-11d3-a577-00c04f8ef6e3),
|
|
pointer_default(unique),
|
|
hidden
|
|
]
|
|
interface ITAudioDeviceControl : IUnknown
|
|
{
|
|
HRESULT GetRange(
|
|
[in] AudioDeviceProperty Property,
|
|
[out] long *plMin,
|
|
[out] long *plMax,
|
|
[out] long *plSteppingDelta,
|
|
[out] long *plDefault,
|
|
[out] TAPIControlFlags *plFlags
|
|
);
|
|
|
|
HRESULT Get(
|
|
[in] AudioDeviceProperty Property,
|
|
[out] long *plValue,
|
|
[out] TAPIControlFlags *plFlags
|
|
);
|
|
|
|
HRESULT Set(
|
|
[in] AudioDeviceProperty Property,
|
|
[in] long lValue,
|
|
[in] TAPIControlFlags lFlags
|
|
);
|
|
}
|
|
|
|
typedef enum tagAudioSettingsProperty
|
|
{
|
|
AudioSettings_SignalLevel, // Read-Only
|
|
AudioSettings_SilenceThreshold,
|
|
AudioSettings_Volume,
|
|
AudioSettings_Balance,
|
|
AudioSettings_Loudness,
|
|
AudioSettings_Treble,
|
|
AudioSettings_Bass,
|
|
AudioSettings_Mono
|
|
|
|
} AudioSettingsProperty;
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(6c0ab6c6-21e3-11d3-a577-00c04f8ef6e3),
|
|
pointer_default(unique),
|
|
hidden
|
|
]
|
|
interface ITAudioSettings : IUnknown
|
|
{
|
|
HRESULT GetRange(
|
|
[in] AudioSettingsProperty Property,
|
|
[out] long *plMin,
|
|
[out] long *plMax,
|
|
[out] long *plSteppingDelta,
|
|
[out] long *plDefault,
|
|
[out] TAPIControlFlags *plFlags
|
|
);
|
|
|
|
HRESULT Get(
|
|
[in] AudioSettingsProperty Property,
|
|
[out] long *plValue,
|
|
[out] TAPIControlFlags *plFlags
|
|
);
|
|
|
|
HRESULT Set(
|
|
[in] AudioSettingsProperty Property,
|
|
[in] long lValue,
|
|
[in] TAPIControlFlags lFlags
|
|
);
|
|
}
|
|
|
|
[
|
|
uuid(e8c89d27-a3bd-47d5-a6fc-d2ae40cdbc6e),
|
|
helpstring("ITQOSApplicationID interface"),
|
|
pointer_default(unique),
|
|
dual
|
|
]
|
|
interface ITQOSApplicationID : IDispatch
|
|
{
|
|
HRESULT SetQOSApplicationID(
|
|
[in] BSTR pApplicationID,
|
|
[in] BSTR pApplicationGUID,
|
|
[in] BSTR pSubIDs
|
|
);
|
|
}
|
|
|
|
|
|
cpp_quote("#endif // STREAM_INTERFACES_DEFINED")
|
|
|
|
cpp_quote("#ifndef RTP_MEDIATYPE_DEFINED")
|
|
cpp_quote("#define RTP_MEDIATYPE_DEFINED")
|
|
cpp_quote("struct DECLSPEC_UUID(\"14099BC0-787B-11d0-9CD3-00A0C9081C19\") MEDIATYPE_RTP_Single_Stream;")
|
|
cpp_quote("#endif //RTP_MEDIATYPE_DEFINED")
|
|
|
|
#endif // __H323_PRIVATE_IDL__
|