Fix managed iOS native media linking
.NET port / test (macos-latest) (push) Canceled after 0s
.NET port / test (ubuntu-24.04) (push) Canceled after 0s
.NET port / test (windows-latest) (push) Canceled after 0s
.NET port / apple-client (push) Canceled after 0s

This commit is contained in:
2026-09-20 03:04:12 +02:00
parent 57a63cc1cd
commit 3ee0df11a9
7 changed files with 45 additions and 11 deletions
@@ -98,6 +98,11 @@ internal sealed class AppModel
Status = restoring ? "Reconnecting…" : "Connecting…"; Notify();
lifetime?.Cancel(); lifetime?.Dispose(); lifetime = new();
VoiceCatClient next = new("VoiceCat-iOS", "0.0.1", storage.TofuPath);
next.ConnectionStateChanged += state =>
{
if (state == ClientConnectionState.Disconnected && next.ConnectionFailure is { } failure)
Console.Error.WriteLine($"VoiceCat control connection failed: {failure}");
};
client = next;
try
{
@@ -118,8 +123,10 @@ internal sealed class AppModel
}
catch (Exception exception)
{
IsConnecting = false; Status = exception.Message; Notify();
System.Diagnostics.Debug.WriteLine($"Connection failed: {exception}");
IsConnecting = false; Status = exception.Message;
await next.DisposeAsync(); if (ReferenceEquals(client, next)) client = null;
Notify();
if (restoring && !explicitDisconnect) ScheduleReconnect();
else throw;
}
@@ -32,6 +32,10 @@
<Kind>Static</Kind>
<ForceLoad>true</ForceLoad>
</NativeReference>
<LinkerArgument Include="-Wl,-force_load,$(VoiceCatNativeMediaPath)" Condition="Exists('$(VoiceCatNativeMediaPath)')" />
<ReferenceNativeSymbol Include="vcm_opus_version;vcm_opus_error;vcm_encoder_create;vcm_encoder_destroy;vcm_encoder_set;vcm_encoder_get_dred;vcm_encode;vcm_decoder_create;vcm_decoder_destroy;vcm_decode;vcm_dred_decoder_create;vcm_dred_decoder_destroy;vcm_dred_create;vcm_dred_destroy;vcm_dred_parse;vcm_dred_decode;vcm_rnnoise_create;vcm_rnnoise_destroy;vcm_rnnoise_process">
<SymbolType>Function</SymbolType>
</ReferenceNativeSymbol>
<NativeReference Include="$(VoiceCatIosCaptureOutput)/libvoicecat_ios_capture.a">
<Kind>Static</Kind>
<ForceLoad>true</ForceLoad>