| Description | Uses | Classes, Interfaces, Objects and Records | Functions and Procedures | Types | Constants | Variables | 
Contains socket pipes to be used in Delphi/C++Builder IDE.
IP components:
Version 2.5.2008.02 Split from unaVCIDE.pas unit
Version 2.5.2012.02 STUN C/S and DNS C
| Name | Description | 
|---|---|
packed record tunavclInOutIpPipeSwapBuf | 
Internal structure for byte order swapping. | 
Class unavclDNSClient | 
DNS Client | 
packed record unavclInOutIPPacket | 
Packet record. | 
Class unavclInOutIpPipe | 
Base abstract class for TCP/IP stream pipes. | 
Class unavclIPBroadcastClient | 
Receives audio stream being broadcasted by server component over LAN. | 
packed record unavclIPBroadcastPacketSelector | 
|
packed record unavclIPBroadcastPacketUnion | 
|
Class unavclIPBroadcastPipe | 
Implements basic broadcast pipe. | 
Class unavclIPBroadcastServer | 
Broadcasts audio stream over LAN using the broadcast destination IP address and UDP sockets. | 
Class unavclIPClient | 
IP Client: connects to remote server, sends and receives audio stream over TCP/IP network. | 
Class unavclIPServer | 
IP Server: initiates listening socket for clients to connect to. | 
Class unavclSTUNBase | 
STUN Base | 
Class unavclSTUNClient | 
STUN Client | 
Class unavclSTUNServer | 
STUN Server | 
punavclInOutIPPacket = ˆunavclInOutIPPacket; | 
tunavclProtoType = (...); | 
tunavclStreamingMode = (...); | 
tunaSendResult = (...); | 
tunavclTextDataEvent = procedure (sender: tObject; connId: tConID; const data: string) of object; | 
tunavclUserDataEvent = procedure (sender: tObject; connId: tConID; data: pointer; len: uint) of object; | 
tunavclPacketEvent = procedure (sender: tObject; connId: tConID; cmd: uint; data: pointer; len: uint) of object; | 
tunavclSocketEvent = procedure (sender: tObject; connId: tConID; event: unaSocketEvent; data: pointer; len: uint) of object; | 
tunavclStreamByteOrder = (...); | 
tunavclConnectEvent = procedure (sender: tObject; connId: tConID; connected: bool) of object; | 
unaIpServerConferenceMode = (...); | 
tunavclAcceptClient = procedure (sender: tObject; connId: tConID; var accept: bool) of object; | 
punavclIPBroadcastPacketUnion = ˆunavclIPBroadcastPacketUnion; | 
punavclIPBroadcastPacketSelector = ˆunavclIPBroadcastPacketSelector; | 
unaSTUNCLientResponseEvent = procedure(sender: tObject; error: int32; mappedIP: uint32; mappedPort, boundPort: uint16) of object; | 
punavclInOutIPPacket = ˆunavclInOutIPPacket; | 
| 
 Pointer to a packet  | 
tunavclProtoType = (...); | 
| 
 Sockets proto. Could be UDP or TCP. Values
  | 
tunavclStreamingMode = (...); | 
| 
 Streaming mode. Could be VC compatible or RAW. Values
  | 
tunaSendResult = (...); | 
| 
 Result of send operation. OK or fail. Values
  | 
tunavclTextDataEvent = procedure (sender: tObject; connId: tConID; const data: string) of object; | 
| 
 OnText event  | 
tunavclUserDataEvent = procedure (sender: tObject; connId: tConID; data: pointer; len: uint) of object; | 
| 
 OnUserData event  | 
tunavclPacketEvent = procedure (sender: tObject; connId: tConID; cmd: uint; data: pointer; len: uint) of object; | 
| 
 OnPacket event  | 
tunavclSocketEvent = procedure (sender: tObject; connId: tConID; event: unaSocketEvent; data: pointer; len: uint) of object; | 
| 
 OnSocketEvent event  | 
tunavclStreamByteOrder = (...); | 
| 
 http://lakeofsoft.com/vcx/automatic-byte-order-detection.html for RAW streaming. 
 Values
  | 
tunavclConnectEvent = procedure (sender: tObject; connId: tConID; connected: bool) of object; | 
unaIpServerConferenceMode = (...); | 
| 
 – conference mode for IPServer – Values
  | 
tunavclAcceptClient = procedure (sender: tObject; connId: tConID; var accept: bool) of object; | 
| 
 vc25pro more to come – –  | 
punavclIPBroadcastPacketUnion = ˆunavclIPBroadcastPacketUnion; | 
| 
 Broadcast packet format. NOTE: If you add something here, do not forget to change the calcPacketRawSize() routine!  | 
punavclIPBroadcastPacketSelector = ˆunavclIPBroadcastPacketSelector; | 
| 
 – unavclIPBroadcastPacketSelector –  | 
unaSTUNCLientResponseEvent = procedure(sender: tObject; error: int32; mappedIP: uint32; mappedPort, boundPort: uint16) of object; | 
| 
 
 Parameters
  | 
cmd_inOutIPPacket_audio	= $20; | 
cmd_inOutIPPacket_audioIndexed    	= $2A; | 
cmd_inOutIPPacket_bye		= $02; | 
cmd_inOutIPPacket_byeIndexed		= $29; | 
cmd_inOutIPPacket_formatAudio	= $10; | 
cmd_inOutIPPacket_formatAudioIndexed	= $2E; | 
cmd_inOutIPPacket_formatVideo	= $11; | 
cmd_inOutIPPacket_formatVideoIndexed	= $2F; | 
cmd_inOutIPPacket_hello	= $01; | 
| 
 ——————— – IP components – ——————— Hello command  | 
cmd_inOutIPPacket_needFormat	= $04; | 
cmd_inOutIPPacket_outOfSeats	= $03; | 
cmd_inOutIPPacket_text	= $22; | 
cmd_inOutIPPacket_textIndexed	    	= $2C; | 
cmd_inOutIPPacket_userData	= $23; | 
cmd_inOutIPPacket_userDataIndexed 	= $2D; | 
cmd_inOutIPPacket_video	= $21; | 
cmd_inOutIPPacket_videoIndexed    	= $2B; | 
c_umaMaxOutpackets	= 4096; | 
c_unaIPServer_co_default	= c_unaIPServer_co_inbound or c_unaIPServer_co_outbound; | 
| 
 default flags (both inbound and outbound are enabled)  | 
c_unaIPServer_co_inbound	= $00000001; | 
| 
 client options for IP server accept inbound data from this client  | 
c_unaIPServer_co_invalid	= $80000000; | 
c_unaIPServer_co_outbound	= $00000002; | 
| 
 send outbound data to this client  | 
unavcl_defaultBroadcastPort	= 17380; | 
unavcl_packet_selector00_format	= $00; | 
| 
 – selector fields –  | 
unavcl_packet_selector00_formatChanges_mask	= $1; | 
unavcl_packet_selector00_formatChanges_shift	= 5; | 
unavcl_packet_selector00_formatIndex_mask	= $3; | 
unavcl_packet_selector00_formatIndex_shift	= 0; | 
unavcl_packet_selector00_formatReserved_mask	= $7; | 
unavcl_packet_selector00_formatReserved_shift	= 2; | 
unavcl_packet_selector01_data		= $01; | 
unavcl_packet_selector01_high6bitsSize_mask	= $3F; | 
unavcl_packet_selector01_high6bitsSize_shift	= 0; | 
unavcl_packet_selector10_high6bitsSync_mask	= $3F; | 
unavcl_packet_selector10_high6bitsSync_shift	= 0; | 
unavcl_packet_selector10_sync		= $02; | 
unavcl_packet_selector11_custom	= $03; | 
unavcl_packet_selector11_customReserved_mask	= $1; | 
unavcl_packet_selector11_customReserved_shift	= 5; | 
unavcl_packet_selector11_customValue_mask	= $1F; | 
unavcl_packet_selector11_customValue_res000	= $0; | 
unavcl_packet_selector11_customValue_res011	= $3; | 
unavcl_packet_selector11_customValue_res100	= $4; | 
unavcl_packet_selector11_customValue_res101	= $5; | 
unavcl_packet_selector11_customValue_res110	= $6; | 
unavcl_packet_selector11_customValue_res111	= $7; | 
unavcl_packet_selector11_customValue_shift	= 0; | 
unavcl_packet_selector11_customValue_text	= $1; | 
unavcl_packet_selector11_customValue_videoFormat = $2; | 
unavcl_packet_selector_mask		= $03; | 
unavcl_packet_selector_shift		= 6; | 
unavcl_union01_channelFormatIndex_mask	= $3; | 
unavcl_union01_channelFormatIndex_shift	= 2; | 
unavcl_union01_channelMedia_audio		= $0; | 
| 
 ======= BROADCAST ====== – union fields –  | 
unavcl_union01_channelMedia_mask		= $1; | 
unavcl_union01_channelMedia_newChunkFlag	= $2; | 
unavcl_union01_channelMedia_shift		= 0; | 
unavcl_union01_channelMedia_video		= $1; | 
unavcl_union01_channelSeqNum_mask		= $F; | 
unavcl_union01_channelSeqNum_shift		= 4; | 
(c) 2012 Lake of Soft