From 2a51598004323a8ac32f7975cba63cd0c654c6c5 Mon Sep 17 00:00:00 2001 From: Ethan Pippin Date: Sat, 6 May 2023 22:07:34 -0600 Subject: [PATCH] Cleanup and UDPBroadcastConnection Package (#765) --- Cartfile | 1 - Shared/Objects/EnumPicker.swift | 72 ++++++++++++++++--- Shared/Objects/GestureAction.swift | 3 +- Shared/Objects/SpecialFeatureType.swift | 13 ---- Shared/Views/SelectorView.swift | 2 +- Swiftfin tvOS/Info.plist | 8 +-- .../Components/AboutView/AboutViewCard.swift | 9 --- .../VideoPlayer/Overlays/MainOverlay.swift | 29 -------- Swiftfin.xcodeproj/project.pbxproj | 54 +++++++++----- .../xcshareddata/swiftpm/Package.resolved | 9 +++ .../xcschemes/Swiftfin tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/Swiftfin.xcscheme | 2 +- Swiftfin/App/SwiftfinApp.swift | 2 +- .../SettingsView/GestureSettingsView.swift | 5 ++ 14 files changed, 121 insertions(+), 90 deletions(-) diff --git a/Cartfile b/Cartfile index e3c09127..40d2b1e2 100644 --- a/Cartfile +++ b/Cartfile @@ -1,4 +1,3 @@ binary "https://code.videolan.org/videolan/VLCKit/raw/master/Packaging/MobileVLCKit.json" ~> 3.4.0 binary "https://code.videolan.org/videolan/VLCKit/raw/master/Packaging/TVVLCKit.json" ~> 3.3.0 -github "gunterhager/UDPBroadcastConnection" binary "ChromeCastFramework.json" \ No newline at end of file diff --git a/Shared/Objects/EnumPicker.swift b/Shared/Objects/EnumPicker.swift index b5f56e12..394fe8d0 100644 --- a/Shared/Objects/EnumPicker.swift +++ b/Shared/Objects/EnumPicker.swift @@ -8,25 +8,77 @@ import SwiftUI -// TODO: Allow optional binding +struct EnumPicker: View { -struct EnumPicker: View { + enum NoneStyle: Displayable { + + case text + case dash(Int) + case custom(String) + + var displayTitle: String { + switch self { + case .text: + return L10n.none + case let .dash(length): + precondition(length >= 1, "Dash must have length of at least 1.") + return String(repeating: "-", count: length) + case let .custom(text): + precondition(!text.isEmpty, "Custom text must have length of at least 1.") + return text + } + } + } @Binding - var selection: EnumType + private var selection: EnumType? - let title: String - - init(title: String, selection: Binding) { - self.title = title - self._selection = selection - } + private let title: String + private let hasNil: Bool + private var noneStyle: NoneStyle var body: some View { Picker(title, selection: $selection) { + + if hasNil { + Text(noneStyle.displayTitle) + .tag(nil as EnumType?) + } + ForEach(EnumType.allCases.asArray, id: \.hashValue) { - Text($0.displayTitle).tag($0) + Text($0.displayTitle) + .tag($0 as EnumType?) } } } } + +extension EnumPicker { + + init(title: String, selection: Binding) { + self.title = title + self._selection = selection + self.hasNil = true + self.noneStyle = .text + } + + init(title: String, selection: Binding) { + self.title = title + + let binding = Binding { + selection.wrappedValue + } set: { newValue, _ in + assert(newValue != nil, "Should not have nil new value with non-optional binding") + selection.wrappedValue = newValue! + } + + self._selection = binding + + self.hasNil = false + self.noneStyle = .text + } + + func noneStyle(_ newStyle: NoneStyle) -> Self { + copy(modifying: \.noneStyle, with: newStyle) + } +} diff --git a/Shared/Objects/GestureAction.swift b/Shared/Objects/GestureAction.swift index 69be8aa6..7b2f5499 100644 --- a/Shared/Objects/GestureAction.swift +++ b/Shared/Objects/GestureAction.swift @@ -9,7 +9,8 @@ import Defaults import Foundation -// TODO: look at optional values for defaults to remove .none +// Optional values aren't yet supported in Defaults +// https://github.com/sindresorhus/Defaults/issues/54 protocol GestureAction: CaseIterable, Codable, Defaults.Serializable, Displayable {} diff --git a/Shared/Objects/SpecialFeatureType.swift b/Shared/Objects/SpecialFeatureType.swift index eed1cc91..1abd365a 100644 --- a/Shared/Objects/SpecialFeatureType.swift +++ b/Shared/Objects/SpecialFeatureType.swift @@ -9,19 +9,6 @@ import Foundation import JellyfinAPI -// enum SpecialFeatureType: String, CaseIterable, Displayable { -// -// case unknown = "Unknown" -// case clip = "Clip" -// case trailer = "Trailer" -// case behindTheScenes = "BehindTheScenes" -// case deletedScene = "DeletedScene" -// case interview = "Interview" -// case scene = "Scene" -// case sample = "Sample" -// case themeSong = "ThemeSong" -// case themeVideo = "ThemeVideo" - extension SpecialFeatureType: Displayable { // TODO: localize diff --git a/Shared/Views/SelectorView.swift b/Shared/Views/SelectorView.swift index 1887e798..bbe7ffeb 100644 --- a/Shared/Views/SelectorView.swift +++ b/Shared/Views/SelectorView.swift @@ -39,7 +39,7 @@ struct SelectorView: View { Spacer() - if selection.contains { $0.id == item.id } { + if selection.contains(where: { $0.id == item.id }) { Image(systemName: "checkmark.circle.fill") .resizable() .aspectRatio(contentMode: .fit) diff --git a/Swiftfin tvOS/Info.plist b/Swiftfin tvOS/Info.plist index dcd9246a..00bbd172 100644 --- a/Swiftfin tvOS/Info.plist +++ b/Swiftfin tvOS/Info.plist @@ -2,10 +2,6 @@ - UIUserInterfaceStyle - Dark - CFBundledisplayTitle - Jellyfin CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -20,6 +16,8 @@ $(MARKETING_VERSION) CFBundleVersion $(CURRENT_PROJECT_VERSION) + CFBundledisplayTitle + Jellyfin LSRequiresIPhoneOS NSAppTransportSecurity @@ -36,5 +34,7 @@ arm64 + UIUserInterfaceStyle + Dark diff --git a/Swiftfin tvOS/Views/ItemView/Components/AboutView/AboutViewCard.swift b/Swiftfin tvOS/Views/ItemView/Components/AboutView/AboutViewCard.swift index 7d39a26f..f3f22055 100644 --- a/Swiftfin tvOS/Views/ItemView/Components/AboutView/AboutViewCard.swift +++ b/Swiftfin tvOS/Views/ItemView/Components/AboutView/AboutViewCard.swift @@ -51,12 +51,3 @@ extension ItemView.AboutView { } } } - -struct ContentView_Previews: PreviewProvider { - static var previews: some View { - ItemView.AboutView.InformationCard( - title: "Subtitles", - content: "Fre - Default - PGSSUB" - ) - } -} diff --git a/Swiftfin tvOS/Views/VideoPlayer/Overlays/MainOverlay.swift b/Swiftfin tvOS/Views/VideoPlayer/Overlays/MainOverlay.swift index ef90c0b8..287c02c6 100644 --- a/Swiftfin tvOS/Views/VideoPlayer/Overlays/MainOverlay.swift +++ b/Swiftfin tvOS/Views/VideoPlayer/Overlays/MainOverlay.swift @@ -51,32 +51,3 @@ extension VideoPlayer { } } } - -// struct VideoPlayerOverlay_Preview: PreviewProvider { -// -// static var previews: some View { -// ZStack { -// -// Color.red -// -// VideoPlayer.MainOverlay() -// .environmentObject(VideoPlayerManager()) -// .environmentObject(VideoPlayerViewModel( -// playbackURL: URL(string: "http://apple.com")!, -// item: .init(indexNumber: 1, name: "Interstellar", parentIndexNumber: 1, seriesName: "New Girl", type: .episode), -// mediaSource: .init(), -// playSessionID: "", -// videoStreams: [], -// audioStreams: [], -// subtitleStreams: [], -// selectedAudioStreamIndex: 1, -// selectedSubtitleStreamIndex: 1, -// chapters: [], -// streamType: .direct) -// ) -// .environmentObject(VideoPlayerManager.CurrentProgressHandler()) -// .environmentObject(TimerProxy()) -// } -// .ignoresSafeArea() -// } -// } diff --git a/Swiftfin.xcodeproj/project.pbxproj b/Swiftfin.xcodeproj/project.pbxproj index 1d5b0f18..5b1da343 100644 --- a/Swiftfin.xcodeproj/project.pbxproj +++ b/Swiftfin.xcodeproj/project.pbxproj @@ -82,8 +82,6 @@ 6220D0C026D61C5000B8E046 /* ItemCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6220D0BF26D61C5000B8E046 /* ItemCoordinator.swift */; }; 6220D0C926D63F3700B8E046 /* Stinsen in Frameworks */ = {isa = PBXBuildFile; productRef = 6220D0C826D63F3700B8E046 /* Stinsen */; }; 6220D0CC26D640C400B8E046 /* AppURLHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6220D0CB26D640C400B8E046 /* AppURLHandler.swift */; }; - 62400C4B287ED19600F6AD3D /* UDPBroadcast.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 637FCAF3287B5B2600C0A353 /* UDPBroadcast.xcframework */; }; - 62400C4C287ED19600F6AD3D /* UDPBroadcast.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 637FCAF3287B5B2600C0A353 /* UDPBroadcast.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 625CB5732678C32A00530A6E /* HomeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625CB5722678C32A00530A6E /* HomeViewModel.swift */; }; 625CB5752678C33500530A6E /* MediaViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625CB5742678C33500530A6E /* MediaViewModel.swift */; }; 625CB5772678C34300530A6E /* ConnectToServerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625CB5762678C34300530A6E /* ConnectToServerViewModel.swift */; }; @@ -447,6 +445,7 @@ E17FB55928C125E900311DFE /* StudiosHStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = E17FB55828C125E900311DFE /* StudiosHStack.swift */; }; E17FB55B28C1266400311DFE /* GenresHStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = E17FB55A28C1266400311DFE /* GenresHStack.swift */; }; E18295E429CAC6F100F91ED0 /* BasicNavigationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E154967D296CCB6C00C4EF88 /* BasicNavigationCoordinator.swift */; }; + E18443CB2A037773002DDDC8 /* UDPBroadcast in Frameworks */ = {isa = PBXBuildFile; productRef = E18443CA2A037773002DDDC8 /* UDPBroadcast */; }; E185920628CDAA6400326F80 /* CastAndCrewHStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = E185920528CDAA6400326F80 /* CastAndCrewHStack.swift */; }; E185920828CDAAA200326F80 /* SimilarItemsHStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = E185920728CDAAA200326F80 /* SimilarItemsHStack.swift */; }; E185920A28CEF23A00326F80 /* FocusGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = E185920928CEF23A00326F80 /* FocusGuide.swift */; }; @@ -700,13 +699,12 @@ E1EBCB44278BD1CE009FE6E9 /* ItemOverviewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1EBCB43278BD1CE009FE6E9 /* ItemOverviewCoordinator.swift */; }; E1EBCB46278BD595009FE6E9 /* ItemOverviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1EBCB45278BD595009FE6E9 /* ItemOverviewView.swift */; }; E1EBCB4A278BE443009FE6E9 /* ItemOverviewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1EBCB43278BD1CE009FE6E9 /* ItemOverviewCoordinator.swift */; }; - E1ECD8F528C1BA10008B9DC6 /* UDPBroadcast.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 637FCAF3287B5B2600C0A353 /* UDPBroadcast.xcframework */; }; - E1ECD8F628C1BA10008B9DC6 /* UDPBroadcast.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 637FCAF3287B5B2600C0A353 /* UDPBroadcast.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; E1EF473A289A0F610034046B /* TruncatedTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1EBCB41278BD174009FE6E9 /* TruncatedTextView.swift */; }; E1EF4C412911B783008CC695 /* StreamType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1EF4C402911B783008CC695 /* StreamType.swift */; }; E1F0204E26CCCA74001C1C3B /* VideoPlayerJumpLength.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1F0204D26CCCA74001C1C3B /* VideoPlayerJumpLength.swift */; }; E1FA891B289A302300176FEB /* iPadOSCollectionItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FA891A289A302300176FEB /* iPadOSCollectionItemView.swift */; }; E1FA891E289A305D00176FEB /* iPadOSCollectionItemContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FA891D289A305D00176FEB /* iPadOSCollectionItemContentView.swift */; }; + E1FAD1C62A0375BA007F5521 /* UDPBroadcast in Frameworks */ = {isa = PBXBuildFile; productRef = E1FAD1C52A0375BA007F5521 /* UDPBroadcast */; }; E1FBDB6629D0F336003DD5E2 /* KeyCommandAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FBDB6529D0F336003DD5E2 /* KeyCommandAction.swift */; }; E1FCD08826C35A0D007C8DCF /* NetworkError.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FCD08726C35A0D007C8DCF /* NetworkError.swift */; }; E1FCD08926C35A0D007C8DCF /* NetworkError.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FCD08726C35A0D007C8DCF /* NetworkError.swift */; }; @@ -733,7 +731,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 62400C4C287ED19600F6AD3D /* UDPBroadcast.xcframework in Embed Frameworks */, 62666DF827E5012C00EC0ECD /* MobileVLCKit.xcframework in Embed Frameworks */, ); name = "Embed Frameworks"; @@ -746,7 +743,6 @@ dstSubfolderSpec = 10; files = ( 62666DFB27E5013700EC0ECD /* TVVLCKit.xcframework in Embed Frameworks */, - E1ECD8F628C1BA10008B9DC6 /* UDPBroadcast.xcframework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -1287,9 +1283,9 @@ E1388A46293F0ABA009721B1 /* SwizzleSwift in Frameworks */, 62666E2C27E5021000EC0ECD /* QuartzCore.framework in Frameworks */, 62666E1927E501D000EC0ECD /* CoreFoundation.framework in Frameworks */, + E18443CB2A037773002DDDC8 /* UDPBroadcast in Frameworks */, 62666E2E27E5021400EC0ECD /* Security.framework in Frameworks */, E1B5F7AD29577BDD004B26CF /* OrderedCollections in Frameworks */, - E1ECD8F528C1BA10008B9DC6 /* UDPBroadcast.xcframework in Frameworks */, 53ABFDDC267972BF00886593 /* TVServices.framework in Frameworks */, 62666E1F27E501DF00EC0ECD /* CoreText.framework in Frameworks */, E13DD3CD27164CA7009D4DAF /* CoreStore in Frameworks */, @@ -1327,8 +1323,8 @@ 62666E1027E501B400EC0ECD /* VideoToolbox.framework in Frameworks */, 62666E0C27E501A500EC0ECD /* OpenGLES.framework in Frameworks */, E19E6E0A28A0BEFF005C10C8 /* BlurHashKit in Frameworks */, + E1FAD1C62A0375BA007F5521 /* UDPBroadcast in Frameworks */, 62666E0127E5016900EC0ECD /* CoreFoundation.framework in Frameworks */, - 62400C4B287ED19600F6AD3D /* UDPBroadcast.xcframework in Frameworks */, 62666E2427E501F300EC0ECD /* Foundation.framework in Frameworks */, E18A8E7A28D5FEDF00333B9A /* VLCUI in Frameworks */, 53352571265EA0A0006CCA86 /* Introspect in Frameworks */, @@ -2734,6 +2730,7 @@ E1B5F7AA29577BCE004B26CF /* PulseUI */, E1B5F7AC29577BDD004B26CF /* OrderedCollections */, E1DC981D296DD91900982F06 /* CollectionView */, + E18443CA2A037773002DDDC8 /* UDPBroadcast */, ); productName = "JellyfinPlayer tvOS"; productReference = 535870602669D21600D05A09 /* Swiftfin tvOS.app */; @@ -2776,6 +2773,7 @@ E19DDEC62948EF9900954E10 /* OrderedCollections */, E1DC9813296DC06200982F06 /* PulseLogHandler */, E1DC9820296DDBE600982F06 /* CollectionView */, + E1FAD1C52A0375BA007F5521 /* UDPBroadcast */, ); productName = JellyfinPlayer; productReference = 5377CBF1263B596A003A4E83 /* Swiftfin iOS.app */; @@ -2787,11 +2785,12 @@ 5377CBE9263B596A003A4E83 /* Project object */ = { isa = PBXProject; attributes = { + BuildIndependentTargetsInParallel = YES; KnownAssetTags = ( New, ); LastSwiftUpdateCheck = 1250; - LastUpgradeCheck = 1400; + LastUpgradeCheck = 1430; TargetAttributes = { 5358705F2669D21600D05A09 = { CreatedOnToolsVersion = 12.5; @@ -2842,6 +2841,7 @@ E19DDEC52948EF9900954E10 /* XCRemoteSwiftPackageReference "swift-collections" */, E1DC9812296DC06200982F06 /* XCRemoteSwiftPackageReference "PulseLogHandler" */, E1DC981F296DDBE600982F06 /* XCRemoteSwiftPackageReference "CollectionView" */, + E1FAD1C42A0375BA007F5521 /* XCRemoteSwiftPackageReference "UDPBroadcastConnection" */, ); productRefGroup = 5377CBF2263B596A003A4E83 /* Products */; projectDirPath = ""; @@ -3691,7 +3691,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = ""; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 70; @@ -3720,7 +3720,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = ""; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 70; @@ -3868,16 +3868,15 @@ 5377CC1C263B596B003A4E83 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-primary-primary"; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = ""; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_ENTITLEMENTS = Swiftfin/Swiftfin.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 78; DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = TY84JMYEFE; + DEVELOPMENT_TEAM = ""; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; EXCLUDED_ARCHS = ""; @@ -3891,7 +3890,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.0; - PRODUCT_BUNDLE_IDENTIFIER = pip.jellyfin.swiftfin; + PRODUCT_BUNDLE_IDENTIFIER = org.jellyfin.swiftfin; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SUPPORTS_MACCATALYST = NO; @@ -3906,9 +3905,8 @@ 5377CC1D263B596B003A4E83 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-primary-primary"; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = ""; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_ENTITLEMENTS = Swiftfin/Swiftfin.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; @@ -3916,7 +3914,7 @@ CURRENT_PROJECT_VERSION = 78; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = TY84JMYEFE; + DEVELOPMENT_TEAM = ""; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; EXCLUDED_ARCHS = ""; @@ -3930,7 +3928,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.0; - PRODUCT_BUNDLE_IDENTIFIER = pip.jellyfin.swiftfin; + PRODUCT_BUNDLE_IDENTIFIER = org.jellyfin.swiftfin; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SUPPORTS_MACCATALYST = NO; @@ -4110,6 +4108,14 @@ kind = branch; }; }; + E1FAD1C42A0375BA007F5521 /* XCRemoteSwiftPackageReference "UDPBroadcastConnection" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/gunterhager/UDPBroadcastConnection"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 5.0.0; + }; + }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ @@ -4243,6 +4249,11 @@ package = E1575E3A293C6B15001665B1 /* XCRemoteSwiftPackageReference "Files" */; productName = Files; }; + E18443CA2A037773002DDDC8 /* UDPBroadcast */ = { + isa = XCSwiftPackageProductDependency; + package = E1FAD1C42A0375BA007F5521 /* XCRemoteSwiftPackageReference "UDPBroadcastConnection" */; + productName = UDPBroadcast; + }; E18A8E7928D5FEDF00333B9A /* VLCUI */ = { isa = XCSwiftPackageProductDependency; package = E18A8E7828D5FEDF00333B9A /* XCRemoteSwiftPackageReference "VLCUI" */; @@ -4317,6 +4328,11 @@ package = E1DC981F296DDBE600982F06 /* XCRemoteSwiftPackageReference "CollectionView" */; productName = CollectionView; }; + E1FAD1C52A0375BA007F5521 /* UDPBroadcast */ = { + isa = XCSwiftPackageProductDependency; + package = E1FAD1C42A0375BA007F5521 /* XCRemoteSwiftPackageReference "UDPBroadcastConnection" */; + productName = UDPBroadcast; + }; /* End XCSwiftPackageProductDependency section */ }; rootObject = 5377CBE9263B596A003A4E83 /* Project object */; diff --git a/Swiftfin.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Swiftfin.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index d208715b..44b82205 100644 --- a/Swiftfin.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Swiftfin.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -162,6 +162,15 @@ "version" : "1.0.0" } }, + { + "identity" : "udpbroadcastconnection", + "kind" : "remoteSourceControl", + "location" : "https://github.com/gunterhager/UDPBroadcastConnection", + "state" : { + "revision" : "3680f532c00d18a168bb8da7b9f8f82fcd89180d", + "version" : "5.0.5" + } + }, { "identity" : "urlqueryencoder", "kind" : "remoteSourceControl", diff --git a/Swiftfin.xcodeproj/xcshareddata/xcschemes/Swiftfin tvOS.xcscheme b/Swiftfin.xcodeproj/xcshareddata/xcschemes/Swiftfin tvOS.xcscheme index 0ad6eb54..ba69d8c7 100644 --- a/Swiftfin.xcodeproj/xcshareddata/xcschemes/Swiftfin tvOS.xcscheme +++ b/Swiftfin.xcodeproj/xcshareddata/xcschemes/Swiftfin tvOS.xcscheme @@ -1,6 +1,6 @@