mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-04-13 13:19:22 +02:00
* WEBRTC classes
This commit is contained in:
parent
a5a202af2a
commit
6ba4e00741
929
packages/rtl/webrtc.pas
Normal file
929
packages/rtl/webrtc.pas
Normal file
@ -0,0 +1,929 @@
|
||||
Unit webrtc;
|
||||
|
||||
{$MODE ObjFPC}
|
||||
{$H+}
|
||||
{$modeswitch externalclass}
|
||||
|
||||
interface
|
||||
|
||||
uses SysUtils, JS,web;
|
||||
|
||||
{
|
||||
Automatically generated file by TWebIDLToPas on 2020-03-23 14:48:13
|
||||
|
||||
Used command-line options :
|
||||
-x
|
||||
web
|
||||
-i
|
||||
/home/michael/webrtc.idl
|
||||
-d
|
||||
TJSObject
|
||||
-t
|
||||
DOMTimeStamp=String,Mediastream=TJSHTMLMediaStream,DOMHighResTimeStamp=double,MediaStreamTrack=JSValue,RTCStatsType=String,EventTarget=TJSEventTarget,EventHandler=TJSEventHandler,Promise=TJSPromise,VoidFunction=TProcedure,Event=TJSEvent,Blob=TJSBlob,ArrayBufferView=TJSTypedArray
|
||||
-p
|
||||
|
||||
Command-line options translate to:
|
||||
|
||||
Options : [coDictionaryAsClass,coaddOptionsToheader]
|
||||
Keyword prefix :
|
||||
Keyword suffix : _
|
||||
Class prefix : TJS
|
||||
Class suffix :
|
||||
Field prefix : F
|
||||
WEBIDLversion : v2
|
||||
Type aliases:
|
||||
DOMTimeStamp=String
|
||||
Mediastream=TJSHTMLMediaStream
|
||||
DOMHighResTimeStamp=double
|
||||
MediaStreamTrack=JSValue
|
||||
RTCStatsType=String
|
||||
EventTarget=TJSEventTarget
|
||||
EventHandler=TJSEventHandler
|
||||
Promise=TJSPromise
|
||||
VoidFunction=TProcedure
|
||||
Event=TJSEvent
|
||||
Blob=TJSBlob
|
||||
ArrayBufferView=TJSTypedArray
|
||||
}
|
||||
Type
|
||||
// Forward class definitions
|
||||
TJSRTCPeerConnection = Class;
|
||||
TJSRTCSessionDescription = Class;
|
||||
TJSRTCIceCandidate = Class;
|
||||
TJSRTCPeerConnectionIceEvent = Class;
|
||||
TJSRTCPeerConnectionIceErrorEvent = Class;
|
||||
TJSRTCCertificate = Class;
|
||||
TJSRTCRtpSender = Class;
|
||||
TJSRTCRtpReceiver = Class;
|
||||
TJSRTCRtpTransceiver = Class;
|
||||
TJSRTCDtlsTransport = Class;
|
||||
TJSRTCIceTransport = Class;
|
||||
TJSRTCTrackEvent = Class;
|
||||
TJSRTCSctpTransport = Class;
|
||||
TJSRTCDataChannel = Class;
|
||||
TJSRTCDataChannelEvent = Class;
|
||||
TJSRTCDTMFSender = Class;
|
||||
TJSRTCDTMFToneChangeEvent = Class;
|
||||
TJSRTCStatsReport = Class;
|
||||
TJSRTCError = Class;
|
||||
TJSRTCErrorEvent = Class;
|
||||
TJSRTCConfiguration = Class;
|
||||
TJSRTCIceServer = Class;
|
||||
TJSRTCOfferAnswerOptions = Class;
|
||||
TJSRTCOfferOptions = Class;
|
||||
TJSRTCAnswerOptions = Class;
|
||||
TJSRTCSessionDescriptionInit = Class;
|
||||
TJSRTCIceCandidateInit = Class;
|
||||
TJSRTCPeerConnectionIceEventInit = Class;
|
||||
TJSRTCPeerConnectionIceErrorEventInit = Class;
|
||||
TJSRTCCertificateExpiration = Class;
|
||||
TJSRTCRtpTransceiverInit = Class;
|
||||
TJSRTCRtpParameters = Class;
|
||||
TJSRTCRtpSendParameters = Class;
|
||||
TJSRTCRtpReceiveParameters = Class;
|
||||
TJSRTCRtpCodingParameters = Class;
|
||||
TJSRTCRtpDecodingParameters = Class;
|
||||
TJSRTCRtpEncodingParameters = Class;
|
||||
TJSRTCRtcpParameters = Class;
|
||||
TJSRTCRtpHeaderExtensionParameters = Class;
|
||||
TJSRTCRtpCodecParameters = Class;
|
||||
TJSRTCRtpCapabilities = Class;
|
||||
TJSRTCRtpCodecCapability = Class;
|
||||
TJSRTCRtpHeaderExtensionCapability = Class;
|
||||
TJSRTCRtpContributingSource = Class;
|
||||
TJSRTCRtpSynchronizationSource = Class;
|
||||
TJSRTCDtlsFingerprint = Class;
|
||||
TJSRTCIceParameters = Class;
|
||||
TJSRTCIceCandidatePair = Class;
|
||||
TJSRTCTrackEventInit = Class;
|
||||
TJSRTCDataChannelInit = Class;
|
||||
TJSRTCDataChannelEventInit = Class;
|
||||
TJSRTCDTMFToneChangeEventInit = Class;
|
||||
TJSRTCStats = Class;
|
||||
TJSRTCErrorInit = Class;
|
||||
TJSRTCErrorEventInit = Class;
|
||||
RTCIceCredentialType = String;
|
||||
RTCIceTransportPolicy = String;
|
||||
RTCBundlePolicy = String;
|
||||
RTCRtcpMuxPolicy = String;
|
||||
RTCSignalingState = String;
|
||||
RTCIceGatheringState = String;
|
||||
RTCPeerConnectionState = String;
|
||||
RTCIceConnectionState = String;
|
||||
RTCSdpType = String;
|
||||
RTCIceProtocol = String;
|
||||
RTCIceTcpCandidateType = String;
|
||||
RTCIceCandidateType = String;
|
||||
RTCRtpTransceiverDirection = String;
|
||||
RTCDegradationPreference = String;
|
||||
RTCDtlsTransportState = String;
|
||||
RTCIceGathererState = String;
|
||||
RTCIceTransportState = String;
|
||||
RTCIceRole = String;
|
||||
RTCIceComponent = String;
|
||||
RTCSctpTransportState = String;
|
||||
RTCDataChannelState = String;
|
||||
RTCErrorDetailType = String;
|
||||
RTCPeerConnectionErrorCallback = Procedure (error : TJSError);
|
||||
RTCSessionDescriptionCallback = Procedure (description : TJSRTCSessionDescriptionInit);
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCConfiguration
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSRTCIceServerDynArray = Array of TJSRTCIceServer;
|
||||
TTJSRTCCertificateDynArray = Array of TJSRTCCertificate;
|
||||
TJSRTCConfiguration = class(TJSObject)
|
||||
iceServers : TTJSRTCIceServerDynArray;
|
||||
iceTransportPolicy : RTCIceTransportPolicy;
|
||||
bundlePolicy : RTCBundlePolicy;
|
||||
rtcpMuxPolicy : RTCRtcpMuxPolicy;
|
||||
peerIdentity : String;
|
||||
certificates : TTJSRTCCertificateDynArray;
|
||||
iceCandidatePoolSize : Byte;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCIceServer
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCIceServer = class(TJSObject)
|
||||
urls : JSValue;
|
||||
username : String;
|
||||
credentialType : RTCIceCredentialType;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCOfferAnswerOptions
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCOfferAnswerOptions = class(TJSObject)
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCOfferOptions
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCOfferOptions = class(TJSObject)
|
||||
iceRestart : boolean;
|
||||
offerToReceiveAudio : boolean;
|
||||
offerToReceiveVideo : boolean;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCAnswerOptions
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCAnswerOptions = class(TJSObject)
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCSessionDescriptionInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCSessionDescriptionInit = class(TJSObject)
|
||||
type_ : RTCSdpType;external name 'type';
|
||||
sdp : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCIceCandidateInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCIceCandidateInit = class(TJSObject)
|
||||
candidate : String;
|
||||
sdpMid : String;
|
||||
sdpMLineIndex : Cardinal;
|
||||
usernameFragment : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCPeerConnectionIceEventInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCPeerConnectionIceEventInit = class(TJSObject)
|
||||
candidate : TJSRTCIceCandidate;
|
||||
url : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCPeerConnectionIceErrorEventInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCPeerConnectionIceErrorEventInit = class(TJSObject)
|
||||
hostCandidate : String;
|
||||
url : String;
|
||||
errorCode : Cardinal;
|
||||
statusText : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCCertificateExpiration
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCCertificateExpiration = class(TJSObject)
|
||||
expires : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpTransceiverInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSHTMLMediaStreamDynArray = Array of TJSHTMLMediaStream;
|
||||
TTJSRTCRtpEncodingParametersDynArray = Array of TJSRTCRtpEncodingParameters;
|
||||
TJSRTCRtpTransceiverInit = class(TJSObject)
|
||||
direction : RTCRtpTransceiverDirection;
|
||||
streams : TTJSHTMLMediaStreamDynArray;
|
||||
sendEncodings : TTJSRTCRtpEncodingParametersDynArray;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSRTCRtpHeaderExtensionParametersDynArray = Array of TJSRTCRtpHeaderExtensionParameters;
|
||||
TTJSRTCRtpCodecParametersDynArray = Array of TJSRTCRtpCodecParameters;
|
||||
TJSRTCRtpParameters = class(TJSObject)
|
||||
headerExtensions : TTJSRTCRtpHeaderExtensionParametersDynArray;
|
||||
rtcp : TJSRTCRtcpParameters;
|
||||
codecs : TTJSRTCRtpCodecParametersDynArray;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpSendParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpSendParameters = class(TJSObject)
|
||||
transactionId : String;
|
||||
encodings : TTJSRTCRtpEncodingParametersDynArray;
|
||||
degradationPreference : RTCDegradationPreference;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpReceiveParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSRTCRtpDecodingParametersDynArray = Array of TJSRTCRtpDecodingParameters;
|
||||
TJSRTCRtpReceiveParameters = class(TJSObject)
|
||||
encodings : TTJSRTCRtpDecodingParametersDynArray;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpCodingParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpCodingParameters = class(TJSObject)
|
||||
rid : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpDecodingParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpDecodingParameters = class(TJSObject)
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpEncodingParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpEncodingParameters = class(TJSObject)
|
||||
active : boolean;
|
||||
maxBitrate : NativeInt;
|
||||
scaleResolutionDownBy : Double;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtcpParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtcpParameters = class(TJSObject)
|
||||
cname : String;
|
||||
reducedSize : boolean;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpHeaderExtensionParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpHeaderExtensionParameters = class(TJSObject)
|
||||
uri : String;
|
||||
id : Cardinal;
|
||||
encrypted : boolean;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpCodecParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpCodecParameters = class(TJSObject)
|
||||
payloadType : Byte;
|
||||
mimeType : String;
|
||||
clockRate : NativeInt;
|
||||
channels : Cardinal;
|
||||
sdpFmtpLine : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpCapabilities
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSRTCRtpCodecCapabilityDynArray = Array of TJSRTCRtpCodecCapability;
|
||||
TTJSRTCRtpHeaderExtensionCapabilityDynArray = Array of TJSRTCRtpHeaderExtensionCapability;
|
||||
TJSRTCRtpCapabilities = class(TJSObject)
|
||||
codecs : TTJSRTCRtpCodecCapabilityDynArray;
|
||||
headerExtensions : TTJSRTCRtpHeaderExtensionCapabilityDynArray;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpCodecCapability
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpCodecCapability = class(TJSObject)
|
||||
mimeType : String;
|
||||
clockRate : NativeInt;
|
||||
channels : Cardinal;
|
||||
sdpFmtpLine : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpHeaderExtensionCapability
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpHeaderExtensionCapability = class(TJSObject)
|
||||
uri : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpContributingSource
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpContributingSource = class(TJSObject)
|
||||
timestamp : double;
|
||||
source : NativeInt;
|
||||
audioLevel : Double;
|
||||
rtpTimestamp : NativeInt;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpSynchronizationSource
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpSynchronizationSource = class(TJSObject)
|
||||
voiceActivityFlag : boolean;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCDtlsFingerprint
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCDtlsFingerprint = class(TJSObject)
|
||||
algorithm : String;
|
||||
value : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCIceParameters
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCIceParameters = class(TJSObject)
|
||||
usernameFragment : String;
|
||||
password : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCIceCandidatePair
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCIceCandidatePair = class(TJSObject)
|
||||
local : TJSRTCIceCandidate;
|
||||
remote : TJSRTCIceCandidate;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCTrackEventInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCTrackEventInit = class(TJSObject)
|
||||
receiver : TJSRTCRtpReceiver;
|
||||
track : JSValue;
|
||||
streams : TTJSHTMLMediaStreamDynArray;
|
||||
transceiver : TJSRTCRtpTransceiver;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCDataChannelInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCDataChannelInit = class(TJSObject)
|
||||
ordered : boolean;
|
||||
maxPacketLifeTime : Cardinal;
|
||||
maxRetransmits : Cardinal;
|
||||
protocol : String;
|
||||
negotiated : boolean;
|
||||
id : Cardinal;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCDataChannelEventInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCDataChannelEventInit = class(TJSObject)
|
||||
channel : TJSRTCDataChannel;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCDTMFToneChangeEventInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCDTMFToneChangeEventInit = class(TJSObject)
|
||||
tone : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCStats
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCStats = class(TJSObject)
|
||||
timestamp : double;
|
||||
type_ : String;external name 'type';
|
||||
id : String;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCErrorInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCErrorInit = class(TJSObject)
|
||||
errorDetail : RTCErrorDetailType;
|
||||
sdpLineNumber : Integer;
|
||||
httpRequestStatusCode : Integer;
|
||||
sctpCauseCode : Integer;
|
||||
receivedAlert : NativeInt;
|
||||
sentAlert : NativeInt;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCErrorEventInit
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCErrorEventInit = class(TJSObject)
|
||||
error : TJSRTCError;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCPeerConnection
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSRTCRtpSenderDynArray = Array of TJSRTCRtpSender;
|
||||
TTJSRTCRtpReceiverDynArray = Array of TJSRTCRtpReceiver;
|
||||
TTJSRTCRtpTransceiverDynArray = Array of TJSRTCRtpTransceiver;
|
||||
|
||||
TJSRTCPeerConnection = class external name 'RTCPeerConnection' (TJSEventTarget)
|
||||
Private
|
||||
FlocalDescription : TJSRTCSessionDescription; external name 'localDescription';
|
||||
FcurrentLocalDescription : TJSRTCSessionDescription; external name 'currentLocalDescription';
|
||||
FpendingLocalDescription : TJSRTCSessionDescription; external name 'pendingLocalDescription';
|
||||
FremoteDescription : TJSRTCSessionDescription; external name 'remoteDescription';
|
||||
FcurrentRemoteDescription : TJSRTCSessionDescription; external name 'currentRemoteDescription';
|
||||
FpendingRemoteDescription : TJSRTCSessionDescription; external name 'pendingRemoteDescription';
|
||||
FsignalingState : RTCSignalingState; external name 'signalingState';
|
||||
FiceGatheringState : RTCIceGatheringState; external name 'iceGatheringState';
|
||||
FiceConnectionState : RTCIceConnectionState; external name 'iceConnectionState';
|
||||
FconnectionState : RTCPeerConnectionState; external name 'connectionState';
|
||||
FcanTrickleIceCandidates : boolean; external name 'canTrickleIceCandidates';
|
||||
Fsctp : TJSRTCSctpTransport; external name 'sctp';
|
||||
Public
|
||||
|
||||
onnegotiationneeded : TJSEventHandler;
|
||||
onicecandidate : TJSEventHandler;
|
||||
onicecandidateerror : TJSEventHandler;
|
||||
onsignalingstatechange : TJSEventHandler;
|
||||
oniceconnectionstatechange : TJSEventHandler;
|
||||
onicegatheringstatechange : TJSEventHandler;
|
||||
onconnectionstatechange : TJSEventHandler;
|
||||
ontrack : TJSEventHandler;
|
||||
ondatachannel : TJSEventHandler;
|
||||
constructor New(configuration : TJSRTCConfiguration); overload;
|
||||
constructor New; overload;
|
||||
function createOffer(options : TJSRTCOfferOptions): TJSPromise; overload;
|
||||
function createOffer: TJSPromise; overload;
|
||||
function createAnswer(options : TJSRTCAnswerOptions): TJSPromise; overload;
|
||||
function createAnswer: TJSPromise; overload;
|
||||
function setLocalDescription(description : TJSRTCSessionDescriptionInit): TJSPromise; overload;
|
||||
function setLocalDescription: TJSPromise; overload;
|
||||
function setRemoteDescription(description : TJSRTCSessionDescriptionInit): TJSPromise; overload;
|
||||
function setRemoteDescription: TJSPromise; overload;
|
||||
function addIceCandidate(candidate : TJSRTCIceCandidateInit): TJSPromise; overload;
|
||||
function addIceCandidate: TJSPromise; overload;
|
||||
Procedure restartIce;
|
||||
function getConfiguration: TJSRTCConfiguration;
|
||||
Procedure setConfiguration(configuration : TJSRTCConfiguration);
|
||||
Procedure close;
|
||||
function createOffer(successCallback : RTCSessionDescriptionCallback; failureCallback : RTCPeerConnectionErrorCallback; options : TJSRTCOfferOptions): TJSPromise; overload;
|
||||
function createOffer(successCallback : RTCSessionDescriptionCallback; failureCallback : RTCPeerConnectionErrorCallback): TJSPromise; overload;
|
||||
function createAnswer(successCallback : RTCSessionDescriptionCallback; failureCallback : RTCPeerConnectionErrorCallback): TJSPromise;
|
||||
function addIceCandidate(candidate : TJSRTCIceCandidateInit; successCallback : TProcedure; failureCallback : RTCPeerConnectionErrorCallback): TJSPromise;
|
||||
function generateCertificate(keygenAlgorithm : AlgorithmIdentifier): TJSPromise;
|
||||
function getSenders: TTJSRTCRtpSenderDynArray;
|
||||
function getReceivers: TTJSRTCRtpReceiverDynArray;
|
||||
function getTransceivers: TTJSRTCRtpTransceiverDynArray;
|
||||
function addTrack(track : JSValue; streams : TJSHTMLMediaStream): TJSRTCRtpSender; varargs;
|
||||
Procedure removeTrack(sender : TJSRTCRtpSender);
|
||||
function addTransceiver(trackOrKind : JSValue; init : TJSRTCRtpTransceiverInit): TJSRTCRtpTransceiver; overload;
|
||||
function addTransceiver(trackOrKind : JSValue): TJSRTCRtpTransceiver; overload;
|
||||
function createDataChannel(label_ : String; dataChannelDict : TJSRTCDataChannelInit): TJSRTCDataChannel; overload;
|
||||
function createDataChannel(label_ : String): TJSRTCDataChannel; overload;
|
||||
function getStats(selector : JSValue): TJSPromise; overload;
|
||||
function getStats: TJSPromise; overload;
|
||||
Property localDescription : TJSRTCSessionDescription Read FlocalDescription;
|
||||
Property currentLocalDescription : TJSRTCSessionDescription Read FcurrentLocalDescription;
|
||||
Property pendingLocalDescription : TJSRTCSessionDescription Read FpendingLocalDescription;
|
||||
Property remoteDescription : TJSRTCSessionDescription Read FremoteDescription;
|
||||
Property currentRemoteDescription : TJSRTCSessionDescription Read FcurrentRemoteDescription;
|
||||
Property pendingRemoteDescription : TJSRTCSessionDescription Read FpendingRemoteDescription;
|
||||
Property signalingState : RTCSignalingState Read FsignalingState;
|
||||
Property iceGatheringState : RTCIceGatheringState Read FiceGatheringState;
|
||||
Property iceConnectionState : RTCIceConnectionState Read FiceConnectionState;
|
||||
Property connectionState : RTCPeerConnectionState Read FconnectionState;
|
||||
Property canTrickleIceCandidates : boolean Read FcanTrickleIceCandidates;
|
||||
Property sctp : TJSRTCSctpTransport Read Fsctp;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCSessionDescription
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCSessionDescription = class external name 'RTCSessionDescription'
|
||||
Private
|
||||
Ftype_ : RTCSdpType; external name 'type';
|
||||
Fsdp : String; external name 'sdp';
|
||||
Public
|
||||
constructor New(descriptionInitDict : TJSRTCSessionDescriptionInit); overload;
|
||||
constructor New; overload;
|
||||
function toJSON: TJSObject;
|
||||
Property type_ : RTCSdpType Read Ftype_;
|
||||
Property sdp : String Read Fsdp;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCIceCandidate
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCIceCandidate = class external name 'RTCIceCandidate'
|
||||
Private
|
||||
Fcandidate : String; external name 'candidate';
|
||||
FsdpMid : String; external name 'sdpMid';
|
||||
FsdpMLineIndex : Cardinal; external name 'sdpMLineIndex';
|
||||
Ffoundation : String; external name 'foundation';
|
||||
Fcomponent : RTCIceComponent; external name 'component';
|
||||
Fpriority : NativeInt; external name 'priority';
|
||||
Faddress : String; external name 'address';
|
||||
Fprotocol : RTCIceProtocol; external name 'protocol';
|
||||
Fport : Cardinal; external name 'port';
|
||||
Ftype_ : RTCIceCandidateType; external name 'type';
|
||||
FtcpType : RTCIceTcpCandidateType; external name 'tcpType';
|
||||
FrelatedAddress : String; external name 'relatedAddress';
|
||||
FrelatedPort : Cardinal; external name 'relatedPort';
|
||||
FusernameFragment : String; external name 'usernameFragment';
|
||||
Public
|
||||
constructor New(candidateInitDict : TJSRTCIceCandidateInit); overload;
|
||||
constructor New; overload;
|
||||
function toJSON: TJSRTCIceCandidateInit;
|
||||
Property candidate : String Read Fcandidate;
|
||||
Property sdpMid : String Read FsdpMid;
|
||||
Property sdpMLineIndex : Cardinal Read FsdpMLineIndex;
|
||||
Property foundation : String Read Ffoundation;
|
||||
Property component : RTCIceComponent Read Fcomponent;
|
||||
Property priority : NativeInt Read Fpriority;
|
||||
Property address : String Read Faddress;
|
||||
Property protocol : RTCIceProtocol Read Fprotocol;
|
||||
Property port : Cardinal Read Fport;
|
||||
Property type_ : RTCIceCandidateType Read Ftype_;
|
||||
Property tcpType : RTCIceTcpCandidateType Read FtcpType;
|
||||
Property relatedAddress : String Read FrelatedAddress;
|
||||
Property relatedPort : Cardinal Read FrelatedPort;
|
||||
Property usernameFragment : String Read FusernameFragment;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCPeerConnectionIceEvent
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCPeerConnectionIceEvent = class external name 'RTCPeerConnectionIceEvent' (TJSEvent)
|
||||
Private
|
||||
Fcandidate : TJSRTCIceCandidate; external name 'candidate';
|
||||
Furl : String; external name 'url';
|
||||
Public
|
||||
constructor New(type_ : String; eventInitDict : TJSRTCPeerConnectionIceEventInit); overload;
|
||||
constructor New(type_ : String); overload;
|
||||
Property candidate : TJSRTCIceCandidate Read Fcandidate;
|
||||
Property url : String Read Furl;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCPeerConnectionIceErrorEvent
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCPeerConnectionIceErrorEvent = class external name 'RTCPeerConnectionIceErrorEvent' (TJSEvent)
|
||||
Private
|
||||
Faddress : String; external name 'address';
|
||||
Fport : Cardinal; external name 'port';
|
||||
Furl : String; external name 'url';
|
||||
FerrorCode : Cardinal; external name 'errorCode';
|
||||
FerrorText : String; external name 'errorText';
|
||||
Public
|
||||
constructor New(type_ : String; eventInitDict : TJSRTCPeerConnectionIceErrorEventInit);
|
||||
Property address : String Read Faddress;
|
||||
Property port : Cardinal Read Fport;
|
||||
Property url : String Read Furl;
|
||||
Property errorCode : Cardinal Read FerrorCode;
|
||||
Property errorText : String Read FerrorText;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCCertificate
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSRTCDtlsFingerprintDynArray = Array of TJSRTCDtlsFingerprint;
|
||||
|
||||
TJSRTCCertificate = class external name 'RTCCertificate'
|
||||
Private
|
||||
Fexpires : String; external name 'expires';
|
||||
Public
|
||||
function getFingerprints: TTJSRTCDtlsFingerprintDynArray;
|
||||
Property expires : String Read Fexpires;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpSender
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpSender = class external name 'RTCRtpSender'
|
||||
Private
|
||||
Ftrack : JSValue; external name 'track';
|
||||
Ftransport : TJSRTCDtlsTransport; external name 'transport';
|
||||
Fdtmf : TJSRTCDTMFSender; external name 'dtmf';
|
||||
Public
|
||||
function getCapabilities(kind : String): TJSRTCRtpCapabilities;
|
||||
function setParameters(parameters : TJSRTCRtpSendParameters): TJSPromise;
|
||||
function getParameters: TJSRTCRtpSendParameters;
|
||||
function replaceTrack(withTrack : JSValue): TJSPromise;
|
||||
Procedure setStreams(streams : TJSHTMLMediaStream); varargs;
|
||||
function getStats: TJSPromise;
|
||||
Property track : JSValue Read Ftrack;
|
||||
Property transport : TJSRTCDtlsTransport Read Ftransport;
|
||||
Property dtmf : TJSRTCDTMFSender Read Fdtmf;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpReceiver
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSRTCRtpContributingSourceDynArray = Array of TJSRTCRtpContributingSource;
|
||||
TTJSRTCRtpSynchronizationSourceDynArray = Array of TJSRTCRtpSynchronizationSource;
|
||||
|
||||
TJSRTCRtpReceiver = class external name 'RTCRtpReceiver'
|
||||
Private
|
||||
Ftrack : JSValue; external name 'track';
|
||||
Ftransport : TJSRTCDtlsTransport; external name 'transport';
|
||||
Public
|
||||
function getCapabilities(kind : String): TJSRTCRtpCapabilities;
|
||||
function getParameters: TJSRTCRtpReceiveParameters;
|
||||
function getContributingSources: TTJSRTCRtpContributingSourceDynArray;
|
||||
function getSynchronizationSources: TTJSRTCRtpSynchronizationSourceDynArray;
|
||||
function getStats: TJSPromise;
|
||||
Property track : JSValue Read Ftrack;
|
||||
Property transport : TJSRTCDtlsTransport Read Ftransport;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCRtpTransceiver
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCRtpTransceiver = class external name 'RTCRtpTransceiver'
|
||||
Private
|
||||
Fmid : String; external name 'mid';
|
||||
Fsender : TJSRTCRtpSender; external name 'sender';
|
||||
Freceiver : TJSRTCRtpReceiver; external name 'receiver';
|
||||
FcurrentDirection : RTCRtpTransceiverDirection; external name 'currentDirection';
|
||||
Public
|
||||
direction : RTCRtpTransceiverDirection;
|
||||
Procedure stop;
|
||||
Procedure setCodecPreferences(codecs : TTJSRTCRtpCodecCapabilityDynArray);
|
||||
Property mid : String Read Fmid;
|
||||
Property sender : TJSRTCRtpSender Read Fsender;
|
||||
Property receiver : TJSRTCRtpReceiver Read Freceiver;
|
||||
Property currentDirection : RTCRtpTransceiverDirection Read FcurrentDirection;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCDtlsTransport
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSArrayBufferDynArray = Array of TJSArrayBuffer;
|
||||
|
||||
TJSRTCDtlsTransport = class external name 'RTCDtlsTransport' (TJSEventTarget)
|
||||
Private
|
||||
FiceTransport : TJSRTCIceTransport; external name 'iceTransport';
|
||||
Fstate : RTCDtlsTransportState; external name 'state';
|
||||
Public
|
||||
onstatechange : TJSEventHandler;
|
||||
onerror : TJSEventHandler;
|
||||
function getRemoteCertificates: TTJSArrayBufferDynArray;
|
||||
Property iceTransport : TJSRTCIceTransport Read FiceTransport;
|
||||
Property state : RTCDtlsTransportState Read Fstate;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCIceTransport
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TTJSRTCIceCandidateDynArray = Array of TJSRTCIceCandidate;
|
||||
|
||||
TJSRTCIceTransport = class external name 'RTCIceTransport' (TJSEventTarget)
|
||||
Private
|
||||
Frole : RTCIceRole; external name 'role';
|
||||
Fcomponent : RTCIceComponent; external name 'component';
|
||||
Fstate : RTCIceTransportState; external name 'state';
|
||||
FgatheringState : RTCIceGathererState; external name 'gatheringState';
|
||||
Public
|
||||
onstatechange : TJSEventHandler;
|
||||
ongatheringstatechange : TJSEventHandler;
|
||||
onselectedcandidatepairchange : TJSEventHandler;
|
||||
function getLocalCandidates: TTJSRTCIceCandidateDynArray;
|
||||
function getRemoteCandidates: TTJSRTCIceCandidateDynArray;
|
||||
function getSelectedCandidatePair: TJSRTCIceCandidatePair;
|
||||
function getLocalParameters: TJSRTCIceParameters;
|
||||
function getRemoteParameters: TJSRTCIceParameters;
|
||||
Property role : RTCIceRole Read Frole;
|
||||
Property component : RTCIceComponent Read Fcomponent;
|
||||
Property state : RTCIceTransportState Read Fstate;
|
||||
Property gatheringState : RTCIceGathererState Read FgatheringState;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCTrackEvent
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCTrackEvent = class external name 'RTCTrackEvent' (TJSEvent)
|
||||
Private
|
||||
Freceiver : TJSRTCRtpReceiver; external name 'receiver';
|
||||
Ftrack : JSValue; external name 'track';
|
||||
Fstreams : TTJSHTMLMediaStreamDynArray; external name 'streams';
|
||||
Ftransceiver : TJSRTCRtpTransceiver; external name 'transceiver';
|
||||
Public
|
||||
constructor New(type_ : String; eventInitDict : TJSRTCTrackEventInit);
|
||||
Property receiver : TJSRTCRtpReceiver Read Freceiver;
|
||||
Property track : JSValue Read Ftrack;
|
||||
Property streams : TTJSHTMLMediaStreamDynArray Read Fstreams;
|
||||
Property transceiver : TJSRTCRtpTransceiver Read Ftransceiver;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCSctpTransport
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCSctpTransport = class external name 'RTCSctpTransport' (TJSEventTarget)
|
||||
Private
|
||||
Ftransport : TJSRTCDtlsTransport; external name 'transport';
|
||||
Fstate : RTCSctpTransportState; external name 'state';
|
||||
FmaxMessageSize : Double; external name 'maxMessageSize';
|
||||
FmaxChannels : Cardinal; external name 'maxChannels';
|
||||
Public
|
||||
onstatechange : TJSEventHandler;
|
||||
Property transport : TJSRTCDtlsTransport Read Ftransport;
|
||||
Property state : RTCSctpTransportState Read Fstate;
|
||||
Property maxMessageSize : Double Read FmaxMessageSize;
|
||||
Property maxChannels : Cardinal Read FmaxChannels;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCDataChannel
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCDataChannel = class external name 'RTCDataChannel' (TJSEventTarget)
|
||||
Private
|
||||
Flabel_ : String; external name 'label';
|
||||
Fordered : boolean; external name 'ordered';
|
||||
FmaxPacketLifeTime : Cardinal; external name 'maxPacketLifeTime';
|
||||
FmaxRetransmits : Cardinal; external name 'maxRetransmits';
|
||||
Fprotocol : String; external name 'protocol';
|
||||
Fnegotiated : boolean; external name 'negotiated';
|
||||
Fid : Cardinal; external name 'id';
|
||||
FreadyState : RTCDataChannelState; external name 'readyState';
|
||||
FbufferedAmount : NativeInt; external name 'bufferedAmount';
|
||||
Public
|
||||
bufferedAmountLowThreshold : NativeInt;
|
||||
onopen : TJSEventHandler;
|
||||
onbufferedamountlow : TJSEventHandler;
|
||||
onerror : TJSEventHandler;
|
||||
onclosing : TJSEventHandler;
|
||||
onclose : TJSEventHandler;
|
||||
onmessage : TJSEventHandler;
|
||||
binaryType : String;
|
||||
Procedure close;
|
||||
Procedure send(data : String);
|
||||
Procedure send(data : TJSBlob);
|
||||
Procedure send(data : TJSArrayBuffer);
|
||||
Procedure send(data : TJSTypedArray);
|
||||
Property label_ : String Read Flabel_;
|
||||
Property ordered : boolean Read Fordered;
|
||||
Property maxPacketLifeTime : Cardinal Read FmaxPacketLifeTime;
|
||||
Property maxRetransmits : Cardinal Read FmaxRetransmits;
|
||||
Property protocol : String Read Fprotocol;
|
||||
Property negotiated : boolean Read Fnegotiated;
|
||||
Property id : Cardinal Read Fid;
|
||||
Property readyState : RTCDataChannelState Read FreadyState;
|
||||
Property bufferedAmount : NativeInt Read FbufferedAmount;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCDataChannelEvent
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCDataChannelEvent = class external name 'RTCDataChannelEvent' (TJSEvent)
|
||||
Private
|
||||
Fchannel : TJSRTCDataChannel; external name 'channel';
|
||||
Public
|
||||
constructor New(type_ : String; eventInitDict : TJSRTCDataChannelEventInit);
|
||||
Property channel : TJSRTCDataChannel Read Fchannel;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCDTMFSender
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCDTMFSender = class external name 'RTCDTMFSender' (TJSEventTarget)
|
||||
Private
|
||||
FcanInsertDTMF : boolean; external name 'canInsertDTMF';
|
||||
FtoneBuffer : String; external name 'toneBuffer';
|
||||
Public
|
||||
ontonechange : TJSEventHandler;
|
||||
Procedure insertDTMF(tones : String; duration : NativeInt; interToneGap : NativeInt); overload;
|
||||
Procedure insertDTMF(tones : String); overload;
|
||||
Procedure insertDTMF(tones : String; duration : NativeInt); overload;
|
||||
Property canInsertDTMF : boolean Read FcanInsertDTMF;
|
||||
Property toneBuffer : String Read FtoneBuffer;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCDTMFToneChangeEvent
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCDTMFToneChangeEvent = class external name 'RTCDTMFToneChangeEvent' (TJSEvent)
|
||||
Private
|
||||
Ftone : String; external name 'tone';
|
||||
Public
|
||||
constructor New(type_ : String; eventInitDict : TJSRTCDTMFToneChangeEventInit);
|
||||
Property tone : String Read Ftone;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCStatsReport
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCStatsReport = class external name 'RTCStatsReport'
|
||||
Private
|
||||
Public
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCError
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCError = class external name 'RTCError' (TJSError)
|
||||
Private
|
||||
FerrorDetail : RTCErrorDetailType; external name 'errorDetail';
|
||||
FsdpLineNumber : Integer; external name 'sdpLineNumber';
|
||||
FhttpRequestStatusCode : Integer; external name 'httpRequestStatusCode';
|
||||
FsctpCauseCode : Integer; external name 'sctpCauseCode';
|
||||
FreceivedAlert : NativeInt; external name 'receivedAlert';
|
||||
FsentAlert : NativeInt; external name 'sentAlert';
|
||||
Public
|
||||
constructor New(init : TJSRTCErrorInit; message : String); overload;
|
||||
constructor New(init : TJSRTCErrorInit); overload;
|
||||
Property errorDetail : RTCErrorDetailType Read FerrorDetail;
|
||||
Property sdpLineNumber : Integer Read FsdpLineNumber;
|
||||
Property httpRequestStatusCode : Integer Read FhttpRequestStatusCode;
|
||||
Property sctpCauseCode : Integer Read FsctpCauseCode;
|
||||
Property receivedAlert : NativeInt Read FreceivedAlert;
|
||||
Property sentAlert : NativeInt Read FsentAlert;
|
||||
end;
|
||||
|
||||
{ --------------------------------------------------------------------
|
||||
TJSRTCErrorEvent
|
||||
--------------------------------------------------------------------}
|
||||
|
||||
TJSRTCErrorEvent = class external name 'RTCErrorEvent' (TJSEvent)
|
||||
Private
|
||||
Ferror : TJSRTCError; external name 'error';
|
||||
Public
|
||||
constructor New(type_ : String; eventInitDict : TJSRTCErrorEventInit);
|
||||
Property error : TJSRTCError Read Ferror;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
|
||||
end.
|
Loading…
Reference in New Issue
Block a user