diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 264206b2..8b892855 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -21,16 +21,21 @@ on: jobs: build: - name: "Windows-${{ matrix.release_name }}-x64" + name: "Windows-${{ matrix.release_name }}-${{ matrix.architecture }} (${{ matrix.ui }})" runs-on: windows-latest strategy: matrix: ui: [Avalonia] + architecture: [x64] release_name: [chardonnay] include: - - ui: WinForms + - architecture: x64 + ui: WinForms release_name: classic prefix: Classic- + - architecture: arm64 + ui: Avalonia + release_name: chardonnay steps: - uses: actions/checkout@v6 @@ -48,7 +53,7 @@ jobs: working-directory: ./Source run: | $PUBLISH_ARGS=@( - "--runtime", "win-x64", + "--runtime", "win-${{ matrix.architecture }}", "--configuration", "Release", "--output", "../bin", "-p:PublishProtocol=FileSystem", @@ -70,7 +75,7 @@ jobs: "WindowsConfigApp.deps.json") foreach ($file in $delfiles){ if (test-path $file){ Remove-Item $file } } - $artifact="${{ matrix.prefix }}Libation.${{ inputs.libation-version }}-windows-${{ matrix.release_name }}-x64.zip" + $artifact="${{ matrix.prefix }}Libation.${{ inputs.libation-version }}-windows-${{ matrix.release_name }}-${{ matrix.architecture }}.zip" "artifact=$artifact" >> $env:GITHUB_OUTPUT Compress-Archive -Path * -DestinationPath "$artifact" diff --git a/Source/AaxDecrypter/AaxDecrypter.csproj b/Source/AaxDecrypter/AaxDecrypter.csproj index f5115a23..2de4aaf8 100644 --- a/Source/AaxDecrypter/AaxDecrypter.csproj +++ b/Source/AaxDecrypter/AaxDecrypter.csproj @@ -13,7 +13,7 @@ - + diff --git a/Source/FileLiberator/DownloadOptions.Factory.cs b/Source/FileLiberator/DownloadOptions.Factory.cs index 4c1a8eb4..4a78f64c 100644 --- a/Source/FileLiberator/DownloadOptions.Factory.cs +++ b/Source/FileLiberator/DownloadOptions.Factory.cs @@ -125,7 +125,7 @@ public partial class DownloadOptions //try to request a widevine content license using the user's audio settings var aacCodecChoice = config.Request_xHE_AAC ? Codecs.xHE_AAC : Codecs.AAC_LC; //Always use the ec+3 codec if converting to mp3 - var spatialCodecChoice = config.SpatialAudioCodec is Configuration.SpatialCodec.AC_4 && !config.DecryptToLossy ? Codecs.AC_4 : Codecs.EC_3; + var spatialCodecChoice = config.SpatialAudioCodec is Configuration.SpatialCodec.AC_4 ? Codecs.AC_4 : Codecs.EC_3; var contentLic = await api.GetDownloadLicenseAsync( diff --git a/Source/FileLiberator/DownloadOptions.cs b/Source/FileLiberator/DownloadOptions.cs index 578c8ff5..e809237b 100644 --- a/Source/FileLiberator/DownloadOptions.cs +++ b/Source/FileLiberator/DownloadOptions.cs @@ -74,7 +74,7 @@ namespace FileLiberator //If DrmType is not Adrm or Widevine, the delivered file is an unencrypted mp3. OutputFormat = licInfo.DrmType is not AudibleApi.Common.DrmType.Adrm and not AudibleApi.Common.DrmType.Widevine || - (config.AllowLibationFixup && config.DecryptToLossy && licInfo.ContentMetadata.ContentReference.Codec != AudibleApi.Codecs.AC_4) + (config.AllowLibationFixup && config.DecryptToLossy) ? OutputFormat.Mp3 : OutputFormat.M4b; diff --git a/Source/LibationAvalonia/Controls/Settings/Audio.axaml b/Source/LibationAvalonia/Controls/Settings/Audio.axaml index 333d7845..6b0a1544 100644 --- a/Source/LibationAvalonia/Controls/Settings/Audio.axaml +++ b/Source/LibationAvalonia/Controls/Settings/Audio.axaml @@ -92,7 +92,6 @@ Margin="5,0,0,0" Grid.Column="1" VerticalAlignment="Center" - SelectionChanged="SpatialCodec_SelectionChanged" ItemsSource="{CompiledBinding SpatialAudioCodecs}" SelectedItem="{CompiledBinding SpatialAudioCodec}"/> diff --git a/Source/LibationAvalonia/Controls/Settings/Audio.axaml.cs b/Source/LibationAvalonia/Controls/Settings/Audio.axaml.cs index d87e9401..1aad2411 100644 --- a/Source/LibationAvalonia/Controls/Settings/Audio.axaml.cs +++ b/Source/LibationAvalonia/Controls/Settings/Audio.axaml.cs @@ -23,15 +23,6 @@ namespace LibationAvalonia.Controls.Settings } } - private void SpatialCodec_SelectionChanged(object sender, SelectionChangedEventArgs e) - { - if (_viewModel.SpatialAudioCodec.Value is Configuration.SpatialCodec.AC_4 && _viewModel.DecryptToLossy) - { - _viewModel.SpatialAudioCodec = _viewModel.SpatialAudioCodecs[0]; - _viewModel.RaisePropertyChanged(nameof(AudioSettingsVM.SpatialAudioCodec)); - } - } - private async void UseWidevine_IsCheckedChanged(object sender, Avalonia.Interactivity.RoutedEventArgs e) { if (sender is CheckBox cbox && cbox.IsChecked is true) diff --git a/Source/LibationAvalonia/ViewModels/Settings/AudioSettingsVM.cs b/Source/LibationAvalonia/ViewModels/Settings/AudioSettingsVM.cs index ac7b3ca0..329bb7ad 100644 --- a/Source/LibationAvalonia/ViewModels/Settings/AudioSettingsVM.cs +++ b/Source/LibationAvalonia/ViewModels/Settings/AudioSettingsVM.cs @@ -145,18 +145,7 @@ namespace LibationAvalonia.ViewModels.Settings public string StripAudibleBrandAudioTip => Configuration.GetHelpText(nameof(StripAudibleBrandAudio)); public bool StripUnabridged { get; set; } public string StripUnabridgedTip => Configuration.GetHelpText(nameof(StripUnabridged)); - public bool DecryptToLossy { - get => field; - set - { - this.RaiseAndSetIfChanged(ref field, value); - if (DecryptToLossy && SpatialAudioCodec.Value is Configuration.SpatialCodec.AC_4) - { - SpatialAudioCodec = SpatialAudioCodecs[0]; - this.RaisePropertyChanged(nameof(SpatialAudioCodec)); - } - } - } + public bool DecryptToLossy { get => field; set => this.RaiseAndSetIfChanged(ref field, value); } public string DecryptToLossyTip => Configuration.GetHelpText(nameof(DecryptToLossy)); public bool MoveMoovToBeginning { get; set; } diff --git a/Source/LibationFileManager/Configuration.HelpText.cs b/Source/LibationFileManager/Configuration.HelpText.cs index 5f41c7dc..50d5caa2 100644 --- a/Source/LibationFileManager/Configuration.HelpText.cs +++ b/Source/LibationFileManager/Configuration.HelpText.cs @@ -86,8 +86,6 @@ namespace LibationFileManager The Dolby Digital Plus (E-AC-3) codec is more widely supported than the AC-4 codec, but E-AC-3 files are much larger than AC-4 files. - - AC-4 cannot be converted to MP3. """ }, {nameof(UseWidevine), """ Some audiobooks are only delivered in the highest diff --git a/Source/LibationWinForms/Dialogs/SettingsDialog.AudioSettings.cs b/Source/LibationWinForms/Dialogs/SettingsDialog.AudioSettings.cs index c9014ce6..df4cd789 100644 --- a/Source/LibationWinForms/Dialogs/SettingsDialog.AudioSettings.cs +++ b/Source/LibationWinForms/Dialogs/SettingsDialog.AudioSettings.cs @@ -178,12 +178,6 @@ namespace LibationWinForms.Dialogs moveMoovAtomCbox.Enabled = convertLosslessRb.Checked; lameOptionsGb.Enabled = !convertLosslessRb.Checked; - if (convertLossyRb.Checked && requestSpatialCbox.Checked) - { - // Only E-AC-3 can be converted to mp3 - spatialAudioCodecCb.SelectedIndex = 0; - } - lameTargetRb_CheckedChanged(sender, e); LameMatchSourceBRCbox_CheckedChanged(sender, e); } @@ -205,14 +199,6 @@ namespace LibationWinForms.Dialogs } } - private void spatialAudioCodecCb_SelectedIndexChanged(object sender, EventArgs e) - { - if (spatialAudioCodecCb.SelectedIndex == 1 && convertLossyRb.Checked) - { - // Only E-AC-3 can be converted to mp3 - spatialAudioCodecCb.SelectedIndex = 0; - } - } private void requestSpatialCbox_CheckedChanged(object sender, EventArgs e) { spatialAudioCodecCb.Enabled = requestSpatialCbox.Checked && useWidevineCbox.Checked; diff --git a/Source/LibationWinForms/Dialogs/SettingsDialog.Designer.cs b/Source/LibationWinForms/Dialogs/SettingsDialog.Designer.cs index 069ce7c9..446cdfb9 100644 --- a/Source/LibationWinForms/Dialogs/SettingsDialog.Designer.cs +++ b/Source/LibationWinForms/Dialogs/SettingsDialog.Designer.cs @@ -897,7 +897,6 @@ spatialAudioCodecCb.Name = "spatialAudioCodecCb"; spatialAudioCodecCb.Size = new System.Drawing.Size(173, 23); spatialAudioCodecCb.TabIndex = 5; - spatialAudioCodecCb.SelectedIndexChanged += spatialAudioCodecCb_SelectedIndexChanged; // // moveMoovAtomCbox //