From c8fa38449398cd935ede1dc15e39c04dc746ef26 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Mon, 22 Nov 2021 14:13:03 +0700 Subject: [PATCH 01/30] build: use net6 SDK --- src/global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/global.json b/src/global.json index 0702865ec..52f2af685 100644 --- a/src/global.json +++ b/src/global.json @@ -3,6 +3,6 @@ "MSBuild.Sdk.Extras": "3.0.23" }, "sdk": { - "version": "5.0.x" + "version": "6.0.100" } } \ No newline at end of file From 950e6a7f23c85b98a79660bc848ffc112bab3a49 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Mon, 22 Nov 2021 14:17:30 +0700 Subject: [PATCH 02/30] core: add net6.0 target --- src/LibVLCSharp/LibVLCSharp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index 8f2c3e89c..483089a1f 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -28,7 +28,7 @@ This package also contains the views for the following platforms: If you need Xamarin.Forms support, see LibVLCSharp.Forms. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. - netstandard2.1;netstandard2.0;netstandard1.1 + net6.0;netstandard2.1;netstandard2.0;netstandard1.1 $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 $(TargetFrameworks);uap10.0;uap10.0.16299;net40;net471 $(TargetsForTfmSpecificBuildOutput);IncludeAWindow From 842568f64df9b70da30ff368e8f79bf0aa5b1d87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20VIGNELLES?= Date: Mon, 22 Nov 2021 14:21:11 +0700 Subject: [PATCH 03/30] Fixed Nullable reference types-related warnings (cherry picked from commit 0b9cd86a1cf4546d8d73e19d2ec3656032f01151) # Conflicts: # src/LibVLCSharp.Forms/Shared/PlaybackControls.xaml.cs # src/LibVLCSharp/LibVLCSharp.csproj --- .../VideoViewRenderer.cs | 2 +- .../VideoViewRenderer.cs | 2 +- .../Platforms/Android/VideoViewRenderer.cs | 2 +- .../Platforms/Apple/VideoViewRenderer.cs | 2 +- .../Shared/MediaPlayerElement.xaml.cs | 6 +++--- src/LibVLCSharp.Tests/CoreLoadingTests.cs | 4 ++-- src/LibVLCSharp.Tests/LibVLCAPICoverage.cs | 18 +++++++++--------- src/LibVLCSharp.Tests/MediaDiscovererTests.cs | 8 ++++---- src/LibVLCSharp.Tests/MediaPlayerTests.cs | 4 ++-- src/LibVLCSharp.Tests/MediaTests.cs | 6 +++--- src/LibVLCSharp.Uno/MediaPlayerElement.cs | 2 +- src/LibVLCSharp.Uno/VideoView.UWP.cs | 2 +- .../VideoViewWrapper.Android.iOS.cs | 2 +- src/LibVLCSharp.WPF/ForegroundWindow.cs | 10 +++++----- src/LibVLCSharp/Shared/Core/Core.cs | 2 +- src/LibVLCSharp/Shared/Helpers/MarshalUtils.cs | 12 ++++++++---- src/LibVLCSharp/Shared/Media.cs | 4 ++-- src/LibVLCSharp/Shared/MediaPlayer.cs | 2 +- .../MediaPlayerElement/AspectRatioManager.cs | 4 ++-- .../MediaPlayerElement/AutoHideNotifier.cs | 2 +- .../BufferingProgressNotifier.cs | 2 +- .../CastRenderersDiscoverer.cs | 4 ++-- .../DeviceAwakeningManager.cs | 2 +- .../MediaPlayerElement/SeekBarManager.cs | 6 +++--- .../Shared/MediaPlayerElement/StateManager.cs | 12 ++++++------ .../Shared/MediaPlayerElement/TracksManager.cs | 10 +++++----- .../Shared/MediaPlayerElement/VolumeManager.cs | 6 +++--- 27 files changed, 71 insertions(+), 67 deletions(-) diff --git a/src/LibVLCSharp.Forms.Platforms.GTK/VideoViewRenderer.cs b/src/LibVLCSharp.Forms.Platforms.GTK/VideoViewRenderer.cs index e968ae610..dc7260b57 100644 --- a/src/LibVLCSharp.Forms.Platforms.GTK/VideoViewRenderer.cs +++ b/src/LibVLCSharp.Forms.Platforms.GTK/VideoViewRenderer.cs @@ -43,7 +43,7 @@ protected override void OnElementChanged(ElementChangedEventArgs e) } } - private void OnMediaPlayerChanging(object sender, MediaPlayerChangingEventArgs e) + private void OnMediaPlayerChanging(object? sender, MediaPlayerChangingEventArgs e) { if (Control == null) { diff --git a/src/LibVLCSharp.Forms.Platforms.WPF/VideoViewRenderer.cs b/src/LibVLCSharp.Forms.Platforms.WPF/VideoViewRenderer.cs index 4d9cd3679..e098e406f 100644 --- a/src/LibVLCSharp.Forms.Platforms.WPF/VideoViewRenderer.cs +++ b/src/LibVLCSharp.Forms.Platforms.WPF/VideoViewRenderer.cs @@ -39,7 +39,7 @@ protected override void OnElementChanged(ElementChangedEventArgs e) } } - private void OnMediaPlayerChanging(object sender, MediaPlayerChangingEventArgs e) + private void OnMediaPlayerChanging(object? sender, MediaPlayerChangingEventArgs e) { Control.MediaPlayer = e.NewMediaPlayer; } diff --git a/src/LibVLCSharp.Forms/Platforms/Android/VideoViewRenderer.cs b/src/LibVLCSharp.Forms/Platforms/Android/VideoViewRenderer.cs index e5ce28748..afdc7b5e4 100644 --- a/src/LibVLCSharp.Forms/Platforms/Android/VideoViewRenderer.cs +++ b/src/LibVLCSharp.Forms/Platforms/Android/VideoViewRenderer.cs @@ -51,7 +51,7 @@ protected override void OnElementChanged(ElementChangedEventArgs e) } } - private void OnMediaPlayerChanging(object sender, MediaPlayerChangingEventArgs e) + private void OnMediaPlayerChanging(object? sender, MediaPlayerChangingEventArgs e) { Control.MediaPlayer = e.NewMediaPlayer; Control.TriggerLayoutChangeListener(); diff --git a/src/LibVLCSharp.Forms/Platforms/Apple/VideoViewRenderer.cs b/src/LibVLCSharp.Forms/Platforms/Apple/VideoViewRenderer.cs index 79a49b356..9901aa4c2 100644 --- a/src/LibVLCSharp.Forms/Platforms/Apple/VideoViewRenderer.cs +++ b/src/LibVLCSharp.Forms/Platforms/Apple/VideoViewRenderer.cs @@ -59,7 +59,7 @@ protected override void OnElementChanged(ElementChangedEventArgs()) { @@ -231,7 +231,7 @@ private void PageAppearing(object sender, Page e) } } - private void PageDisappearing(object sender, Page e) + private void PageDisappearing(object? sender, Page e) { if (e == this.FindAncestor()) { @@ -240,7 +240,7 @@ private void PageDisappearing(object sender, Page e) } } - private void GestureRecognized(object sender, EventArgs e) + private void GestureRecognized(object? sender, EventArgs e) { PlaybackControls.Show(); } diff --git a/src/LibVLCSharp.Tests/CoreLoadingTests.cs b/src/LibVLCSharp.Tests/CoreLoadingTests.cs index 1ef5e6152..2aad4210c 100644 --- a/src/LibVLCSharp.Tests/CoreLoadingTests.cs +++ b/src/LibVLCSharp.Tests/CoreLoadingTests.cs @@ -10,7 +10,7 @@ public class CoreLoadingTests [Test] public void LoadLibVLCFromSpecificPath() { - var dirPath = Path.GetDirectoryName(typeof(CoreLoadingTests).Assembly.Location); + var dirPath = Path.GetDirectoryName(typeof(CoreLoadingTests).Assembly.Location)!; var finalPath = Path.Combine(dirPath, "libvlc", "win-x86"); Assert.DoesNotThrow(() => Core.Initialize(finalPath), "fail to load libVLC dll at specified location"); @@ -24,4 +24,4 @@ public void LoadLibVLCFromInferredPath() var libVLC = new LibVLC("--no-audio", "--no-video"); } } -} \ No newline at end of file +} diff --git a/src/LibVLCSharp.Tests/LibVLCAPICoverage.cs b/src/LibVLCSharp.Tests/LibVLCAPICoverage.cs index 0822249b8..176bc64d9 100644 --- a/src/LibVLCSharp.Tests/LibVLCAPICoverage.cs +++ b/src/LibVLCSharp.Tests/LibVLCAPICoverage.cs @@ -28,15 +28,15 @@ public async Task CheckLibVLCCoverage() libvlc3deprecatedSym = (await httpClient.GetStringAsync(LibVLCDeprecatedSymUrl)).Split(new[] { '\r', '\n' }).Where(s => !string.IsNullOrEmpty(s)).ToArray(); } - List dllImports = new List(); + var dllImports = new List(); // retrieving EventManager using reflection because the type is internal var eventManager = typeof(MediaPlayer).GetRuntimeProperties() .First(n => n.Name.Equals("EventManager")) .PropertyType - .BaseType; + .BaseType!; - List libvlcTypes = new List + var libvlcTypes = new List { typeof(LibVLC), typeof(MediaPlayer), @@ -77,26 +77,26 @@ public async Task CheckLibVLCCoverage() deprecatedSymbols.Add(finalSymbol.Trim()); } - List implementedButHidden = new List + var implementedButHidden = new List { "libvlc_media_player_set_android_context", // android build only "libvlc_free" // hidden in internal type }; // these symbols are internal, should not be in libvlc.sym and have been removed in libvlc 4+ - List internalSymbolsThatShouldNotBeThere = new List + var internalSymbolsThatShouldNotBeThere = new List { "libvlc_get_input_thread", "libvlc_media_new_from_input_item", "libvlc_media_set_state" }; // not implemented symbols for lack of use case or user interest - List notImplementedOnPurpose = new List + var notImplementedOnPurpose = new List { "libvlc_printerr", "libvlc_vprinterr", "libvlc_clock", "libvlc_dialog_get_context", "libvlc_dialog_set_context", "libvlc_event_type_name", "libvlc_log_get_object", "libvlc_vlm", "libvlc_media_list_player", "libvlc_media_library" }; - List exclude = new List(); + var exclude = new List(); exclude.AddRange(implementedButHidden); exclude.AddRange(internalSymbolsThatShouldNotBeThere); exclude.AddRange(notImplementedOnPurpose); @@ -115,7 +115,7 @@ public async Task CheckLibVLCCoverage() var arg = attr.NamedArguments.FirstOrDefault(a => a.MemberName.Equals("EntryPoint")); if (arg == default) continue; - var sym = (string)arg.TypedValue.Value; + var sym = (string)arg.TypedValue.Value!; dllImports.Add(sym); } @@ -141,4 +141,4 @@ public async Task CheckLibVLCCoverage() Assert.Zero(missingApisCount); } } -} \ No newline at end of file +} diff --git a/src/LibVLCSharp.Tests/MediaDiscovererTests.cs b/src/LibVLCSharp.Tests/MediaDiscovererTests.cs index 8779b7a0b..5db019671 100644 --- a/src/LibVLCSharp.Tests/MediaDiscovererTests.cs +++ b/src/LibVLCSharp.Tests/MediaDiscovererTests.cs @@ -14,7 +14,7 @@ public class MediaDiscovererTests : BaseSetup public void CreateStartAndStopDiscoverer() { var mds = _libVLC.MediaDiscoverers(MediaDiscovererCategory.Lan); - var md = new MediaDiscoverer(_libVLC, mds.First().Name); + var md = new MediaDiscoverer(_libVLC, mds.First().Name!); Assert.True(md.Start()); Assert.True(md.IsRunning); md.Stop(); @@ -25,12 +25,12 @@ public void CreateStartAndStopDiscoverer() public async Task DisposeMediaDiscoverer() { var mds = _libVLC.MediaDiscoverers(MediaDiscovererCategory.Lan); - var md = new MediaDiscoverer(_libVLC, mds.First().Name); + var md = new MediaDiscoverer(_libVLC, mds.First().Name!); Assert.True(md.Start()); Assert.True(md.IsRunning); Assert.NotNull(md.MediaList); await Task.Delay(1000); - foreach(var media in md.MediaList) + foreach(var media in md.MediaList!) { Debug.WriteLine(media.Mrl); } @@ -40,4 +40,4 @@ public async Task DisposeMediaDiscoverer() Assert.AreEqual(IntPtr.Zero, md.NativeReference); } } -} \ No newline at end of file +} diff --git a/src/LibVLCSharp.Tests/MediaPlayerTests.cs b/src/LibVLCSharp.Tests/MediaPlayerTests.cs index 8e3caf224..9f7fbd206 100644 --- a/src/LibVLCSharp.Tests/MediaPlayerTests.cs +++ b/src/LibVLCSharp.Tests/MediaPlayerTests.cs @@ -145,14 +145,14 @@ public async Task EventFireOnceForeachRegistration() } } - void Mp_Playing1(object sender, EventArgs e) + void Mp_Playing1(object? sender, EventArgs e) { callCountRegisterTwo++; Debug.WriteLine($"Mp_Playing1 called with {callCountRegisterTwo}"); } - void Mp_Playing(object sender, EventArgs e) + void Mp_Playing(object? sender, EventArgs e) { callCountRegisterOne++; Debug.WriteLine($"Mp_Playing called with {callCountRegisterOne}"); diff --git a/src/LibVLCSharp.Tests/MediaTests.cs b/src/LibVLCSharp.Tests/MediaTests.cs index c6a7576ae..afb08170a 100644 --- a/src/LibVLCSharp.Tests/MediaTests.cs +++ b/src/LibVLCSharp.Tests/MediaTests.cs @@ -29,10 +29,10 @@ public void CreateMediaFromUri() [Test] public void CreateMediaFail() { - Assert.Throws(() => new Media(null, Path.GetTempFileName())); + Assert.Throws(() => new Media(null!, Path.GetTempFileName())); Assert.Throws(() => new Media(_libVLC, string.Empty)); Assert.Throws(() => new Media(_libVLC, new Uri("/hello.mp4", UriKind.Relative))); - Assert.Throws(() => new Media(_libVLC, uri: null)); + Assert.Throws(() => new Media(_libVLC, uri: null!)); } [Test] @@ -247,7 +247,7 @@ private async Task GetStreamFromUrl(string url) return new MemoryStream(imageData); } - private void LibVLC_Log(object sender, LogEventArgs e) + private void LibVLC_Log(object? sender, LogEventArgs e) { System.Diagnostics.Debug.WriteLine(e.Message); } diff --git a/src/LibVLCSharp.Uno/MediaPlayerElement.cs b/src/LibVLCSharp.Uno/MediaPlayerElement.cs index 113e7714e..3ec478844 100644 --- a/src/LibVLCSharp.Uno/MediaPlayerElement.cs +++ b/src/LibVLCSharp.Uno/MediaPlayerElement.cs @@ -95,7 +95,7 @@ protected override void OnApplyTemplate() } } - private void OnPointerMoved(object sender, RoutedEventArgs e) + private void OnPointerMoved(object? sender, RoutedEventArgs e) { PlaybackControls?.Show(); } diff --git a/src/LibVLCSharp.Uno/VideoView.UWP.cs b/src/LibVLCSharp.Uno/VideoView.UWP.cs index b36bb7e26..fae349c9d 100644 --- a/src/LibVLCSharp.Uno/VideoView.UWP.cs +++ b/src/LibVLCSharp.Uno/VideoView.UWP.cs @@ -37,7 +37,7 @@ event EventHandler IVideoControl.SizeChanged } } - private void VideoView_SizeChanged(object sender, Windows.UI.Xaml.SizeChangedEventArgs e) + private void VideoView_SizeChanged(object? sender, Windows.UI.Xaml.SizeChangedEventArgs e) { _sizeChangedHandler?.Invoke(this, EventArgs.Empty); } diff --git a/src/LibVLCSharp.Uno/VideoViewWrapper.Android.iOS.cs b/src/LibVLCSharp.Uno/VideoViewWrapper.Android.iOS.cs index 3ed580e18..7669d52cc 100644 --- a/src/LibVLCSharp.Uno/VideoViewWrapper.Android.iOS.cs +++ b/src/LibVLCSharp.Uno/VideoViewWrapper.Android.iOS.cs @@ -136,7 +136,7 @@ event EventHandler IVideoControl.SizeChanged } } - private void VideoView_SizeChanged(object sender, SizeChangedEventArgs e) + private void VideoView_SizeChanged(object? sender, SizeChangedEventArgs e) { _sizeChangedHandler?.Invoke(this, EventArgs.Empty); } diff --git a/src/LibVLCSharp.WPF/ForegroundWindow.cs b/src/LibVLCSharp.WPF/ForegroundWindow.cs index b7d2352d3..73712f3b4 100644 --- a/src/LibVLCSharp.WPF/ForegroundWindow.cs +++ b/src/LibVLCSharp.WPF/ForegroundWindow.cs @@ -50,12 +50,12 @@ internal ForegroundWindow(FrameworkElement background) _bckgnd.Unloaded += Background_Unloaded; } - void Background_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) + void Background_DataContextChanged(object? sender, DependencyPropertyChangedEventArgs e) { DataContext = e.NewValue; } - void Background_Unloaded(object sender, RoutedEventArgs e) + void Background_Unloaded(object? sender, RoutedEventArgs e) { _bckgnd.SizeChanged -= Wndhost_SizeChanged; _bckgnd.LayoutUpdated -= RefreshOverlayPosition; @@ -68,7 +68,7 @@ void Background_Unloaded(object sender, RoutedEventArgs e) Hide(); } - void Background_Loaded(object sender, RoutedEventArgs e) + void Background_Loaded(object? sender, RoutedEventArgs e) { if (_wndhost != null && IsVisible) { @@ -123,7 +123,7 @@ void RefreshOverlayPosition(object? sender, EventArgs e) Top = targetPoints.Y; } - void Wndhost_SizeChanged(object sender, SizeChangedEventArgs e) + void Wndhost_SizeChanged(object? sender, SizeChangedEventArgs e) { var source = PresentationSource.FromVisual(_wndhost); if (source == null) @@ -140,7 +140,7 @@ void Wndhost_SizeChanged(object sender, SizeChangedEventArgs e) Width = size.X; } - void Wndhost_Closing(object sender, System.ComponentModel.CancelEventArgs e) + void Wndhost_Closing(object? sender, System.ComponentModel.CancelEventArgs e) { Close(); diff --git a/src/LibVLCSharp/Shared/Core/Core.cs b/src/LibVLCSharp/Shared/Core/Core.cs index d46cf1ed9..bfcceceb3 100644 --- a/src/LibVLCSharp/Shared/Core/Core.cs +++ b/src/LibVLCSharp/Shared/Core/Core.cs @@ -37,7 +37,7 @@ partial struct Native static void EnsureVersionsMatch() { var libvlcMajorVersion = int.Parse(Native.LibVLCVersion().FromUtf8()?.Split('.').FirstOrDefault() ?? "0"); - var libvlcsharpMajorVersion = Assembly.GetExecutingAssembly().GetName().Version.Major; + var libvlcsharpMajorVersion = Assembly.GetExecutingAssembly().GetName().Version?.Major; if (libvlcMajorVersion != libvlcsharpMajorVersion) throw new VLCException($"Version mismatch between LibVLC {libvlcMajorVersion} and LibVLCSharp {libvlcsharpMajorVersion}. " + $"They must share the same major version number"); diff --git a/src/LibVLCSharp/Shared/Helpers/MarshalUtils.cs b/src/LibVLCSharp/Shared/Helpers/MarshalUtils.cs index 8e2316ddd..557322f6c 100644 --- a/src/LibVLCSharp/Shared/Helpers/MarshalUtils.cs +++ b/src/LibVLCSharp/Shared/Helpers/MarshalUtils.cs @@ -9,6 +9,7 @@ internal static class MarshalUtils { internal readonly struct Native { +#pragma warning disable IDE1006 // Naming Styles #if NETFRAMEWORK || NETSTANDARD #region Windows @@ -59,6 +60,7 @@ internal readonly struct Native [DllImport(Constants.Msvcrt, EntryPoint = "vsnprintf", CallingConvention = CallingConvention.Cdecl)] public static extern int vsnprintf_windows(IntPtr buffer, UIntPtr size, IntPtr format, IntPtr args); +#pragma warning restore IDE1006 // Naming Styles } #region logging @@ -139,7 +141,7 @@ static string LinuxX64LogCallback(IntPtr format, IntPtr args) } } - static string UseStructurePointer(T structure, Func action) + static string UseStructurePointer(T structure, Func action) where T: notnull { var structurePointer = IntPtr.Zero; try @@ -154,7 +156,7 @@ static string UseStructurePointer(T structure, Func action) } } - static void UseStructurePointer(T structure, Action action) + static void UseStructurePointer(T structure, Action action) where T : notnull { var structurePointer = IntPtr.Zero; try @@ -169,6 +171,7 @@ static void UseStructurePointer(T structure, Action action) } } +#pragma warning disable IDE1006 // Naming Styles static int vsnprintf(IntPtr buffer, UIntPtr size, IntPtr format, IntPtr args) { #if ANDROID @@ -196,6 +199,7 @@ static int vsprintf(IntPtr buffer, IntPtr format, IntPtr args) } #endregion +#pragma warning restore IDE1006 // Naming Styles /// /// Helper for libvlc_new @@ -265,7 +269,7 @@ internal static TU[] Retrieve(Func getRef, Func retrie } var resultList = new List(); - IntPtr nextRef = nativeRef; + var nextRef = nativeRef; T structure; TU obj; @@ -509,7 +513,7 @@ internal static T PtrToStructure(IntPtr ptr) #if NETSTANDARD1_1 || NET40 return (T)Marshal.PtrToStructure(ptr, typeof(T)); #else - return Marshal.PtrToStructure(ptr); + return Marshal.PtrToStructure(ptr)!; #endif } diff --git a/src/LibVLCSharp/Shared/Media.cs b/src/LibVLCSharp/Shared/Media.cs index 1bf189e62..43d3b2024 100644 --- a/src/LibVLCSharp/Shared/Media.cs +++ b/src/LibVLCSharp/Shared/Media.cs @@ -467,7 +467,7 @@ public async Task Parse(MediaParseOptions options = MediaPars tcs.TrySetCanceled(); }); - void OnParsedChanged(object sender, MediaParsedChangedEventArgs mediaParsedChangedEventArgs) + void OnParsedChanged(object? sender, MediaParsedChangedEventArgs mediaParsedChangedEventArgs) => tcs.TrySetResult(mediaParsedChangedEventArgs.ParsedStatus); try @@ -613,7 +613,7 @@ public bool AddSlave(MediaSlaveType type, uint priority, Uri uri) /// /// the media to compare this one with /// - public override bool Equals(object obj) + public override bool Equals(object? obj) { return obj is Media media && EqualityComparer.Default.Equals(NativeReference, media.NativeReference); diff --git a/src/LibVLCSharp/Shared/MediaPlayer.cs b/src/LibVLCSharp/Shared/MediaPlayer.cs index 14daf6791..2b55fa0d9 100644 --- a/src/LibVLCSharp/Shared/MediaPlayer.cs +++ b/src/LibVLCSharp/Shared/MediaPlayer.cs @@ -1219,7 +1219,7 @@ public int Volume /// /// the mediaplayer instance to compare this to /// - public override bool Equals(object obj) + public override bool Equals(object? obj) { return obj is MediaPlayer player && EqualityComparer.Default.Equals(NativeReference, player.NativeReference); diff --git a/src/LibVLCSharp/Shared/MediaPlayerElement/AspectRatioManager.cs b/src/LibVLCSharp/Shared/MediaPlayerElement/AspectRatioManager.cs index e09fa05f7..c24aa3a2f 100644 --- a/src/LibVLCSharp/Shared/MediaPlayerElement/AspectRatioManager.cs +++ b/src/LibVLCSharp/Shared/MediaPlayerElement/AspectRatioManager.cs @@ -75,12 +75,12 @@ protected override void UnsubscribeEvents(Shared.MediaPlayer mediaPlayer) mediaPlayer.ESSelected -= MediaPlayer_ESSelectedAsync; } - private async void MediaPlayer_ESSelectedAsync(object sender, MediaPlayerESSelectedEventArgs e) + private async void MediaPlayer_ESSelectedAsync(object? sender, MediaPlayerESSelectedEventArgs e) { await DispatcherInvokeAsync(() => UpdateAspectRatio()); } - private void VideoView_SizeChanged(object sender, EventArgs args) + private void VideoView_SizeChanged(object? sender, EventArgs args) { UpdateAspectRatio(); } diff --git a/src/LibVLCSharp/Shared/MediaPlayerElement/AutoHideNotifier.cs b/src/LibVLCSharp/Shared/MediaPlayerElement/AutoHideNotifier.cs index 558f21a46..b936eb25c 100644 --- a/src/LibVLCSharp/Shared/MediaPlayerElement/AutoHideNotifier.cs +++ b/src/LibVLCSharp/Shared/MediaPlayerElement/AutoHideNotifier.cs @@ -109,7 +109,7 @@ private void StopTimer() Timer.Change(Timeout.Infinite, Timeout.Infinite); } - private async void OnStateChangedAsync(object sender, EventArgs e) + private async void OnStateChangedAsync(object? sender, EventArgs e) { await ShowAsync(); } diff --git a/src/LibVLCSharp/Shared/MediaPlayerElement/BufferingProgressNotifier.cs b/src/LibVLCSharp/Shared/MediaPlayerElement/BufferingProgressNotifier.cs index 0887891ca..9474b8072 100644 --- a/src/LibVLCSharp/Shared/MediaPlayerElement/BufferingProgressNotifier.cs +++ b/src/LibVLCSharp/Shared/MediaPlayerElement/BufferingProgressNotifier.cs @@ -60,7 +60,7 @@ private set } } - private async void MediaPlayer_BufferingAsync(object sender, MediaPlayerBufferingEventArgs e) + private async void MediaPlayer_BufferingAsync(object? sender, MediaPlayerBufferingEventArgs e) { await DispatcherInvokeAsync(() => BufferingProgress = e.Cache / 100); } diff --git a/src/LibVLCSharp/Shared/MediaPlayerElement/CastRenderersDiscoverer.cs b/src/LibVLCSharp/Shared/MediaPlayerElement/CastRenderersDiscoverer.cs index 96f0fb875..d4a221bcc 100644 --- a/src/LibVLCSharp/Shared/MediaPlayerElement/CastRenderersDiscoverer.cs +++ b/src/LibVLCSharp/Shared/MediaPlayerElement/CastRenderersDiscoverer.cs @@ -119,13 +119,13 @@ private async Task OnLibVLCChangedAsync() } } - private async void RendererDiscoverer_ItemAddedAsync(object sender, RendererDiscovererItemAddedEventArgs e) + private async void RendererDiscoverer_ItemAddedAsync(object? sender, RendererDiscovererItemAddedEventArgs e) { RenderersList.Add(e.RendererItem); await UpdateHasRenderersPropertyValueAsync(); } - private async void RendererDiscoverer_ItemDeletedAsync(object sender, RendererDiscovererItemDeletedEventArgs e) + private async void RendererDiscoverer_ItemDeletedAsync(object? sender, RendererDiscovererItemDeletedEventArgs e) { RenderersList.Remove(e.RendererItem); await UpdateHasRenderersPropertyValueAsync(); diff --git a/src/LibVLCSharp/Shared/MediaPlayerElement/DeviceAwakeningManager.cs b/src/LibVLCSharp/Shared/MediaPlayerElement/DeviceAwakeningManager.cs index 532798d07..d91808b4a 100644 --- a/src/LibVLCSharp/Shared/MediaPlayerElement/DeviceAwakeningManager.cs +++ b/src/LibVLCSharp/Shared/MediaPlayerElement/DeviceAwakeningManager.cs @@ -71,7 +71,7 @@ private void UpdateState() (mediaPlayer.State == VLCState.Playing || mediaPlayer.State == VLCState.Opening)); } - private async void OnStateChangedAsync(object sender, EventArgs e) + private async void OnStateChangedAsync(object? sender, EventArgs e) { await DispatcherInvokeAsync(UpdateState); } diff --git a/src/LibVLCSharp/Shared/MediaPlayerElement/SeekBarManager.cs b/src/LibVLCSharp/Shared/MediaPlayerElement/SeekBarManager.cs index 74c66bba2..223d2e007 100644 --- a/src/LibVLCSharp/Shared/MediaPlayerElement/SeekBarManager.cs +++ b/src/LibVLCSharp/Shared/MediaPlayerElement/SeekBarManager.cs @@ -122,17 +122,17 @@ private async Task UpdateSeekableAndPositionAsync() await OnPositionChangedAsync(); } - private async void MediaPlayer_SeekableChangedAsync(object sender, EventArgs e) + private async void MediaPlayer_SeekableChangedAsync(object? sender, EventArgs e) { await UpdateSeekableAsync(); } - private async void MediaPlayer_PositionChangedAsync(object sender, EventArgs e) + private async void MediaPlayer_PositionChangedAsync(object? sender, EventArgs e) { await OnPositionChangedAsync(); } - private async void MediaPlayer_StoppedAsync(object sender, EventArgs e) + private async void MediaPlayer_StoppedAsync(object? sender, EventArgs e) { await UpdateSeekableAndPositionAsync(); } diff --git a/src/LibVLCSharp/Shared/MediaPlayerElement/StateManager.cs b/src/LibVLCSharp/Shared/MediaPlayerElement/StateManager.cs index 6fb02792b..e75871c09 100644 --- a/src/LibVLCSharp/Shared/MediaPlayerElement/StateManager.cs +++ b/src/LibVLCSharp/Shared/MediaPlayerElement/StateManager.cs @@ -159,7 +159,7 @@ private Task OnErrorOccuredAsync() return DispatcherInvokeEventHandlerAsync(ErrorOccured); } - private async void OnMediaPlayerChangedAsync(object sender, EventArgs e) + private async void OnMediaPlayerChangedAsync(object? sender, EventArgs e) { await UpdatePlayPauseAvailabilityAsync(); switch (MediaPlayer?.State) @@ -179,29 +179,29 @@ private async void OnMediaPlayerChangedAsync(object sender, EventArgs e) } } - private async void MediaPlayer_EncounteredErrorAsync(object sender, EventArgs e) + private async void MediaPlayer_EncounteredErrorAsync(object? sender, EventArgs e) { await OnErrorOccuredAsync(); } - private async void MediaPlayer_PlayingAsync(object sender, EventArgs e) + private async void MediaPlayer_PlayingAsync(object? sender, EventArgs e) { await PlayingOrPausedAsync(Playing); await UpdatePlayPauseAvailabilityAsync(); } - private async void MediaPlayer_PausedAsync(object sender, EventArgs e) + private async void MediaPlayer_PausedAsync(object? sender, EventArgs e) { await PlayingOrPausedAsync(Paused); } - private async void MediaPlayer_StoppedAsync(object sender, EventArgs e) + private async void MediaPlayer_StoppedAsync(object? sender, EventArgs e) { await DispatcherInvokeEventHandlerAsync(Stopped); await UpdatePlayPauseAvailabilityAsync(); } - private async void MediaPlayer_PausableChangedAsync(object sender, MediaPlayerPausableChangedEventArgs e) + private async void MediaPlayer_PausableChangedAsync(object? sender, MediaPlayerPausableChangedEventArgs e) { await UpdatePlayPauseAvailabilityAsync(); } diff --git a/src/LibVLCSharp/Shared/MediaPlayerElement/TracksManager.cs b/src/LibVLCSharp/Shared/MediaPlayerElement/TracksManager.cs index 1446c3813..a537540bb 100644 --- a/src/LibVLCSharp/Shared/MediaPlayerElement/TracksManager.cs +++ b/src/LibVLCSharp/Shared/MediaPlayerElement/TracksManager.cs @@ -81,7 +81,7 @@ protected void SetCurrentTrackId(Action set) /// the track description public TrackDescription? GetTrackDescription(int trackId) { - return Tracks.FirstOrDefault(t => t.Id == trackId); + return Tracks?.FirstOrDefault(t => t.Id == trackId); } private Task OnTrackChangedAsync(TrackType trackType, EventHandler? eventHandler, TEventArgs eventArgs) @@ -94,22 +94,22 @@ private Task OnTrackChangedAsync(TrackType trackType, EventHandler { @@ -96,12 +96,12 @@ await DispatcherInvokeAsync(() => }); } - //private async void MediaPlayer_VolumeChangedAsync(object sender, EventArgs e) + //private async void MediaPlayer_VolumeChangedAsync(object? sender, EventArgs e) //{ // await DispatcherInvokeEventHandlerAsync(VolumeChanged); //} - private async void MediaPlayer_MuteChangedAsync(object sender, EventArgs e) + private async void MediaPlayer_MuteChangedAsync(object? sender, EventArgs e) { await DispatcherInvokeEventHandlerAsync(MuteChanged); } From 71f72d5a66bfbc330e1e44bd0cefc6ea1b36a835 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Mon, 22 Nov 2021 14:28:41 +0700 Subject: [PATCH 04/30] CI: Bump to .NET 6 SDK --- buildsystem/base-template.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildsystem/base-template.yml b/buildsystem/base-template.yml index 8ed7400fd..6d670a4ff 100644 --- a/buildsystem/base-template.yml +++ b/buildsystem/base-template.yml @@ -3,7 +3,7 @@ steps: displayName: 'Use .NET Core SDK' inputs: packageType: sdk - version: 5.0.202 + version: 6.0.100 - task: DotNetCoreCLI@2 displayName: 'Install Cake' From f7c9b6b17fdc88c0025b7c14176cf94913220f6e Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 23 Nov 2021 15:21:46 +0700 Subject: [PATCH 05/30] try to workaround broken tooling part 1 --- src/LibVLCSharp/LibVLCSharp.csproj | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index 483089a1f..c599df29a 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -28,9 +28,11 @@ This package also contains the views for the following platforms: If you need Xamarin.Forms support, see LibVLCSharp.Forms. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. - net6.0;netstandard2.1;netstandard2.0;netstandard1.1 - $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 - $(TargetFrameworks);uap10.0;uap10.0.16299;net40;net471 + netstandard2.1;netstandard2.0;netstandard1.1 + $(TargetFrameworks);net40;net471 + $(TargetFrameworks);net6.0;net6-windows;net6-android;net6-ios;net6-tvos;net6-macos + $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 + $(TargetFrameworks);uap10.0;uap10.0.16299; $(TargetsForTfmSpecificBuildOutput);IncludeAWindow LibVLCSharp LibVLCSharp From 9fca4ca63cc558448ae59ffaff396a96609bbe9c Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 23 Nov 2021 15:23:00 +0700 Subject: [PATCH 06/30] fix test build --- src/LibVLCSharp.Tests/MediaPlayerTests.cs | 4 ++-- src/LibVLCSharp.Tests/MediaTests.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/LibVLCSharp.Tests/MediaPlayerTests.cs b/src/LibVLCSharp.Tests/MediaPlayerTests.cs index 9f7fbd206..8e3caf224 100644 --- a/src/LibVLCSharp.Tests/MediaPlayerTests.cs +++ b/src/LibVLCSharp.Tests/MediaPlayerTests.cs @@ -145,14 +145,14 @@ public async Task EventFireOnceForeachRegistration() } } - void Mp_Playing1(object? sender, EventArgs e) + void Mp_Playing1(object sender, EventArgs e) { callCountRegisterTwo++; Debug.WriteLine($"Mp_Playing1 called with {callCountRegisterTwo}"); } - void Mp_Playing(object? sender, EventArgs e) + void Mp_Playing(object sender, EventArgs e) { callCountRegisterOne++; Debug.WriteLine($"Mp_Playing called with {callCountRegisterOne}"); diff --git a/src/LibVLCSharp.Tests/MediaTests.cs b/src/LibVLCSharp.Tests/MediaTests.cs index afb08170a..b8cddbe5e 100644 --- a/src/LibVLCSharp.Tests/MediaTests.cs +++ b/src/LibVLCSharp.Tests/MediaTests.cs @@ -247,7 +247,7 @@ private async Task GetStreamFromUrl(string url) return new MemoryStream(imageData); } - private void LibVLC_Log(object? sender, LogEventArgs e) + private void LibVLC_Log(object sender, LogEventArgs e) { System.Diagnostics.Debug.WriteLine(e.Message); } From 64f5f4477634f8a9f3f819ea0c9db0c415cea411 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 23 Nov 2021 15:27:30 +0700 Subject: [PATCH 07/30] refactor --- src/LibVLCSharp/LibVLCSharp.csproj | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index c599df29a..86926ea12 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -1,4 +1,17 @@  + + + + $(TargetFrameworks);net6.0;net6-windows;net6-android;net6-ios;net6-tvos;net6-macos + + + + + $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 + $(TargetFrameworks);uap10.0;uap10.0.16299; + + + LibVLCSharp The official .NET wrapper around LibVLC. @@ -28,11 +41,8 @@ This package also contains the views for the following platforms: If you need Xamarin.Forms support, see LibVLCSharp.Forms. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. - netstandard2.1;netstandard2.0;netstandard1.1 + $(TargetFrameworks);netstandard2.1;netstandard2.0;netstandard1.1 $(TargetFrameworks);net40;net471 - $(TargetFrameworks);net6.0;net6-windows;net6-android;net6-ios;net6-tvos;net6-macos - $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 - $(TargetFrameworks);uap10.0;uap10.0.16299; $(TargetsForTfmSpecificBuildOutput);IncludeAWindow LibVLCSharp LibVLCSharp From d41fe2abcfc2b1f3d26652bf1e7b57210f02d0a4 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 23 Nov 2021 15:54:29 +0700 Subject: [PATCH 08/30] cake: adjust for net6 --- buildsystem/build.cake | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/buildsystem/build.cake b/buildsystem/build.cake index 28095dbab..860595a1d 100644 --- a/buildsystem/build.cake +++ b/buildsystem/build.cake @@ -50,8 +50,24 @@ Task("Restore-NuGet-Packages") MoveDirectory("../src/packages", packagesDir); }); +Task("BuildNet6") + .Does(() => +{ + var msbuildSettings = new DotNetCoreMSBuildSettings(); + msbuildSettings.WithProperty("Net6", "true"); + + var settings = new DotNetCoreBuildSettings + { + MSBuildSettings = msbuildSettings + }; + + DotNetCoreBuild(libvlcsharpCsproj, settings); +}); + + Task("Build") .IsDependentOn("Restore-NuGet-Packages") + .IsDependentOn("BuildNet6") .Does(() => { Build(solutionPath); From 256fe6c4511fe9dc3d575b910153ad67e46eb9a4 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 23 Nov 2021 16:35:03 +0700 Subject: [PATCH 09/30] disable net6-android for now --- src/LibVLCSharp/LibVLCSharp.csproj | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index 86926ea12..af18add87 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -1,13 +1,14 @@ - + - $(TargetFrameworks);net6.0;net6-windows;net6-android;net6-ios;net6-tvos;net6-macos + + $(TargetFrameworks);net6.0;net6-windows;net6-ios;net6-tvos;net6-macos - $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 + $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 $(TargetFrameworks);uap10.0;uap10.0.16299; From 7f8d54dc1a50308a73f5e0d6cab364c293c2a1b6 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 23 Nov 2021 16:42:03 +0700 Subject: [PATCH 10/30] try remove linux.patch --- buildsystem/linux-build.yml | 5 ----- buildsystem/linux.patch | 22 ---------------------- 2 files changed, 27 deletions(-) delete mode 100644 buildsystem/linux.patch diff --git a/buildsystem/linux-build.yml b/buildsystem/linux-build.yml index 22920a520..2930deba2 100644 --- a/buildsystem/linux-build.yml +++ b/buildsystem/linux-build.yml @@ -1,10 +1,5 @@ steps: - template: base-template.yml -- bash: | - #!/bin/bash - set -ex - git apply buildsystem/linux.patch - displayName: 'Update csproj for linux' - task: DotNetCoreCLI@2 displayName: 'dotnet build' diff --git a/buildsystem/linux.patch b/buildsystem/linux.patch deleted file mode 100644 index b38590395..000000000 --- a/buildsystem/linux.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 4469dbbe84e01c611d8a3a02ee992a6ee8640d39 Mon Sep 17 00:00:00 2001 -From: Martin Finkel -Date: Mon, 6 Apr 2020 13:30:43 +0200 -Subject: [PATCH 1/1] Patch Linux csproj to work with .NET Core 3 - ---- - src/LibVLCSharp/LibVLCSharp.csproj | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj -index f896126..e787981 100644 ---- a/src/LibVLCSharp/LibVLCSharp.csproj -+++ b/src/LibVLCSharp/LibVLCSharp.csproj -@@ -1,4 +1,4 @@ -- -+ - - LibVLCSharp - The official .NET wrapper around LibVLC. --- -2.17.1 - From bece5cd95fefadbcbb5503a50a279a65e577367a Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 23 Nov 2021 16:42:20 +0700 Subject: [PATCH 11/30] update MSBuild.Sdk.Extras --- src/global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/global.json b/src/global.json index 52f2af685..cb184e665 100644 --- a/src/global.json +++ b/src/global.json @@ -1,6 +1,6 @@ { "msbuild-sdks": { - "MSBuild.Sdk.Extras": "3.0.23" + "MSBuild.Sdk.Extras": "3.0.38" }, "sdk": { "version": "6.0.100" From 16238f060e9e97924440dac398e15e5a192f597b Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 23 Nov 2021 16:54:50 +0700 Subject: [PATCH 12/30] try install mobile workloads --- buildsystem/base-template.yml | 8 ++++++++ src/LibVLCSharp/LibVLCSharp.csproj | 3 +-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/buildsystem/base-template.yml b/buildsystem/base-template.yml index 6d670a4ff..ca6b76372 100644 --- a/buildsystem/base-template.yml +++ b/buildsystem/base-template.yml @@ -5,6 +5,14 @@ steps: packageType: sdk version: 6.0.100 +- bash: | + dotnet workload install android + dotnet workload install ios + dotnet workload install macos + dotnet workload install tvos + displayName: 'Install mobile workloads' + condition: ne( variables['Agent.OS'], 'Linux' ) + - task: DotNetCoreCLI@2 displayName: 'Install Cake' inputs: diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index af18add87..d76b89ca1 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -2,8 +2,7 @@ - - $(TargetFrameworks);net6.0;net6-windows;net6-ios;net6-tvos;net6-macos + $(TargetFrameworks);net6.0;net6.0-windows;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos From 6afe9ea98a0e28a1b4d3d72bc0c813891fc75dfd Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 24 Nov 2021 14:15:00 +0700 Subject: [PATCH 13/30] Windows CI: install Java --- buildsystem/windows-build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/buildsystem/windows-build.yml b/buildsystem/windows-build.yml index f9ecc92a3..bc95fd80f 100644 --- a/buildsystem/windows-build.yml +++ b/buildsystem/windows-build.yml @@ -10,6 +10,13 @@ steps: $arguments = "/i `"$msiFile`" /quiet" Start-Process msiexec.exe -ArgumentList $arguments -Wait +- task: JavaToolInstaller@0 + displayName: install JDK 11 + inputs: + versionSpec: '11' + jdkArchitectureOption: 'x64' + jdkSourceOption: 'PreInstalled' + - task: DotNetCoreCLI@2 displayName: 'Build' inputs: From 17540e6ce4ee8a5ea7a9e55b20c5c5b21e0757b0 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 24 Nov 2021 14:15:12 +0700 Subject: [PATCH 14/30] CI: build net6 on Windows only --- buildsystem/build.cake | 1 - buildsystem/windows-build.yml | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/buildsystem/build.cake b/buildsystem/build.cake index 860595a1d..98839b971 100644 --- a/buildsystem/build.cake +++ b/buildsystem/build.cake @@ -67,7 +67,6 @@ Task("BuildNet6") Task("Build") .IsDependentOn("Restore-NuGet-Packages") - .IsDependentOn("BuildNet6") .Does(() => { Build(solutionPath); diff --git a/buildsystem/windows-build.yml b/buildsystem/windows-build.yml index bc95fd80f..15a751e03 100644 --- a/buildsystem/windows-build.yml +++ b/buildsystem/windows-build.yml @@ -24,6 +24,13 @@ steps: custom: 'cake' workingDirectory: buildsystem +- task: DotNetCoreCLI@2 + displayName: 'Build' + inputs: + command: custom + custom: 'cake --target=BuildNet6' + workingDirectory: buildsystem + - task: PublishBuildArtifacts@1 inputs: pathToPublish: 'nugets' From 3a2fc9a20c7a411e638ace1dff13fe2e3a4e28cb Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 24 Nov 2021 09:06:10 +0100 Subject: [PATCH 15/30] simplify tams support --- src/LibVLCSharp/LibVLCSharp.csproj | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index d76b89ca1..ee531e798 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -1,17 +1,4 @@ - - - - - $(TargetFrameworks);net6.0;net6.0-windows;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos - - - - - $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 - $(TargetFrameworks);uap10.0;uap10.0.16299; - - - + LibVLCSharp The official .NET wrapper around LibVLC. @@ -41,8 +28,11 @@ This package also contains the views for the following platforms: If you need Xamarin.Forms support, see LibVLCSharp.Forms. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. - $(TargetFrameworks);netstandard2.1;netstandard2.0;netstandard1.1 - $(TargetFrameworks);net40;net471 + netstandard2.1;netstandard2.0;netstandard1.1;net40;net471 + $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 + $(TargetFrameworks);uap10.0;uap10.0.16299 + + net6.0;net6.0-windows;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos $(TargetsForTfmSpecificBuildOutput);IncludeAWindow LibVLCSharp LibVLCSharp From 6efae451209894d3225ea5a148c0187b5aebaa3e Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 24 Nov 2021 15:17:48 +0700 Subject: [PATCH 16/30] CI: rename net6 job --- buildsystem/windows-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildsystem/windows-build.yml b/buildsystem/windows-build.yml index 15a751e03..2adda6c18 100644 --- a/buildsystem/windows-build.yml +++ b/buildsystem/windows-build.yml @@ -25,7 +25,7 @@ steps: workingDirectory: buildsystem - task: DotNetCoreCLI@2 - displayName: 'Build' + displayName: 'BuildNet6' inputs: command: custom custom: 'cake --target=BuildNet6' From 5779575f815ae9d66e914cc7eeffd1e8e510023e Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 24 Nov 2021 15:51:35 +0700 Subject: [PATCH 17/30] cake refactor --- buildsystem/build.cake | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/buildsystem/build.cake b/buildsystem/build.cake index 98839b971..d3029f731 100644 --- a/buildsystem/build.cake +++ b/buildsystem/build.cake @@ -53,15 +53,7 @@ Task("Restore-NuGet-Packages") Task("BuildNet6") .Does(() => { - var msbuildSettings = new DotNetCoreMSBuildSettings(); - msbuildSettings.WithProperty("Net6", "true"); - - var settings = new DotNetCoreBuildSettings - { - MSBuildSettings = msbuildSettings - }; - - DotNetCoreBuild(libvlcsharpCsproj, settings); + DotNetCoreBuild(libvlcsharpCsproj, GetNetCoreBuildSettings()); }); @@ -69,7 +61,7 @@ Task("Build") .IsDependentOn("Restore-NuGet-Packages") .Does(() => { - Build(solutionPath); + MSBuild(solutionPath, GetBuildSettings()); }); // just for (faster) testing @@ -77,7 +69,7 @@ Task("Build-only-libvlcsharp") .IsDependentOn("Restore-NuGet-Packages") .Does(() => { - Build(libvlcsharpCsproj); + MSBuild(libvlcsharpCsproj, GetBuildSettings()); }); Task("Test") @@ -110,7 +102,7 @@ Task("CIDeploy") }); }); -void Build(string project) +MSBuildSettings GetBuildSettings() { var settings = new MSBuildSettings(); settings.SetConfiguration(configuration) @@ -120,8 +112,27 @@ void Build(string project) { settings.WithProperty("VersionSuffix", suffixVersion); } + return settings; +} + +DotNetCoreBuildSettings GetNetCoreBuildSettings() +{ + var settings = new DotNetCoreMSBuildSettings(); + settings.WithProperty("Net6", "true"); + settings.SetConfiguration(configuration) + .WithProperty("PackageOutputPath", MakeAbsolute(artifactsDir).FullPath); + + if(isCiBuild) + { + settings.WithProperty("VersionSuffix", suffixVersion); + } + + var netCoreSettings = new DotNetCoreBuildSettings + { + MSBuildSettings = settings + }; - MSBuild(project, settings); + return netCoreSettings; } ////////////////////////////////////////////////////////////////////// From b05b41e65839ee92da14b804569677db67cef986 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 24 Nov 2021 15:54:50 +0700 Subject: [PATCH 18/30] CI: fix argument syntax --- buildsystem/windows-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildsystem/windows-build.yml b/buildsystem/windows-build.yml index 2adda6c18..37fafc396 100644 --- a/buildsystem/windows-build.yml +++ b/buildsystem/windows-build.yml @@ -28,7 +28,8 @@ steps: displayName: 'BuildNet6' inputs: command: custom - custom: 'cake --target=BuildNet6' + custom: 'cake' + arguments: '--target=BuildNet6' workingDirectory: buildsystem - task: PublishBuildArtifacts@1 From b5be24bc0ae3c081945f462d2d90df341365cefb Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Mon, 29 Nov 2021 10:22:35 +0700 Subject: [PATCH 19/30] builds new targets on windows only --- src/LibVLCSharp/LibVLCSharp.csproj | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index ee531e798..7ed3ea99b 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -29,10 +29,8 @@ If you need Xamarin.Forms support, see LibVLCSharp.Forms. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. netstandard2.1;netstandard2.0;netstandard1.1;net40;net471 - $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10 - $(TargetFrameworks);uap10.0;uap10.0.16299 - - net6.0;net6.0-windows;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos + $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;xamarinmac2.0 + $(TargetFrameworks);uap10.0;uap10.0.16299;net6.0;net6.0-windows;net6.0-windows10.0.19041;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos $(TargetsForTfmSpecificBuildOutput);IncludeAWindow LibVLCSharp LibVLCSharp From 1cd4da049087d0056ac2ba4845d590d2dc9c346c Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 30 Nov 2021 14:00:28 +0700 Subject: [PATCH 20/30] build only net6 on windows --- buildsystem/build.cake | 34 ++++------------------------------ buildsystem/windows-build.yml | 8 -------- 2 files changed, 4 insertions(+), 38 deletions(-) diff --git a/buildsystem/build.cake b/buildsystem/build.cake index d3029f731..28095dbab 100644 --- a/buildsystem/build.cake +++ b/buildsystem/build.cake @@ -50,18 +50,11 @@ Task("Restore-NuGet-Packages") MoveDirectory("../src/packages", packagesDir); }); -Task("BuildNet6") - .Does(() => -{ - DotNetCoreBuild(libvlcsharpCsproj, GetNetCoreBuildSettings()); -}); - - Task("Build") .IsDependentOn("Restore-NuGet-Packages") .Does(() => { - MSBuild(solutionPath, GetBuildSettings()); + Build(solutionPath); }); // just for (faster) testing @@ -69,7 +62,7 @@ Task("Build-only-libvlcsharp") .IsDependentOn("Restore-NuGet-Packages") .Does(() => { - MSBuild(libvlcsharpCsproj, GetBuildSettings()); + Build(libvlcsharpCsproj); }); Task("Test") @@ -102,7 +95,7 @@ Task("CIDeploy") }); }); -MSBuildSettings GetBuildSettings() +void Build(string project) { var settings = new MSBuildSettings(); settings.SetConfiguration(configuration) @@ -112,27 +105,8 @@ MSBuildSettings GetBuildSettings() { settings.WithProperty("VersionSuffix", suffixVersion); } - return settings; -} - -DotNetCoreBuildSettings GetNetCoreBuildSettings() -{ - var settings = new DotNetCoreMSBuildSettings(); - settings.WithProperty("Net6", "true"); - settings.SetConfiguration(configuration) - .WithProperty("PackageOutputPath", MakeAbsolute(artifactsDir).FullPath); - - if(isCiBuild) - { - settings.WithProperty("VersionSuffix", suffixVersion); - } - - var netCoreSettings = new DotNetCoreBuildSettings - { - MSBuildSettings = settings - }; - return netCoreSettings; + MSBuild(project, settings); } ////////////////////////////////////////////////////////////////////// diff --git a/buildsystem/windows-build.yml b/buildsystem/windows-build.yml index 37fafc396..bc95fd80f 100644 --- a/buildsystem/windows-build.yml +++ b/buildsystem/windows-build.yml @@ -24,14 +24,6 @@ steps: custom: 'cake' workingDirectory: buildsystem -- task: DotNetCoreCLI@2 - displayName: 'BuildNet6' - inputs: - command: custom - custom: 'cake' - arguments: '--target=BuildNet6' - workingDirectory: buildsystem - - task: PublishBuildArtifacts@1 inputs: pathToPublish: 'nugets' From 5020f368d3dd593308c3e21c9f0949e84ae22805 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 30 Nov 2021 14:31:39 +0700 Subject: [PATCH 21/30] update TFMs usings and defines --- src/Directory.Build.props | 8 ++++---- src/LibVLCSharp.Forms/LibVLCSharp.Forms.csproj | 6 +++--- src/LibVLCSharp/LibVLCSharp.csproj | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 32f47580e..c19c55133 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,14 +1,14 @@  - + $(DefineConstants);IOS;APPLE - + $(DefineConstants);MAC;APPLE - + $(DefineConstants);TVOS;APPLE - + $(DefineConstants);ANDROID diff --git a/src/LibVLCSharp.Forms/LibVLCSharp.Forms.csproj b/src/LibVLCSharp.Forms/LibVLCSharp.Forms.csproj index d4a1a7de8..b42823d83 100644 --- a/src/LibVLCSharp.Forms/LibVLCSharp.Forms.csproj +++ b/src/LibVLCSharp.Forms/LibVLCSharp.Forms.csproj @@ -12,7 +12,7 @@ LibVLCSharp.Forms contains the Xamarin.Forms support for LibVLCSharp through cus Xamarin.Forms support for GTK and WPF are in separate packages. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. netstandard2.0 - $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;Xamarin.Mac20 + $(TargetFrameworks);monoandroid81;xamarin.ios10;xamarin.mac20 LibVLCSharp.Forms LibVLCSharp.Forms @@ -27,10 +27,10 @@ Xamarin.Forms support for GTK and WPF are in separate packages. LibVLC needs to - + - + diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index 7ed3ea99b..87fcdac98 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -29,7 +29,7 @@ If you need Xamarin.Forms support, see LibVLCSharp.Forms. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. netstandard2.1;netstandard2.0;netstandard1.1;net40;net471 - $(TargetFrameworks);MonoAndroid81;Xamarin.iOS10;xamarinmac2.0 + $(TargetFrameworks);monoandroid81;xamarin.ios10;xamarin.mac20 $(TargetFrameworks);uap10.0;uap10.0.16299;net6.0;net6.0-windows;net6.0-windows10.0.19041;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos $(TargetsForTfmSpecificBuildOutput);IncludeAWindow LibVLCSharp @@ -44,11 +44,11 @@ LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. - + - + @@ -75,7 +75,7 @@ LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. - + From 3b96a570dfff1ad6c07ddabf85261ab466e4d618 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 30 Nov 2021 14:48:17 +0700 Subject: [PATCH 22/30] cake: force VS2022 --- buildsystem/build.cake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildsystem/build.cake b/buildsystem/build.cake index 28095dbab..c83a69586 100644 --- a/buildsystem/build.cake +++ b/buildsystem/build.cake @@ -106,6 +106,8 @@ void Build(string project) settings.WithProperty("VersionSuffix", suffixVersion); } + settings.ToolVersion = MSBuildToolVersion.VS2022; + MSBuild(project, settings); } From 1e8bdf7910e5838c685f61a53712c5861b7092f8 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 30 Nov 2021 14:48:45 +0700 Subject: [PATCH 23/30] Uno: adapt TFM checks --- src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj b/src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj index 944b73680..c7e353bd2 100644 --- a/src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj +++ b/src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj @@ -3,7 +3,7 @@ LibVLCSharp.Uno Uno integration for LibVLCSharp - Xamarin.iOS10;MonoAndroid81 + xamarin.ios10;monoandroid81 $(TargetFrameworks);uap10.0.16299 true LibVLCSharp.Uno is the integration of LibVLCSharp with the Uno Platform on Windows, iOS and Android. @@ -38,7 +38,7 @@ It also contains a VLC MediaPlayerElement for the Uno Platform (UWP, Android, iO - + @@ -46,12 +46,12 @@ It also contains a VLC MediaPlayerElement for the Uno Platform (UWP, Android, iO - + - + From 53302781a5d1589624fefb0cef77fd42ed8c5ad3 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 30 Nov 2021 15:02:09 +0700 Subject: [PATCH 24/30] fix condition --- src/LibVLCSharp/LibVLCSharp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index 87fcdac98..ea3cd38f8 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -48,7 +48,7 @@ LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. - + From 65d7da87e893f32aac32d2b9ace336d3553d1837 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Tue, 30 Nov 2021 16:34:52 +0700 Subject: [PATCH 25/30] CI: try bump Windows image --- buildsystem/azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildsystem/azure-pipelines.yml b/buildsystem/azure-pipelines.yml index f64fd9ef7..4cd6d4170 100644 --- a/buildsystem/azure-pipelines.yml +++ b/buildsystem/azure-pipelines.yml @@ -26,7 +26,7 @@ stages: - job: Windows pool: - vmImage: 'windows-latest' + vmImage: 'windows-2022' steps: - template: windows-build.yml From 43c4b9fb062bbdc72fd70533dd731686a99bdc11 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 1 Dec 2021 09:36:56 +0700 Subject: [PATCH 26/30] update android binding project --- .../LibVLCSharp.Android.AWindow.csproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/LibVLCSharp.Android.AWindow/LibVLCSharp.Android.AWindow.csproj b/src/LibVLCSharp.Android.AWindow/LibVLCSharp.Android.AWindow.csproj index d00cf99eb..424875aa3 100644 --- a/src/LibVLCSharp.Android.AWindow/LibVLCSharp.Android.AWindow.csproj +++ b/src/LibVLCSharp.Android.AWindow/LibVLCSharp.Android.AWindow.csproj @@ -12,7 +12,8 @@ LibVLCSharp.Android.AWindow LibVLCSharp.Android.AWindow 512 - v9.0 + v10.0 + class-parse true From 6b5652885d03ad37f15cc9724054732e693837a0 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 1 Dec 2021 13:22:14 +0700 Subject: [PATCH 27/30] tfms: remove net6 win10 target --- src/LibVLCSharp/LibVLCSharp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index ea3cd38f8..613a923e9 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -30,7 +30,7 @@ If you need Xamarin.Forms support, see LibVLCSharp.Forms. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. netstandard2.1;netstandard2.0;netstandard1.1;net40;net471 $(TargetFrameworks);monoandroid81;xamarin.ios10;xamarin.mac20 - $(TargetFrameworks);uap10.0;uap10.0.16299;net6.0;net6.0-windows;net6.0-windows10.0.19041;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos + $(TargetFrameworks);uap10.0;uap10.0.16299;net6.0;net6.0-windows;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos $(TargetsForTfmSpecificBuildOutput);IncludeAWindow LibVLCSharp LibVLCSharp From 6ef258aacdebe317b3fc9f49f9b37920efabd870 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 1 Dec 2021 15:23:43 +0700 Subject: [PATCH 28/30] try workaround UAP issues --- .../LibVLCSharp.Uno.Sample.UWP.csproj | 4 ++-- .../Sample.MediaPlayerElement.UWP.csproj | 4 ++-- src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj | 7 +++++-- src/LibVLCSharp/LibVLCSharp.csproj | 3 ++- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/samples/Uno/LibVLCSharp.Uno.Sample.UWP/LibVLCSharp.Uno.Sample.UWP.csproj b/samples/Uno/LibVLCSharp.Uno.Sample.UWP/LibVLCSharp.Uno.Sample.UWP.csproj index 2d9e30676..3175031d6 100644 --- a/samples/Uno/LibVLCSharp.Uno.Sample.UWP/LibVLCSharp.Uno.Sample.UWP.csproj +++ b/samples/Uno/LibVLCSharp.Uno.Sample.UWP/LibVLCSharp.Uno.Sample.UWP.csproj @@ -24,8 +24,8 @@ LibVLCSharp.Uno.Sample en-US UAP - 10.0.16299.0 - 10.0.16299.0 + 10.0.18362.0 + 10.0.18362.0 14 512 {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} diff --git a/samples/Uno/Sample.MediaPlayerElement/Sample.MediaPlayerElement.UWP/Sample.MediaPlayerElement.UWP.csproj b/samples/Uno/Sample.MediaPlayerElement/Sample.MediaPlayerElement.UWP/Sample.MediaPlayerElement.UWP.csproj index 88bc92a84..17c37aaf1 100644 --- a/samples/Uno/Sample.MediaPlayerElement/Sample.MediaPlayerElement.UWP/Sample.MediaPlayerElement.UWP.csproj +++ b/samples/Uno/Sample.MediaPlayerElement/Sample.MediaPlayerElement.UWP/Sample.MediaPlayerElement.UWP.csproj @@ -24,8 +24,8 @@ Sample.MediaPlayerElement en-US UAP - 10.0.16299.0 - 10.0.16299.0 + 10.0.18362.0 + 10.0.18362.0 14 512 {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} diff --git a/src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj b/src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj index c7e353bd2..f2ec913a4 100644 --- a/src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj +++ b/src/LibVLCSharp.Uno/LibVLCSharp.Uno.csproj @@ -4,7 +4,7 @@ LibVLCSharp.Uno Uno integration for LibVLCSharp xamarin.ios10;monoandroid81 - $(TargetFrameworks);uap10.0.16299 + $(TargetFrameworks);uap10.0.18362 true LibVLCSharp.Uno is the integration of LibVLCSharp with the Uno Platform on Windows, iOS and Android. @@ -12,7 +12,10 @@ It also contains a VLC MediaPlayerElement for the Uno Platform (UWP, Android, iO $(PackageTags);uno LibVLCSharp.Uno LibVLCSharp.Uno - + + + 10.0.19041.0 + diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index 613a923e9..2dcc91517 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -30,7 +30,7 @@ If you need Xamarin.Forms support, see LibVLCSharp.Forms. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. netstandard2.1;netstandard2.0;netstandard1.1;net40;net471 $(TargetFrameworks);monoandroid81;xamarin.ios10;xamarin.mac20 - $(TargetFrameworks);uap10.0;uap10.0.16299;net6.0;net6.0-windows;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos + $(TargetFrameworks);uap10.0.18362;net6.0;net6.0-windows;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos $(TargetsForTfmSpecificBuildOutput);IncludeAWindow LibVLCSharp LibVLCSharp @@ -39,6 +39,7 @@ LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. true + 10.0.19041.0 From c61da4132308b34ab7afd66392a14aef39ea2be1 Mon Sep 17 00:00:00 2001 From: Martin Finkel Date: Wed, 1 Dec 2021 17:32:51 +0700 Subject: [PATCH 29/30] cake: ensure nuget is available --- buildsystem/build.cake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildsystem/build.cake b/buildsystem/build.cake index c83a69586..a36a084b9 100644 --- a/buildsystem/build.cake +++ b/buildsystem/build.cake @@ -1,3 +1,5 @@ +#tool nuget:?package=NuGet.CommandLine&version=5.11.0 + ////////////////////////////////////////////////////////////////////// // ARGUMENTS ////////////////////////////////////////////////////////////////////// From cbbcea8e014bf537f90e6e66e8a6209360c0be16 Mon Sep 17 00:00:00 2001 From: Tim Miller Date: Fri, 3 Dec 2021 20:22:13 -0500 Subject: [PATCH 30/30] Add MacOS Catalyst --- src/LibVLCSharp/LibVLCSharp.csproj | 2 +- src/LibVLCSharp/Platforms/Apple/VideoView.cs | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/LibVLCSharp/LibVLCSharp.csproj b/src/LibVLCSharp/LibVLCSharp.csproj index 2dcc91517..1f4e1a8e3 100644 --- a/src/LibVLCSharp/LibVLCSharp.csproj +++ b/src/LibVLCSharp/LibVLCSharp.csproj @@ -30,7 +30,7 @@ If you need Xamarin.Forms support, see LibVLCSharp.Forms. LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages. netstandard2.1;netstandard2.0;netstandard1.1;net40;net471 $(TargetFrameworks);monoandroid81;xamarin.ios10;xamarin.mac20 - $(TargetFrameworks);uap10.0.18362;net6.0;net6.0-windows;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos + $(TargetFrameworks);uap10.0.18362;net6.0;net6.0-windows;net6.0-ios;net6.0-android;net6.0-tvos;net6.0-macos;net6.0-maccatalyst $(TargetsForTfmSpecificBuildOutput);IncludeAWindow LibVLCSharp LibVLCSharp diff --git a/src/LibVLCSharp/Platforms/Apple/VideoView.cs b/src/LibVLCSharp/Platforms/Apple/VideoView.cs index 1597c51aa..28261303f 100644 --- a/src/LibVLCSharp/Platforms/Apple/VideoView.cs +++ b/src/LibVLCSharp/Platforms/Apple/VideoView.cs @@ -2,26 +2,26 @@ using LibVLCSharp.Shared; -#if IOS || TVOS +#if IOS || TVOS || __MACCATALYST__ using UIKit; -#elif MAC +#elif __MACOS__ using AppKit; #endif -#if IOS +#if IOS || __MACCATALYST__ namespace LibVLCSharp.Platforms.iOS #elif TVOS namespace LibVLCSharp.Platforms.tvOS -#elif MAC +#elif __MACOS__ namespace LibVLCSharp.Platforms.Mac #endif { /// /// VideoView implementation for the Apple platform /// -#if IOS || TVOS - public class VideoView : UIView, IVideoView -#elif MAC +#if IOS || TVOS || __MACCATALYST__ +public class VideoView : UIView, IVideoView +#elif __MACOS__ public class VideoView : NSView, IVideoView #endif {