-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'LD-3430-data-consumers'
- Loading branch information
Showing
42 changed files
with
3,769 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
import Foundation | ||
import Mediasoup_Private | ||
import WebRTC | ||
|
||
|
||
public class DataConsumer { | ||
public weak var delegate: DataConsumerDelegate? | ||
|
||
public var id: String { | ||
return consumer.id | ||
} | ||
|
||
public var localId: String { | ||
return consumer.localId | ||
} | ||
|
||
public var producerId: String { | ||
return consumer.producerId | ||
} | ||
|
||
public var closed: Bool { | ||
return consumer.closed | ||
} | ||
|
||
public var label: String { | ||
return consumer.label | ||
} | ||
|
||
public var dataProtocol: String { | ||
return consumer.dataProtocol | ||
} | ||
|
||
public var appData: String { | ||
return consumer.appData | ||
} | ||
|
||
public var sctpStreamParameters: String { | ||
return consumer.sctpStreamParameters | ||
} | ||
|
||
private let consumer: DataConsumerWrapper | ||
|
||
internal init(consumer: DataConsumerWrapper) { | ||
self.consumer = consumer | ||
consumer.delegate = self | ||
} | ||
|
||
public func close() { | ||
consumer.close() | ||
} | ||
} | ||
|
||
|
||
extension DataConsumer: DataConsumerWrapperDelegate { | ||
public func onMessage(_ messageData: Data, consumer: DataConsumerWrapper) { | ||
guard consumer == self.consumer else { | ||
return | ||
} | ||
|
||
self.delegate?.onMessage(data: messageData, from: self) | ||
} | ||
|
||
public func onConnecting(_ consumer: DataConsumerWrapper) { | ||
guard consumer == self.consumer else { | ||
return | ||
} | ||
|
||
self.delegate?.onConnecting(consumer: self) | ||
} | ||
|
||
public func onOpen(_ consumer: DataConsumerWrapper) { | ||
guard consumer == self.consumer else { | ||
return | ||
} | ||
|
||
self.delegate?.onOpen(consumer: self) | ||
} | ||
|
||
public func onClosing(_ consumer: DataConsumerWrapper) { | ||
guard consumer == self.consumer else { | ||
return | ||
} | ||
|
||
self.delegate?.onClosing(consumer: self) | ||
} | ||
|
||
public func onClose(_ consumer: DataConsumerWrapper) { | ||
guard consumer == self.consumer else { | ||
return | ||
} | ||
|
||
self.delegate?.onClose(consumer: self) | ||
} | ||
|
||
public func onTransportClose(_ consumer: DataConsumerWrapper) { | ||
guard consumer == self.consumer else { | ||
return | ||
} | ||
|
||
self.delegate?.onTransportClose(in: self) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import Foundation | ||
|
||
|
||
public protocol DataConsumerDelegate: AnyObject { | ||
func onConnecting(consumer: DataConsumer) | ||
func onOpen(consumer: DataConsumer) | ||
func onClosing(consumer: DataConsumer) | ||
func onClose(consumer: DataConsumer) | ||
func onTransportClose(in consumer: DataConsumer) | ||
func onMessage(data: Data, from consumer: DataConsumer) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
31 changes: 31 additions & 0 deletions
31
Mediasoup_Private/DataConsumer/DataConsumerListenerAdapter.hpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#ifndef DataConsumerListenerAdapter_h | ||
#define DataConsumerListenerAdapter_h | ||
|
||
#import <Foundation/Foundation.h> | ||
#import "DataConsumer.hpp" | ||
|
||
|
||
@protocol DataConsumerListenerAdapterDelegate; | ||
|
||
|
||
class DataConsumerListenerAdapter final : public mediasoupclient::DataConsumer::Listener { | ||
public: | ||
__weak id<DataConsumerListenerAdapterDelegate> delegate; | ||
|
||
DataConsumerListenerAdapter(); | ||
virtual ~DataConsumerListenerAdapter(); | ||
|
||
void OnConnecting(mediasoupclient::DataConsumer *dataConsumer) override; | ||
void OnOpen(mediasoupclient::DataConsumer *dataConsumer) override; | ||
void OnClosing(mediasoupclient::DataConsumer *dataConsumer) override; | ||
void OnClose(mediasoupclient::DataConsumer *dataConsumer) override; | ||
void OnTransportClose(mediasoupclient::DataConsumer *dataConsumer) override; | ||
|
||
void OnMessage( | ||
mediasoupclient::DataConsumer *dataConsumer, | ||
const webrtc::DataBuffer &buffer | ||
) override; | ||
|
||
}; | ||
|
||
#endif /* DataConsumerListenerAdapter_h */ |
39 changes: 39 additions & 0 deletions
39
Mediasoup_Private/DataConsumer/DataConsumerListenerAdapter.mm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
#import "DataConsumerListenerAdapter.hpp" | ||
#import "DataConsumerListenerAdapterDelegate.h" | ||
|
||
|
||
DataConsumerListenerAdapter::DataConsumerListenerAdapter() { | ||
} | ||
|
||
DataConsumerListenerAdapter::~DataConsumerListenerAdapter() { | ||
this->delegate = nil; | ||
} | ||
|
||
void DataConsumerListenerAdapter::OnMessage( | ||
mediasoupclient::DataConsumer *dataConsumer, | ||
const webrtc::DataBuffer &buffer | ||
) { | ||
auto data = [NSData dataWithBytes:buffer.data.data() length:buffer.size()]; | ||
[this->delegate onMessage:data from:this]; | ||
} | ||
|
||
void DataConsumerListenerAdapter::OnConnecting(mediasoupclient::DataConsumer *dataConsumer) { | ||
[this->delegate onConnecting:this]; | ||
} | ||
|
||
void DataConsumerListenerAdapter::OnOpen(mediasoupclient::DataConsumer *dataConsumer) { | ||
[this->delegate onOpen:this]; | ||
} | ||
|
||
void DataConsumerListenerAdapter::OnClosing(mediasoupclient::DataConsumer *dataConsumer) { | ||
[this->delegate onClosing:this]; | ||
} | ||
|
||
void DataConsumerListenerAdapter::OnClose(mediasoupclient::DataConsumer *dataConsumer) { | ||
[this->delegate onClose:this]; | ||
} | ||
|
||
void DataConsumerListenerAdapter::OnTransportClose(mediasoupclient::DataConsumer* dataconsumer) { | ||
// TODO: store __unsafe_unretained ref to Consumer and check if sender mathces? | ||
[this->delegate onTransportClose:this]; | ||
} |
20 changes: 20 additions & 0 deletions
20
Mediasoup_Private/DataConsumer/DataConsumerListenerAdapterDelegate.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#ifndef DataConsumerListenerAdapterDelegate_h | ||
#define DataConsumerListenerAdapterDelegate_h | ||
|
||
#import <Foundation/Foundation.h> | ||
|
||
|
||
class DataConsumerListenerAdapter; | ||
|
||
|
||
@protocol DataConsumerListenerAdapterDelegate | ||
@required | ||
- (void)onMessage:(NSData *_Nonnull)messageData from:(DataConsumerListenerAdapter *_Nonnull)adapter; | ||
- (void)onConnecting:(DataConsumerListenerAdapter *_Nonnull)adapter; | ||
- (void)onOpen:(DataConsumerListenerAdapter *_Nonnull)adapter; | ||
- (void)onClosing:(DataConsumerListenerAdapter *_Nonnull)adapter; | ||
- (void)onClose:(DataConsumerListenerAdapter *_Nonnull)adapter; | ||
- (void)onTransportClose:(DataConsumerListenerAdapter *_Nonnull)adapter; | ||
@end | ||
|
||
#endif /* DataConsumerListenerAdapterDelegate_h */ |
Oops, something went wrong.