From b40b2379d4be663ca2cc8d868a7c07e0e0cc4c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Bl=C3=A1zquez?= Date: Thu, 15 Aug 2024 17:33:33 +0200 Subject: [PATCH] WIP --- Console/Utils.cs | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/Console/Utils.cs b/Console/Utils.cs index c56852e..c86c446 100644 --- a/Console/Utils.cs +++ b/Console/Utils.cs @@ -1,5 +1,6 @@ using System.Reflection; using DbUp; +using NativeLibraryManager; using PortAudioSharp; using Terminal.Gui; @@ -11,7 +12,47 @@ public static class Utils public static void ConfigurePlatformDependencies() { - PortAudio.LoadNativeLibrary(); + ResourceAccessor resourceAccessor = new(Assembly.GetExecutingAssembly()); + + // Define library items for different platforms and architectures + var libraries = new LibraryManager( + // Linux + new LibraryItem( + Platform.Linux, + Bitness.x64, + new LibraryFile("libportaudio.so", resourceAccessor.Binary("libportaudio.so")) + ), + new LibraryItem( + Platform.Linux, + Bitness.x64, + new LibraryFile("libportaudio.a", resourceAccessor.Binary("libportaudio.a")) + ), + new LibraryItem( + Platform.Linux, + Bitness.x32, + new LibraryFile("libportaudio.so", resourceAccessor.Binary("libportaudio.so")) + ), + // macOS + new LibraryItem( + Platform.MacOs, + Bitness.x64, + new LibraryFile("libportaudio.dylib", resourceAccessor.Binary("libportaudio.dylib")) + ), + // Windows + new LibraryItem( + Platform.Windows, + Bitness.x64, + new LibraryFile("portaudio.dll", resourceAccessor.Binary("portaudio.dll")) + ), + new LibraryItem( + Platform.Windows, + Bitness.x32, + new LibraryFile("portaudio.dll", resourceAccessor.Binary("portaudio.dll")) + ) + ); + + // Load the appropriate library + libraries.LoadNativeLibrary(); PortAudio.Initialize(); }