From 2402b019808edb79af125561ad6c5e54a958f413 Mon Sep 17 00:00:00 2001 From: inotia00 Date: Tue, 20 Jun 2023 17:27:19 +0900 Subject: [PATCH] feat(youtube): add `force-opus-codec` patch --- .../forceopus/patch/ForceOpusCodecPatch.kt | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/forceopus/patch/ForceOpusCodecPatch.kt diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/forceopus/patch/ForceOpusCodecPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/forceopus/patch/ForceOpusCodecPatch.kt new file mode 100644 index 000000000..8f5d1919a --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/forceopus/patch/ForceOpusCodecPatch.kt @@ -0,0 +1,41 @@ +package app.revanced.patches.youtube.misc.forceopus.patch + +import app.revanced.patcher.annotation.Description +import app.revanced.patcher.annotation.Name +import app.revanced.patcher.annotation.Version +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.patch.PatchResult +import app.revanced.patcher.patch.PatchResultSuccess +import app.revanced.patcher.patch.annotations.DependsOn +import app.revanced.patcher.patch.annotations.Patch +import app.revanced.patches.shared.annotation.YouTubeCompatibility +import app.revanced.patches.shared.patch.opus.AbstractOpusCodecsPatch +import app.revanced.patches.youtube.utils.settings.resource.patch.SettingsPatch +import app.revanced.util.integrations.Constants.MISC_PATH + +@Patch +@Name("force-opus-codec") +@Description("Forces the opus codec for audios.") +@DependsOn([SettingsPatch::class]) +@YouTubeCompatibility +@Version("0.0.1") +class ForceOpusCodecPatch : AbstractOpusCodecsPatch( + "$MISC_PATH/CodecOverridePatch;->shouldForceOpus()Z" +) { + override fun execute(context: BytecodeContext): PatchResult { + super.execute(context) + + /** + * Add settings + */ + SettingsPatch.addPreference( + arrayOf( + "SETTINGS: ENABLE_OPUS_CODEC" + ) + ) + + SettingsPatch.updatePatchStatus("force-opus-codec") + + return PatchResultSuccess() + } +}