|
|
/////////////////////////////////////////////////////////////////////////// // 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__
|