Commit ac1f3951 authored by Shawn Black's avatar Shawn Black Committed by Martin Finkel

Support for AvaloniaUI

parent 61598030
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:LibVLCSharp.Avalonia.Sample"
x:Class="LibVLCSharp.Avalonia.Sample.App" Name="LibVLCSharp.Avalonia.Sample">
<Application.DataTemplates>
<local:ViewLocator/>
</Application.DataTemplates>
<Application.Styles>
<StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseDark.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Fluent/Accents/FluentDark.xaml"/>
</Application.Styles>
</Application>
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Themes = Avalonia.Themes;
using LibVLCSharp.Avalonia.Sample.ViewModels;
using LibVLCSharp.Avalonia.Sample.Views;
using LibVLCSharp.Shared;
namespace LibVLCSharp.Avalonia.Sample
{
public class App : Application
{
public override void Initialize()
{
Core.Initialize();
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
desktop.MainWindow = new MainWindow
{
DataContext = new MainWindowViewModel()
};
desktop.Exit += OnExit;
}
var theme = new Themes.Default.DefaultTheme();
theme.TryGetResource("Button", out _);
var theme1 = new Themes.Fluent.FluentTheme();
theme1.TryGetResource("Button", out _);
base.OnFrameworkInitializationCompleted();
}
void OnExit(object sender, ControlledApplicationLifetimeExitEventArgs e)
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
var vm = (MainWindowViewModel)desktop.MainWindow?.DataContext;
if (vm != null)
vm.Dispose();
}
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<Compile Update="**\*.xaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<AvaloniaResource Include="**\*.xaml">
<SubType>Designer</SubType>
</AvaloniaResource>
<AvaloniaResource Include="Assets\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia.Desktop" Version="0.10.0-preview5" />
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.0-preview5" />
</ItemGroup>
<ItemGroup>
<PackageReference Condition="$([MSBuild]::IsOsPlatform('Windows'))" Include="VideoLAN.LibVLC.Windows" Version="3.0.11" />
<PackageReference Condition="$([MSBuild]::IsOsPlatform('OSX'))" Include="VideoLAN.LibVLC.Mac" Version="3.1.3.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\LibVLCSharp.Avalonia\LibVLCSharp.Avalonia.csproj" />
</ItemGroup>
</Project>
using Avalonia;
using Avalonia.ReactiveUI;
namespace LibVLCSharp.Avalonia.Sample
{
class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
public static void Main(string[] args) => BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.With(new SkiaOptions{ MaxGpuResourceSizeBytes = 8096000})
.LogToDebug()
.UseSkia()
.UseReactiveUI();
}
}
# LibVLCSharp.Avalonia.Sample
## Windows
The Windows project includes the appropriate NuGet package for the native Windows VLC runtime.
## MacOS
The MacOS project includes the approprate NuGet package for the native MacOS VLC runtime.
## Linux
The Linux project does not include any additional native NuGet packages.
To run on linux, please refer to the [Linux guide](../../docs/linux-setup.md).
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using LibVLCSharp.Avalonia.Sample.ViewModels;
namespace LibVLCSharp.Avalonia.Sample
{
public class ViewLocator : IDataTemplate
{
public bool SupportsRecycling => false;
public IControl Build(object data)
{
var name = data.GetType().FullName.Replace("ViewModel", "View");
var type = Type.GetType(name);
if (type != null)
{
return (Control)Activator.CreateInstance(type);
}
else
{
return new TextBlock { Text = "Not Found: " + name };
}
}
public bool Match(object data)
{
return data is ViewModelBase;
}
}
}
using System;
using LibVLCSharp.Shared;
namespace LibVLCSharp.Avalonia.Sample.ViewModels
{
public class MainWindowViewModel : ViewModelBase, IDisposable
{
private readonly LibVLC _libVlc = new LibVLC();
public MainWindowViewModel()
{
MediaPlayer = new MediaPlayer(_libVlc);
}
public void Play()
{
using var media = new Media(_libVlc, new Uri("http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"));
MediaPlayer.Play(media);
}
public MediaPlayer MediaPlayer { get; }
public void Dispose()
{
MediaPlayer?.Dispose();
_libVlc?.Dispose();
}
}
}
using ReactiveUI;
namespace LibVLCSharp.Avalonia.Sample.ViewModels
{
public class ViewModelBase : ReactiveObject
{
}
}
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:LibVLCSharp.Avalonia.Sample.ViewModels;assembly=LibVLCSharp.Avalonia.Sample"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:v="clr-namespace:LibVLCSharp.Avalonia.Sample.Views"
xmlns:vlc="clr-namespace:LibVLCSharp.Avalonia;assembly=LibVLCSharp.Avalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="LibVLCSharp.Avalonia.Sample.Views.MainWindow"
Icon="/Assets/avalonia-logo.ico"
Title="LibVLCSharp.Avalonia.Sample"
Opened="OnOpened">
<Design.DataContext>
<vm:MainWindowViewModel />
</Design.DataContext>
<Panel>
<vlc:VideoView MediaPlayer="{Binding MediaPlayer}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</Panel>
</Window>
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using LibVLCSharp.Avalonia.Sample.ViewModels;
using System;
namespace LibVLCSharp.Avalonia.Sample.Views
{
public class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
private void OnOpened(object sender, EventArgs e)
{
var vm = DataContext as MainWindowViewModel;
vm?.Play();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="AvaloniaCI" value="https://www.myget.org/F/avalonia-ci/api/v2" />
</packageSources>
</configuration>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Title>LibVLCSharp.Avalonia</Title>
<Summary>Avalonia integration for LibVLCSharp</Summary>
<Description>LibVLCSharp is a cross-platform audio and video API for .NET platforms based on VideoLAN's LibVLC Library. It provides a comprehensive multimedia API that can be used across mobile, server and desktop to render video and output audio. Mono, .NET Framework and .NET Core runtimes are supported.
LibVLCSharp.Avalonia contains the integration with Avalonia.
This package contains the views that allows to display a video played with LibVLCSharp
in a Avalonia app.
This package depends on LibVLCSharp as well as Avalonia.
LibVLC needs to be installed separately, see VideoLAN.LibVLC.* packages.
</Description>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>LibVLCSharp.Avalonia</RootNamespace>
<LangVersion>8.0</LangVersion>
<PackageId>LibVLCSharp.Avalonia</PackageId>
<Authors>VideoLAN</Authors>
<Owners>VideoLAN</Owners>
<GeneratePackageOnBuild Condition=" '$(Configuration)' == 'Release' ">true</GeneratePackageOnBuild>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<UseFullSemVerForNuGet>false</UseFullSemVerForNuGet>
<PackageLicenseExpression>LGPL-2.1-or-later</PackageLicenseExpression>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://code.videolan.org/videolan/LibVLCSharp</RepositoryUrl>
<PackageIcon>icon.png</PackageIcon>
<Nullable>enable</Nullable>
<PackageReleaseNotes>https://code.videolan.org/videolan/LibVLCSharp/blob/master/NEWS</PackageReleaseNotes>
<PackageTags>libvlc;vlc;videolan;video;audio;player;media;mediaplayer;avalonia;linux;macos;windows;cross-platform</PackageTags>
<VersionSuffix>alpha01</VersionSuffix>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="0.10.0-preview5" />
<ProjectReference Include="..\LibVLCSharp\LibVLCSharp.csproj" />
<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
<None Include="..\assets\icon.png">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
</Project>
# LibVLCSharp.Avalonia
The official [Avalonia](https://github.com/AvaloniaUI/Avalonia) views for [LibVLCSharp](../LibVLCSharp/README.md).
This package contains the views that allows to display a video played with [LibVLCSharp](../LibVLCSharp/README.md)
in an Avalonia app.
This package depends on [LibVLCSharp](../LibVLCSharp/README.md) as well as [Avalonia](https://github.com/AvaloniaUI/Avalonia).
Supported frameworks:
- netstandard2.0
Supported platforms:
- Windows
- MacOS
- Linux
using System;
using System.Runtime.InteropServices;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Platform;
using LibVLCSharp.Shared;
namespace LibVLCSharp.Avalonia
{
/// <summary>
/// Avalonia VideoView for Windows, Linux and Mac.
/// </summary>
public class VideoView : NativeControlHost
{
private IPlatformHandle? _platformHandle = null;
private MediaPlayer? _mediaPlayer = null;
/// <summary>
/// MediaPlayer Data Bound property
/// </summary>
/// <summary>
/// Defines the <see cref="MediaPlayer"/> property.
/// </summary>
public static readonly DirectProperty<VideoView, MediaPlayer?> MediaPlayerProperty =
AvaloniaProperty.RegisterDirect<VideoView, MediaPlayer?>(
nameof(MediaPlayer),
o => o.MediaPlayer,
(o, v) => o.MediaPlayer = v,
defaultBindingMode: BindingMode.TwoWay);
/// <summary>
/// Gets or sets the MediaPlayer that will be displayed.
/// </summary>
public MediaPlayer? MediaPlayer
{
get { return _mediaPlayer; }
set
{
if (ReferenceEquals(_mediaPlayer, value))
{
return;
}
Detach();
_mediaPlayer = value;
Attach();
}
}
private void Attach()
{
if(_mediaPlayer == null || _platformHandle == null || !IsInitialized)
return;
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
_mediaPlayer.Hwnd = _platformHandle.Handle;
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
_mediaPlayer.XWindow = (uint)_platformHandle.Handle;
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
_mediaPlayer.NsObject = _platformHandle.Handle;
}
}
private void Detach()
{
if (_mediaPlayer == null)
return;
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
_mediaPlayer.Hwnd = IntPtr.Zero;
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
_mediaPlayer.XWindow = 0;
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
_mediaPlayer.NsObject = IntPtr.Zero;
}
}
/// <inheritdoc />
protected override IPlatformHandle CreateNativeControlCore(IPlatformHandle parent)
{
_platformHandle = base.CreateNativeControlCore(parent);
if (_mediaPlayer == null)
return _platformHandle;
Attach();
return _platformHandle;
}
/// <inheritdoc />
protected override void DestroyNativeControlCore(IPlatformHandle control)
{
Detach();
base.DestroyNativeControlCore(control);
if (_platformHandle != null)
{
_platformHandle = null;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="AvaloniaCI" value="https://www.myget.org/F/avalonia-ci/api/v2" />
</packageSources>
</configuration>
......@@ -43,6 +43,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.Forms.Platforms
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.GTK", "LibVLCSharp.GTK\LibVLCSharp.GTK.csproj", "{9012B90D-A997-4E1B-B541-C824E4E6540F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.Avalonia", "LibVLCSharp.Avalonia\LibVLCSharp.Avalonia.csproj", "{59184DC2-9F32-4CC3-852F-75348D14F5DA}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MediaElement", "MediaElement", "{5E512888-485B-438A-AA4A-1B1EF50FD49F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.Forms.MediaElement.Sample", "..\samples\Forms\LibVLCSharp.Forms.MediaElement\LibVLCSharp.Forms.Sample.MediaElement\LibVLCSharp.Forms.Sample.MediaElement.csproj", "{537A70A3-6565-41E2-8C65-5198E0F4EB45}"
......@@ -65,6 +67,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Sample.MediaPlayerElement.S
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample.MediaPlayerElement.iOS", "..\samples\Uno\Sample.MediaPlayerElement\Sample.MediaPlayerElement.iOS\Sample.MediaPlayerElement.iOS.csproj", "{EF68D2A7-067D-427C-9690-5E0F0DD06F2B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibVLCSharp.Avalonia.Sample", "..\samples\LibVLCSharp.Avalonia.Sample\LibVLCSharp.Avalonia.Sample.csproj", "{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
..\samples\Uno\LibVLCSharp.Uno.Sample.Shared\LibVLCSharp.Uno.Sample.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
......@@ -1261,11 +1265,125 @@ Global
{EF68D2A7-067D-427C-9690-5E0F0DD06F2B}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
{EF68D2A7-067D-427C-9690-5E0F0DD06F2B}.Release|x64.ActiveCfg = Release|iPhone
{EF68D2A7-067D-427C-9690-5E0F0DD06F2B}.Release|x86.ActiveCfg = Release|iPhone
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|ARM64.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|ARM64.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|ARM.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|ARM.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|ARM64.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|ARM64.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|iPhone.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|x64.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|x64.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|x86.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|x86.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|ARM.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|ARM.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|ARM64.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|iPhone.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|x64.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|x64.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|x86.ActiveCfg = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Debug|x86.Build.0 = Debug|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|Any CPU.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|ARM.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|ARM.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|ARM64.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|ARM64.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|iPhone.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|iPhone.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|x64.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|x64.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|x86.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Release|x86.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|x64.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|Any CPU.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|ARM.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|ARM64.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|iPhone.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|x64.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|x64.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|x86.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.AppStore|x86.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|ARM.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|ARM.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|ARM64.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|iPhone.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|x64.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|x64.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|x86.ActiveCfg = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Debug|x86.Build.0 = Debug|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|Any CPU.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|ARM.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|ARM.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|ARM64.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|ARM64.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|iPhone.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|iPhone.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|x64.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|x64.Build.0 = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|x86.ActiveCfg = Release|Any CPU
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2} = {799A84A2-2161-4676-878B-5610E3586137}
{00419085-4455-45D4-84A0-0A80D6174D25} = {799A84A2-2161-4676-878B-5610E3586137}
{FC68D8B7-758E-4164-945B-9F922FA883F6} = {799A84A2-2161-4676-878B-5610E3586137}
{A7F1B21F-CA82-4FC7-871F-2BE5B9D6DA70} = {FC68D8B7-758E-4164-945B-9F922FA883F6}
......
......@@ -53,6 +53,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.GTK.Sample", ".
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.GTK", "LibVLCSharp.GTK\LibVLCSharp.GTK.csproj", "{9012B90D-A997-4E1B-B541-C824E4E6540F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.Avalonia", "LibVLCSharp.Avalonia\LibVLCSharp.Avalonia.csproj", "{59184DC2-9F32-4CC3-852F-75348D14F5DA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.Forms.Sample.GTK", "..\samples\Forms\LibVLCSharp.Forms.Sample.GTK\LibVLCSharp.Forms.Sample.GTK.csproj", "{FBBF3364-2581-48FD-A6F8-68319640E785}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.WPF", "LibVLCSharp.WPF\LibVLCSharp.WPF.csproj", "{7A63D691-F205-4805-A118-D0CD7EF4268C}"
......@@ -91,6 +93,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample.MediaPlayerElement.i
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample.MediaPlayerElement.UWP", "..\samples\Uno\Sample.MediaPlayerElement\Sample.MediaPlayerElement.UWP\Sample.MediaPlayerElement.UWP.csproj", "{3CCE13EB-C3E6-491A-BEDD-7B3EDDB12549}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibVLCSharp.Avalonia.Sample", "..\samples\LibVLCSharp.Avalonia.Sample\LibVLCSharp.Avalonia.Sample.csproj", "{4B5837B1-CEA4-47F8-AB7A-1CF8704654A2}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
..\samples\Uno\LibVLCSharp.Uno.Sample.Shared\LibVLCSharp.Uno.Sample.Shared.projitems*{328e54f9-528f-4b00-a44c-aad35376d808}*SharedItemsImports = 4
......@@ -1265,6 +1269,62 @@ Global
{9012B90D-A997-4E1B-B541-C824E4E6540F}.Release|x64.Build.0 = Release|Any CPU
{9012B90D-A997-4E1B-B541-C824E4E6540F}.Release|x86.ActiveCfg = Release|Any CPU
{9012B90D-A997-4E1B-B541-C824E4E6540F}.Release|x86.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|ARM64.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|ARM64.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|x64.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|Any CPU.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|ARM.ActiveCfg = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|ARM.Build.0 = Release|Any CPU
{59184DC2-9F32-4CC3-852F-75348D14F5DA}.AppStore|ARM64.ActiveCfg = Release|Any CPU