37 lines
1.3 KiB
Objective-C
37 lines
1.3 KiB
Objective-C
#import "AudioSocket.h"
|
|
|
|
@implementation AudioSocket
|
|
|
|
+(AudioSocket*) audioSocketOver:(SrtpSocket*)srtpSocket {
|
|
require(srtpSocket != nil);
|
|
AudioSocket* p = [AudioSocket new];
|
|
p->srtpSocket = srtpSocket;
|
|
return p;
|
|
}
|
|
|
|
-(void) startWithHandler:(PacketHandler*)handler untilCancelled:(TOCCancelToken*)untilCancelledToken {
|
|
require(handler != nil);
|
|
requireState(!started);
|
|
started = true;
|
|
|
|
PacketHandlerBlock valueHandler = ^(RtpPacket* rtpPacket) {
|
|
require(rtpPacket != nil);
|
|
require([rtpPacket isKindOfClass:[RtpPacket class]]);
|
|
[handler handlePacket:[EncodedAudioPacket encodedAudioPacketWithAudioData:[rtpPacket payload]
|
|
andSequenceNumber:[rtpPacket sequenceNumber]]];
|
|
};
|
|
|
|
[srtpSocket startWithHandler:[PacketHandler packetHandler:valueHandler
|
|
withErrorHandler:[handler errorHandler]]
|
|
untilCancelled:untilCancelledToken];
|
|
}
|
|
-(void) send:(EncodedAudioPacket*)audioPacket {
|
|
require(audioPacket != nil);
|
|
|
|
RtpPacket* rtpPacket = [RtpPacket rtpPacketWithDefaultsAndSequenceNumber:[audioPacket sequenceNumber]
|
|
andPayload:[audioPacket audioData]];
|
|
[srtpSocket secureAndSendRtpPacket:rtpPacket];
|
|
}
|
|
|
|
@end
|