From 8e7391df275a2576c1a52f4bc682f418716aa636 Mon Sep 17 00:00:00 2001 From: feast107 Date: Tue, 12 Nov 2024 03:02:44 +0800 Subject: [PATCH] Fix type not compatible --- src/Antelcat.MediasoupSharp/DirectTransport.cs | 2 +- src/Antelcat.MediasoupSharp/PipeTransport.cs | 2 +- src/Antelcat.MediasoupSharp/PlainTransport.cs | 2 +- src/Antelcat.MediasoupSharp/Router.cs | 15 ++++++++------- src/Antelcat.MediasoupSharp/RtpObserver.cs | 4 ++-- src/Antelcat.MediasoupSharp/Transport.cs | 6 +++--- src/Antelcat.MediasoupSharp/TransportTypes.cs | 1 - src/Antelcat.MediasoupSharp/WebRtcTransport.cs | 2 +- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/Antelcat.MediasoupSharp/DirectTransport.cs b/src/Antelcat.MediasoupSharp/DirectTransport.cs index f47815f..9f42f8b 100644 --- a/src/Antelcat.MediasoupSharp/DirectTransport.cs +++ b/src/Antelcat.MediasoupSharp/DirectTransport.cs @@ -15,7 +15,7 @@ public class DirectTransportConstructorOptions(Transpor Interfaces = [typeof(ITransport)], Exclude = [nameof(ProduceAsync)])] public class DirectTransportImpl - : Transport< + : TransportImpl< TDirectTransportAppData, DirectTransportEvents, DirectTransportObserver diff --git a/src/Antelcat.MediasoupSharp/PipeTransport.cs b/src/Antelcat.MediasoupSharp/PipeTransport.cs index 553fd64..69fb584 100644 --- a/src/Antelcat.MediasoupSharp/PipeTransport.cs +++ b/src/Antelcat.MediasoupSharp/PipeTransport.cs @@ -42,7 +42,7 @@ public partial class PipeTransportData(DumpT dump) : TransportBaseData(dump) Interfaces = [typeof(ITransport), typeof(IEnhancedEventEmitter)], Exclude = [nameof(ConsumeAsync)])] public class PipeTransportImpl - : Transport< + : TransportImpl< TPipeTransportAppData, PipeTransportEvents, PipeTransportObserver diff --git a/src/Antelcat.MediasoupSharp/PlainTransport.cs b/src/Antelcat.MediasoupSharp/PlainTransport.cs index 0d5d418..81e51fa 100644 --- a/src/Antelcat.MediasoupSharp/PlainTransport.cs +++ b/src/Antelcat.MediasoupSharp/PlainTransport.cs @@ -46,7 +46,7 @@ public partial class PlainTransportData(DumpT dump) : TransportBaseData(dump) NamingTemplate = nameof(IPlainTransport), Interfaces = [typeof(ITransport), typeof(IEnhancedEventEmitter)])] public class PlainTransportImpl - : Transport< + : TransportImpl< TPlainTransportAppData, PlainTransportEvents, PlainTransportObserver diff --git a/src/Antelcat.MediasoupSharp/Router.cs b/src/Antelcat.MediasoupSharp/Router.cs index 078c93c..785b331 100644 --- a/src/Antelcat.MediasoupSharp/Router.cs +++ b/src/Antelcat.MediasoupSharp/Router.cs @@ -677,47 +677,48 @@ public async Task> CreateDirectTran private async Task ConfigureTransportAsync(ITransport transport, IWebRtcServer? webRtcServer = null) { + var trans = (transport as IEnhancedEventEmitter).NotNull(); await using (await transportsLock.WriteLockAsync()) { transports[transport.Id] = transport; } - transport.On(static x => x.close, async _ => + trans.On(static x => x.close, async _ => { await using (await transportsLock.WriteLockAsync()) { transports.Remove(transport.Id); } }); - transport.On(static x => x.listenServerClose, async _ => + trans.On(static x => x.listenServerClose, async _ => { await using (await transportsLock.WriteLockAsync()) { transports.Remove(transport.Id); } }); - transport.On(static x => x.newProducer, async producer => + trans.On(static x => x.newProducer, async producer => { await using (await producersLock.WriteLockAsync()) { producers[producer.Id] = producer; } }); - transport.On(static x => x.producerClose, async producer => + trans.On(static x => x.producerClose, async producer => { await using (await producersLock.WriteLockAsync()) { producers.Remove(producer.Id); } }); - transport.On(static x => x.newDataProducer, async dataProducer => + trans.On(static x => x.newDataProducer, async dataProducer => { await using (await dataProducersLock.WriteLockAsync()) { dataProducers[dataProducer.Id] = dataProducer; } }); - transport.On(static x => x.dataProducerClose, async dataProducer => + trans.On(static x => x.dataProducerClose, async dataProducer => { await using (await dataProducersLock.WriteLockAsync()) { @@ -1242,7 +1243,7 @@ private async Task CloseInternalAsync() private Task ConfigureRtpObserverAsync(IRtpObserver rtpObserver) { rtpObservers[rtpObserver.Internal.RtpObserverId] = rtpObserver; - rtpObserver.On(static x => x.close, async _ => + (rtpObserver as IEnhancedEventEmitter)?.On(static x => x.close, async _ => { await using (await rtpObserversLock.WriteLockAsync()) { diff --git a/src/Antelcat.MediasoupSharp/RtpObserver.cs b/src/Antelcat.MediasoupSharp/RtpObserver.cs index 0aa8595..435909c 100644 --- a/src/Antelcat.MediasoupSharp/RtpObserver.cs +++ b/src/Antelcat.MediasoupSharp/RtpObserver.cs @@ -8,8 +8,8 @@ namespace Antelcat.MediasoupSharp; [AutoExtractInterface( - NamingTemplate = nameof(IRtpObserver), - Interfaces = [typeof(IEnhancedEventEmitter)]) + NamingTemplate = nameof(IRtpObserver) + ) ] public abstract class RtpObserverImpl : EnhancedEventEmitter, diff --git a/src/Antelcat.MediasoupSharp/Transport.cs b/src/Antelcat.MediasoupSharp/Transport.cs index d1531e9..9adf20c 100644 --- a/src/Antelcat.MediasoupSharp/Transport.cs +++ b/src/Antelcat.MediasoupSharp/Transport.cs @@ -59,8 +59,8 @@ public partial class TransportBaseData public SctpState? SctpState { get; set; } } -[AutoExtractInterface(Interfaces = [typeof(IEnhancedEventEmitter)])] -public abstract class Transport +[AutoExtractInterface(NamingTemplate = nameof(ITransport))] +public abstract class TransportImpl : EnhancedEventEmitter, ITransport< TTransportAppData, @@ -216,7 +216,7 @@ public abstract class Transport /// @emits - (dataProducer: DataProducer) /// @emits - (dataProducer: DataProducer) /// - protected Transport(TransportConstructorOptions options, TObserver observer) + protected TransportImpl(TransportConstructorOptions options, TObserver observer) { Internal = options.Internal; Data = options.Data; diff --git a/src/Antelcat.MediasoupSharp/TransportTypes.cs b/src/Antelcat.MediasoupSharp/TransportTypes.cs index e7dd407..d4e787f 100644 --- a/src/Antelcat.MediasoupSharp/TransportTypes.cs +++ b/src/Antelcat.MediasoupSharp/TransportTypes.cs @@ -37,7 +37,6 @@ public interface ITransport where TEvents : TransportEvents where TObserver : TransportObserver { - TTransportAppData AppData { get; set; } public TObserver Observer { get; } } \ No newline at end of file diff --git a/src/Antelcat.MediasoupSharp/WebRtcTransport.cs b/src/Antelcat.MediasoupSharp/WebRtcTransport.cs index 2bf1978..9983cf0 100644 --- a/src/Antelcat.MediasoupSharp/WebRtcTransport.cs +++ b/src/Antelcat.MediasoupSharp/WebRtcTransport.cs @@ -50,7 +50,7 @@ public class WebRtcTransportConstructorOptions(WebRtcTr NamingTemplate = nameof(IWebRtcTransport), Interfaces = [typeof(ITransport), typeof(IEnhancedEventEmitter)])] public class WebRtcTransportImpl : - Transport< + TransportImpl< TWebRtcTransportAppData, WebRtcTransportEvents, WebRtcTransportObserver