From 3be166a9afb9d0dbd4cf0f9fa805b44757141c1f Mon Sep 17 00:00:00 2001 From: Fluffik3666 <110257462+Fluffik3666@users.noreply.github.com> Date: Mon, 20 Oct 2025 11:18:49 -0400 Subject: [PATCH] feat: version 1.0.2 --- .DS_Store | Bin 6148 -> 10244 bytes .../AccentColor.colorset/Contents.json | 11 + .../AppIcon~ios-marketing copy.png | Bin 0 -> 230298 bytes .../AppIcon.appiconset/Contents.json | 14 + .../Assets.xcassets/Contents.json | 6 + Promptly-WatchOS Watch App/ContentView.swift | 24 + .../HomeScreenView.swift | 138 ++++ .../Promptly_WatchOSApp.swift | 17 + Promptly.xcodeproj/project.pbxproj | 276 +++++++- .../xcshareddata/swiftpm/Package.resolved | 44 +- .../UserInterfaceState.xcuserstate | Bin 152356 -> 163761 bytes .../xcschemes/xcschememanagement.plist | 5 + Promptly/.DS_Store | Bin 10244 -> 14340 bytes Promptly/AI Script/AIScriptManager.swift | 589 ------------------ Promptly/Assets.xcassets/.DS_Store | Bin 0 -> 10244 bytes .../AppIcon.appiconset/.DS_Store | Bin 0 -> 6148 bytes Promptly/Helpers/MIDIHelpers.swift | 139 +++++ Promptly/MQTT/MQTTManager.swift | 1 + Promptly/Models/Performance.swift | 66 ++ Promptly/Models/Script.swift | 54 ++ Promptly/PromptlyApp.swift | 16 + Promptly/Views/.DS_Store | Bin 10244 -> 14340 bytes .../Views/Export/PerformanceReportView.swift | 4 - Promptly/Views/Export/ScriptExportView.swift | 26 +- .../Views/Home Screen/HomeScreenView.swift | 12 + Promptly/Views/MIDI/ConnMIDIBle.swift | 45 ++ .../Multiplayer/MultiPlayerShowDetail.swift | 159 ++--- .../Views/Performance Mode/CueTagView.swift | 36 ++ .../Performance Mode/DSMScriptLineView.swift | 92 +++ .../LivePerforemanceView.swift | 585 +++++++++-------- .../SpectatorPerformaceView.swift | 31 +- Promptly/Views/Scripts/.DS_Store | Bin 6148 -> 6148 bytes Promptly/Views/Scripts/ScriptEditorView.swift | 27 - Promptly/Views/Shows/.DS_Store | Bin 6148 -> 6148 bytes .../Views/Shows/Detail/ShowDetailView.swift | 31 +- test1_results.rtf | 28 + 36 files changed, 1410 insertions(+), 1066 deletions(-) create mode 100644 Promptly-WatchOS Watch App/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Promptly-WatchOS Watch App/Assets.xcassets/AppIcon.appiconset/AppIcon~ios-marketing copy.png create mode 100644 Promptly-WatchOS Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Promptly-WatchOS Watch App/Assets.xcassets/Contents.json create mode 100644 Promptly-WatchOS Watch App/ContentView.swift create mode 100644 Promptly-WatchOS Watch App/HomeScreenView.swift create mode 100644 Promptly-WatchOS Watch App/Promptly_WatchOSApp.swift delete mode 100644 Promptly/AI Script/AIScriptManager.swift create mode 100644 Promptly/Assets.xcassets/.DS_Store create mode 100644 Promptly/Assets.xcassets/AppIcon.appiconset/.DS_Store create mode 100644 Promptly/Helpers/MIDIHelpers.swift create mode 100644 Promptly/Views/MIDI/ConnMIDIBle.swift create mode 100644 Promptly/Views/Performance Mode/CueTagView.swift create mode 100644 Promptly/Views/Performance Mode/DSMScriptLineView.swift create mode 100644 test1_results.rtf diff --git a/.DS_Store b/.DS_Store index 402e1dd5016756a69c6f0218468bce5531c11180..8e4690199fa911af438fe78c44a5389de59aaa34 100644 GIT binary patch literal 10244 zcmeHMTWl0n7(V~Bz>FQ}X)REOVi#9Q#nKzMauK&TZUtMry%(&rJ3~7#JG1W0ZVT90 zBgS}n5igH|F$5D0(Flnz;3Zxjj4_%G2^bCW5_$4P9z@0XpE+7pr_E-}f$*oc#yp&c*+ z1OfyC1OfyC1OfzZ1q5)WvFg-{a9t_@P@jY%Fvp1YsSVTabdW6Q^()|Ghx}!a96-z4#@mz zu01=OU*=G4G;SyO-Gq4L!C7^jOcVD#Z*9)^i#gw=+Y03Qa%Wd}kKEU5#BD2T9MT7A zp@RVIz-D_&&!FQyaobEMEN74w#Z@z&HdR+|Fiob6yh10QvQ4wyb`00Bt-fAYA9Zsb zO%e6>J9f%#@;V!&H0|geI`(B`^k(c4yDDa*wIx|MPPd+NkcJ~Q917{wg2iRa?_OEG zX2X`ot*vd@LRwTT%L^CvWDLiMnR=h<#C1zEtf8(ELvx4w@he!avCq&`l0;8-T53Yi z78lXN(j|)0n~oWeqz(5V4U1y7m=+Z-Q_AH%8qQ<4tuZ4_q-P{ga;H+R3@}MkO2=CB z4OS=>a;JkBh*af@_sXl}&I1??5_LGIMy^x3Of{yP64m%PYvuJyPlh`u(N@mfC~sDJ z@lz&n#*S13m7IM)j{FcCd6(+AZAsnYgQE{k<%-hBBn_J8F$;@mv9ev+DblaRerH%s z>1`tzr&*u>fGB$375S{M7R_+&31J5lQp3s^m;#77&jcx)i@|VYC4UXSzyFf==7A}d zANR5TF1`U=b{a zQdkaEPz|+E2b*9UY=<4t0X@(Q{V)I;7_c8qNI(W2g)w*x#^Gsr9*)9`@DjWNC*gH? z1Kxx)@DY3rpTHMz0WQMV@B{n^Kfz`A1^$3*@TWk9C4wR>6{>`4p8zwskUw3u~Xi4%O}-^1uTtjFIl)~afszs{e6uSamWKV z7ps#qzzh2+$>N2*7ZuauHH+D{v`oIE{Ca8Hh54e7iY(~qJYPF}mx%d7=lIQvd$8F` z=kjLRswxq4lL}r_E~{HDVFuDXzqx8XHi0+fO`9?G9h#qAx-9kpOb z;?0ipFUdu63FG_buXy^F zO{&N!iQ@{Q5goU2ww>>vvfT;7=#AP<_D}h>cCYW>4UL(w|MvNx+D^ei@V7CXbWj2W z0t5mC0t5mC0t9Xz0(rcv5WD|xx&HtEH*dh8rvQNffm;p%$Zw7|H{!H%XZq+P!6{a`Nsb_)}Q(=7XIvyMBI=;f^P5hEadBo?9bLyF+oo9}e-{$}4e+K;fOSRzq PADsUupO62y=l{O|vl;8- delta 117 zcmZn(XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50$jG%ZU^g=(*JK`nDI7+|Mmh>c zhNhEO2$XEL7k|yPn4N<|kQt~P2n4u+geyqr#=`H+llfIVLFO~D?XAUy} D!Z;Jc diff --git a/Promptly-WatchOS Watch App/Assets.xcassets/AccentColor.colorset/Contents.json b/Promptly-WatchOS Watch App/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Promptly-WatchOS Watch App/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Promptly-WatchOS Watch App/Assets.xcassets/AppIcon.appiconset/AppIcon~ios-marketing copy.png b/Promptly-WatchOS Watch App/Assets.xcassets/AppIcon.appiconset/AppIcon~ios-marketing copy.png new file mode 100644 index 0000000000000000000000000000000000000000..02a66f2eb214f2dbd36eec6723b5d9efafbc8f4a GIT binary patch literal 230298 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 M-uMCvn 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 literal 0 HcmV?d00001 diff --git a/Promptly-WatchOS Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json b/Promptly-WatchOS Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..01400d6 --- /dev/null +++ b/Promptly-WatchOS Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "AppIcon~ios-marketing copy.png", + "idiom" : "universal", + "platform" : "watchos", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Promptly-WatchOS Watch App/Assets.xcassets/Contents.json b/Promptly-WatchOS Watch App/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Promptly-WatchOS Watch App/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Promptly-WatchOS Watch App/ContentView.swift b/Promptly-WatchOS Watch App/ContentView.swift new file mode 100644 index 0000000..016f4a5 --- /dev/null +++ b/Promptly-WatchOS Watch App/ContentView.swift @@ -0,0 +1,24 @@ +// +// ContentView.swift +// Promptly-WatchOS Watch App +// +// Created by Sasha Bagrov on 05/10/2025. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundStyle(.tint) + Text("Hello, world!") + } + .padding() + } +} + +#Preview { + ContentView() +} diff --git a/Promptly-WatchOS Watch App/HomeScreenView.swift b/Promptly-WatchOS Watch App/HomeScreenView.swift new file mode 100644 index 0000000..8a406ad --- /dev/null +++ b/Promptly-WatchOS Watch App/HomeScreenView.swift @@ -0,0 +1,138 @@ +// +// HomeScreenView.swift +// Promptly-WatchOS Watch App +// +// Created by Sasha Bagrov on 05/10/2025. +// + +import SwiftUI +import SwiftData + +struct HomeScreenView: View { + @State var navStackMessage: String = "" + @State var showNetworkSettings: Bool = false + @State var availableShows: [String: String] = [:] + + @StateObject private var mqttManager = MQTTManager() + + var body: some View { + NavigationStack { + Group { + self.content + } + .navigationTitle(Text( + self.navStackMessage + )) + .toolbar { + ToolbarItemGroup { + self.toolbarContent + } + } + .onAppear { + self.setupGreeting() + + mqttManager.connect(to: Constants.mqttIP, port: Constants.mqttPort) + + mqttManager.subscribeToShowChanges { showId, property, message, title in + if UUID(uuidString: showId) != nil && availableShows[showId] == nil { + availableShows[showId] = title ?? "Unknown Show" + } + } + } + .sheet(isPresented: self.$showNetworkSettings) { + NetworkSettingsView() + } + } + } + + var content: some View { + Group { + List { + Section(header: Text("Or join a show")) { + if availableShows.isEmpty { + Text("No available shows") + .foregroundStyle(.secondary) + } else { + ForEach(Array(availableShows.keys), id: \.self) { showId in + NavigationLink(destination: MultiPlayerShowDetail(showID: showId, mqttManager: self.mqttManager)) { + Text(availableShows[showId] ?? "Unknown Show") + } + } + } + } + } + } + } + + var toolbarContent: some View { + Group { + Button { + self.showNetworkSettings = true + } label: { + Label("Network Settings", systemImage: "network") + } + } + } + + private func setupGreeting() { + let hour = Calendar.current.component(.hour, from: Date()) + if hour >= 5 && hour < 12 { + self.navStackMessage = "Good Morning" + } else if hour >= 12 && hour < 17 { + self.navStackMessage = "Good Afternoon" + } else if hour >= 17 && hour < 21 { + self.navStackMessage = "Good Evening" + } else { + self.navStackMessage = "Good Night" + } + } +} + +struct NetworkSettingsView: View { + @Environment(\.dismiss) var dismiss + + @State private var mqttIP: String = Constants.mqttIP + @State private var mqttPort: String = String(Constants.mqttPort) + + var body: some View { + NavigationStack { + Form { + Section { + TextField("MQTT IP Address", text: $mqttIP) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + + TextField("MQTT Port", text: $mqttPort) + } header: { + Text("Connection Settings") + } footer: { + Text("To apply changes, restart the app") + .foregroundStyle(.secondary) + } + } + .navigationTitle("Network Settings") + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button("Cancel") { + dismiss() + } + } + + ToolbarItem(placement: .confirmationAction) { + Button("Save") { + if let port = Int(mqttPort) { + Constants.mqttIP = mqttIP + Constants.mqttPort = port + } + dismiss() + } + } + } + } + } +} + +#Preview { + HomeScreenView() +} diff --git a/Promptly-WatchOS Watch App/Promptly_WatchOSApp.swift b/Promptly-WatchOS Watch App/Promptly_WatchOSApp.swift new file mode 100644 index 0000000..74445ca --- /dev/null +++ b/Promptly-WatchOS Watch App/Promptly_WatchOSApp.swift @@ -0,0 +1,17 @@ +// +// Promptly_WatchOSApp.swift +// Promptly-WatchOS Watch App +// +// Created by Sasha Bagrov on 05/10/2025. +// + +import SwiftUI + +@main +struct Promptly_WatchOS_Watch_AppApp: App { + var body: some Scene { + WindowGroup { + HomeScreenView() + } + } +} diff --git a/Promptly.xcodeproj/project.pbxproj b/Promptly.xcodeproj/project.pbxproj index 067f5af..fa3a15c 100644 --- a/Promptly.xcodeproj/project.pbxproj +++ b/Promptly.xcodeproj/project.pbxproj @@ -7,12 +7,38 @@ objects = { /* Begin PBXBuildFile section */ - 6F624EBF2DF370D700D17791 /* OpenAI in Frameworks */ = {isa = PBXBuildFile; productRef = 6F624EBE2DF370D700D17791 /* OpenAI */; }; - 6F624EC22DF373FF00D17791 /* Yams in Frameworks */ = {isa = PBXBuildFile; productRef = 6F624EC12DF373FF00D17791 /* Yams */; }; + 6F8BC3002E927EA7008EE618 /* Promptly-WatchOS Watch App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 6F8BC2F62E927EA5008EE618 /* Promptly-WatchOS Watch App.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 6F8BC30B2E927FED008EE618 /* MQTTNIO in Frameworks */ = {isa = PBXBuildFile; productRef = 6F8BC30A2E927FED008EE618 /* MQTTNIO */; }; + 6F9232672EA2A9E500D929A7 /* MIDIKit in Frameworks */ = {isa = PBXBuildFile; productRef = 6F9232662EA2A9E500D929A7 /* MIDIKit */; }; + 6F9232692EA2A9E500D929A7 /* MIDIKitControlSurfaces in Frameworks */ = {isa = PBXBuildFile; productRef = 6F9232682EA2A9E500D929A7 /* MIDIKitControlSurfaces */; }; + 6F92326B2EA2A9E500D929A7 /* MIDIKitCore in Frameworks */ = {isa = PBXBuildFile; productRef = 6F92326A2EA2A9E500D929A7 /* MIDIKitCore */; }; + 6F92326D2EA2A9E500D929A7 /* MIDIKitIO in Frameworks */ = {isa = PBXBuildFile; productRef = 6F92326C2EA2A9E500D929A7 /* MIDIKitIO */; }; + 6F92326F2EA2A9E500D929A7 /* MIDIKitSMF in Frameworks */ = {isa = PBXBuildFile; productRef = 6F92326E2EA2A9E500D929A7 /* MIDIKitSMF */; }; 6FAE1C952E89E0A500D067BE /* MQTTNIO in Frameworks */ = {isa = PBXBuildFile; productRef = 6FAE1C942E89E0A500D067BE /* MQTTNIO */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 6F8BC2FE2E927EA7008EE618 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6F0425B12DF0BFE5002B2081 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6F8BC2F52E927EA5008EE618; + remoteInfo = "Promptly-WatchOS Watch App"; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXCopyFilesBuildPhase section */ + 6F8BC3042E927EA7008EE618 /* Embed Watch Content */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; + dstSubfolderSpec = 16; + files = ( + 6F8BC3002E927EA7008EE618 /* Promptly-WatchOS Watch App.app in Embed Watch Content */, + ); + name = "Embed Watch Content"; + runOnlyForDeploymentPostprocessing = 0; + }; 6FF2CAA92E00C48A00AC265D /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -27,14 +53,42 @@ /* Begin PBXFileReference section */ 6F0425B92DF0BFE5002B2081 /* Promptly.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Promptly.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 6F8BC2F62E927EA5008EE618 /* Promptly-WatchOS Watch App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Promptly-WatchOS Watch App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + 6F8BC3082E927F26008EE618 /* Exceptions for "Promptly" folder in "Promptly-WatchOS Watch App" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Contants.swift, + Models/Errors.swift, + Models/Performance.swift, + Models/Script.swift, + Models/Show.swift, + MQTT/MQTTManager.swift, + Views/Multiplayer/MultiPlayerShowDetail.swift, + "Views/Performance Mode/CueTagView.swift", + "Views/Performance Mode/DSMScriptLineView.swift", + "Views/Performance Mode/SpectatorPerformaceView.swift", + ); + target = 6F8BC2F52E927EA5008EE618 /* Promptly-WatchOS Watch App */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + /* Begin PBXFileSystemSynchronizedRootGroup section */ 6F0425BB2DF0BFE5002B2081 /* Promptly */ = { isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + 6F8BC3082E927F26008EE618 /* Exceptions for "Promptly" folder in "Promptly-WatchOS Watch App" target */, + ); path = Promptly; sourceTree = ""; }; + 6F8BC2F72E927EA5008EE618 /* Promptly-WatchOS Watch App */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = "Promptly-WatchOS Watch App"; + sourceTree = ""; + }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -42,9 +96,20 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 6F9232692EA2A9E500D929A7 /* MIDIKitControlSurfaces in Frameworks */, + 6F92326D2EA2A9E500D929A7 /* MIDIKitIO in Frameworks */, + 6F9232672EA2A9E500D929A7 /* MIDIKit in Frameworks */, + 6F92326F2EA2A9E500D929A7 /* MIDIKitSMF in Frameworks */, 6FAE1C952E89E0A500D067BE /* MQTTNIO in Frameworks */, - 6F624EC22DF373FF00D17791 /* Yams in Frameworks */, - 6F624EBF2DF370D700D17791 /* OpenAI in Frameworks */, + 6F92326B2EA2A9E500D929A7 /* MIDIKitCore in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6F8BC2F32E927EA5008EE618 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6F8BC30B2E927FED008EE618 /* MQTTNIO in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -55,6 +120,7 @@ isa = PBXGroup; children = ( 6F0425BB2DF0BFE5002B2081 /* Promptly */, + 6F8BC2F72E927EA5008EE618 /* Promptly-WatchOS Watch App */, 6FAE1C812E89DE6300D067BE /* Frameworks */, 6F0425BA2DF0BFE5002B2081 /* Products */, ); @@ -64,6 +130,7 @@ isa = PBXGroup; children = ( 6F0425B92DF0BFE5002B2081 /* Promptly.app */, + 6F8BC2F62E927EA5008EE618 /* Promptly-WatchOS Watch App.app */, ); name = Products; sourceTree = ""; @@ -86,24 +153,52 @@ 6F0425B62DF0BFE5002B2081 /* Frameworks */, 6F0425B72DF0BFE5002B2081 /* Resources */, 6FF2CAA92E00C48A00AC265D /* Embed Frameworks */, + 6F8BC3042E927EA7008EE618 /* Embed Watch Content */, ); buildRules = ( ); dependencies = ( + 6F8BC2FF2E927EA7008EE618 /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( 6F0425BB2DF0BFE5002B2081 /* Promptly */, ); name = Promptly; packageProductDependencies = ( - 6F624EBE2DF370D700D17791 /* OpenAI */, - 6F624EC12DF373FF00D17791 /* Yams */, 6FAE1C942E89E0A500D067BE /* MQTTNIO */, + 6F9232662EA2A9E500D929A7 /* MIDIKit */, + 6F9232682EA2A9E500D929A7 /* MIDIKitControlSurfaces */, + 6F92326A2EA2A9E500D929A7 /* MIDIKitCore */, + 6F92326C2EA2A9E500D929A7 /* MIDIKitIO */, + 6F92326E2EA2A9E500D929A7 /* MIDIKitSMF */, ); productName = Promptly; productReference = 6F0425B92DF0BFE5002B2081 /* Promptly.app */; productType = "com.apple.product-type.application"; }; + 6F8BC2F52E927EA5008EE618 /* Promptly-WatchOS Watch App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6F8BC3012E927EA7008EE618 /* Build configuration list for PBXNativeTarget "Promptly-WatchOS Watch App" */; + buildPhases = ( + 6F8BC2F22E927EA5008EE618 /* Sources */, + 6F8BC2F32E927EA5008EE618 /* Frameworks */, + 6F8BC2F42E927EA5008EE618 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + 6F8BC2F72E927EA5008EE618 /* Promptly-WatchOS Watch App */, + ); + name = "Promptly-WatchOS Watch App"; + packageProductDependencies = ( + 6F8BC30A2E927FED008EE618 /* MQTTNIO */, + ); + productName = "Promptly-WatchOS Watch App"; + productReference = 6F8BC2F62E927EA5008EE618 /* Promptly-WatchOS Watch App.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -111,12 +206,15 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 1640; + LastSwiftUpdateCheck = 2600; LastUpgradeCheck = 1640; TargetAttributes = { 6F0425B82DF0BFE5002B2081 = { CreatedOnToolsVersion = 16.4; }; + 6F8BC2F52E927EA5008EE618 = { + CreatedOnToolsVersion = 26.0.1; + }; }; }; buildConfigurationList = 6F0425B42DF0BFE5002B2081 /* Build configuration list for PBXProject "Promptly" */; @@ -129,9 +227,8 @@ mainGroup = 6F0425B02DF0BFE5002B2081; minimizedProjectReferenceProxies = 1; packageReferences = ( - 6F624EBD2DF370D700D17791 /* XCRemoteSwiftPackageReference "OpenAI" */, - 6F624EC02DF373FF00D17791 /* XCRemoteSwiftPackageReference "Yams" */, 6FAE1C932E89E0A500D067BE /* XCRemoteSwiftPackageReference "mqtt-nio" */, + 6F9232652EA2A9E500D929A7 /* XCRemoteSwiftPackageReference "MIDIKit" */, ); preferredProjectObjectVersion = 77; productRefGroup = 6F0425BA2DF0BFE5002B2081 /* Products */; @@ -139,6 +236,7 @@ projectRoot = ""; targets = ( 6F0425B82DF0BFE5002B2081 /* Promptly */, + 6F8BC2F52E927EA5008EE618 /* Promptly-WatchOS Watch App */, ); }; /* End PBXProject section */ @@ -151,6 +249,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 6F8BC2F42E927EA5008EE618 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -161,8 +266,23 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 6F8BC2F22E927EA5008EE618 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 6F8BC2FF2E927EA7008EE618 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 6F8BC2F52E927EA5008EE618 /* Promptly-WatchOS Watch App */; + targetProxy = 6F8BC2FE2E927EA7008EE618 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin XCBuildConfiguration section */ 6F0425C32DF0BFE6002B2081 /* Debug */ = { isa = XCBuildConfiguration; @@ -287,12 +407,12 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = Promptly/Promptly.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 20; DEVELOPMENT_TEAM = 8Y3J97SYZG; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_CFBundleDisplayName = Promptly; + INFOPLIST_KEY_CFBundleDisplayName = DSMPrompt; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "We use bluetooth connectivity to connect to Promptly Clicker devices for script line control."; INFOPLIST_KEY_NSBluetoothPeripheralUsageDescription = "This app connects to BLE devices for remote control functionality."; @@ -307,11 +427,11 @@ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 17.6; + IPHONEOS_DEPLOYMENT_TARGET = 18.1; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.5; - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.0.2; PRODUCT_BUNDLE_IDENTIFIER = com.urbanmechanicsltd.Promptly; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; @@ -331,12 +451,12 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = Promptly/Promptly.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 20; DEVELOPMENT_TEAM = 8Y3J97SYZG; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_CFBundleDisplayName = Promptly; + INFOPLIST_KEY_CFBundleDisplayName = DSMPrompt; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "We use bluetooth connectivity to connect to Promptly Clicker devices for script line control."; INFOPLIST_KEY_NSBluetoothPeripheralUsageDescription = "This app connects to BLE devices for remote control functionality."; @@ -351,11 +471,11 @@ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 17.6; + IPHONEOS_DEPLOYMENT_TARGET = 18.1; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 15.5; - MARKETING_VERSION = 1.0; + MARKETING_VERSION = 1.0.2; PRODUCT_BUNDLE_IDENTIFIER = com.urbanmechanicsltd.Promptly; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; @@ -368,6 +488,73 @@ }; name = Release; }; + 6F8BC3022E927EA7008EE618 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 8Y3J97SYZG; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = DSMPrompt; + INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.urbanmechanicsltd.Promptly; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.urbanmechanicsltd.Promptly.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 26.0; + }; + name = Debug; + }; + 6F8BC3032E927EA7008EE618 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 8Y3J97SYZG; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = DSMPrompt; + INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.urbanmechanicsltd.Promptly; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.urbanmechanicsltd.Promptly.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + VALIDATE_PRODUCT = YES; + WATCHOS_DEPLOYMENT_TARGET = 26.0; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -389,23 +576,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 6F8BC3012E927EA7008EE618 /* Build configuration list for PBXNativeTarget "Promptly-WatchOS Watch App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6F8BC3022E927EA7008EE618 /* Debug */, + 6F8BC3032E927EA7008EE618 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 6F624EBD2DF370D700D17791 /* XCRemoteSwiftPackageReference "OpenAI" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/MacPaw/OpenAI"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 0.4.3; - }; - }; - 6F624EC02DF373FF00D17791 /* XCRemoteSwiftPackageReference "Yams" */ = { + 6F9232652EA2A9E500D929A7 /* XCRemoteSwiftPackageReference "MIDIKit" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/jpsim/Yams"; + repositoryURL = "https://github.com/orchetect/MIDIKit"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 6.0.0; + minimumVersion = 0.10.5; }; }; 6FAE1C932E89E0A500D067BE /* XCRemoteSwiftPackageReference "mqtt-nio" */ = { @@ -419,15 +607,35 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 6F624EBE2DF370D700D17791 /* OpenAI */ = { + 6F8BC30A2E927FED008EE618 /* MQTTNIO */ = { + isa = XCSwiftPackageProductDependency; + package = 6FAE1C932E89E0A500D067BE /* XCRemoteSwiftPackageReference "mqtt-nio" */; + productName = MQTTNIO; + }; + 6F9232662EA2A9E500D929A7 /* MIDIKit */ = { + isa = XCSwiftPackageProductDependency; + package = 6F9232652EA2A9E500D929A7 /* XCRemoteSwiftPackageReference "MIDIKit" */; + productName = MIDIKit; + }; + 6F9232682EA2A9E500D929A7 /* MIDIKitControlSurfaces */ = { + isa = XCSwiftPackageProductDependency; + package = 6F9232652EA2A9E500D929A7 /* XCRemoteSwiftPackageReference "MIDIKit" */; + productName = MIDIKitControlSurfaces; + }; + 6F92326A2EA2A9E500D929A7 /* MIDIKitCore */ = { + isa = XCSwiftPackageProductDependency; + package = 6F9232652EA2A9E500D929A7 /* XCRemoteSwiftPackageReference "MIDIKit" */; + productName = MIDIKitCore; + }; + 6F92326C2EA2A9E500D929A7 /* MIDIKitIO */ = { isa = XCSwiftPackageProductDependency; - package = 6F624EBD2DF370D700D17791 /* XCRemoteSwiftPackageReference "OpenAI" */; - productName = OpenAI; + package = 6F9232652EA2A9E500D929A7 /* XCRemoteSwiftPackageReference "MIDIKit" */; + productName = MIDIKitIO; }; - 6F624EC12DF373FF00D17791 /* Yams */ = { + 6F92326E2EA2A9E500D929A7 /* MIDIKitSMF */ = { isa = XCSwiftPackageProductDependency; - package = 6F624EC02DF373FF00D17791 /* XCRemoteSwiftPackageReference "Yams" */; - productName = Yams; + package = 6F9232652EA2A9E500D929A7 /* XCRemoteSwiftPackageReference "MIDIKit" */; + productName = MIDIKitSMF; }; 6FAE1C942E89E0A500D067BE /* MQTTNIO */ = { isa = XCSwiftPackageProductDependency; diff --git a/Promptly.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Promptly.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index bdfe434..6df2dba 100644 --- a/Promptly.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Promptly.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,22 +1,22 @@ { - "originHash" : "11bbdceb80b1d497c541689fd7138faf157ab6fbbdc493d740416bb2b81f32c9", + "originHash" : "bfa12cb89869b24734bffcae0a12d3f2ad26093cc5af5a79d12afe7e1c4ce68c", "pins" : [ { - "identity" : "mqtt-nio", + "identity" : "midikit", "kind" : "remoteSourceControl", - "location" : "https://github.com/sroebert/mqtt-nio.git", + "location" : "https://github.com/orchetect/MIDIKit", "state" : { - "revision" : "ad1f0bc339a6df89a28b419cdd452b0df584423d", - "version" : "2.8.1" + "revision" : "2e856b27af1ebdeb41017ec9e3ac0cd3ae1411a2", + "version" : "0.10.5" } }, { - "identity" : "openai", + "identity" : "mqtt-nio", "kind" : "remoteSourceControl", - "location" : "https://github.com/MacPaw/OpenAI", + "location" : "https://github.com/sroebert/mqtt-nio.git", "state" : { - "revision" : "9261cd39d55a718bcc360fbc29515a331cad5dbb", - "version" : "0.4.3" + "revision" : "ad1f0bc339a6df89a28b419cdd452b0df584423d", + "version" : "2.8.1" } }, { @@ -37,15 +37,6 @@ "version" : "1.2.1" } }, - { - "identity" : "swift-http-types", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-http-types", - "state" : { - "revision" : "a0a57e949a8903563aba4615869310c0ebf14c03", - "version" : "1.4.0" - } - }, { "identity" : "swift-log", "kind" : "remoteSourceControl", @@ -82,15 +73,6 @@ "version" : "1.25.1" } }, - { - "identity" : "swift-openapi-runtime", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-openapi-runtime", - "state" : { - "revision" : "8f33cc5dfe81169fb167da73584b9c72c3e8bc23", - "version" : "1.8.2" - } - }, { "identity" : "swift-system", "kind" : "remoteSourceControl", @@ -101,12 +83,12 @@ } }, { - "identity" : "yams", + "identity" : "timecodekit", "kind" : "remoteSourceControl", - "location" : "https://github.com/jpsim/Yams", + "location" : "https://github.com/orchetect/TimecodeKit", "state" : { - "revision" : "9281f8c99aff4f4a55dce22ae29b1181c935caa5", - "version" : "6.0.0" + "revision" : "957fdaeda020396d150ee1afc7c5172791cb0ad5", + "version" : "2.3.4" } } ], diff --git a/Promptly.xcodeproj/project.xcworkspace/xcuserdata/sashabagrov.xcuserdatad/UserInterfaceState.xcuserstate b/Promptly.xcodeproj/project.xcworkspace/xcuserdata/sashabagrov.xcuserdatad/UserInterfaceState.xcuserstate index 77c56e5077393793f9ddfa7d50eeb80beb7b85cf..06d2da3938e51d10c78fcf9d88f0750e295ec5cf 100644 GIT binary patch literal 163761 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 literal 152356 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 pe1JLE^!1Js_u#tJKLNZam>d8A diff --git a/Promptly.xcodeproj/xcuserdata/sashabagrov.xcuserdatad/xcschemes/xcschememanagement.plist b/Promptly.xcodeproj/xcuserdata/sashabagrov.xcuserdatad/xcschemes/xcschememanagement.plist index d7ab3b3..ac39bd4 100644 --- a/Promptly.xcodeproj/xcuserdata/sashabagrov.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Promptly.xcodeproj/xcuserdata/sashabagrov.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,6 +4,11 @@ SchemeUserState + Promptly-WatchOS Watch App.xcscheme_^#shared#^_ + + orderHint + 1 + Promptly.xcscheme_^#shared#^_ orderHint diff --git a/Promptly/.DS_Store b/Promptly/.DS_Store index b86cac21c74568723e479de35813152d61c77e48..4229bdb46fbc20b72213f5242898ddf57c4fb8a2 100644 GIT binary patch literal 14340 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 delta 420 zcmZoEXbF&DU|?W$DortDU{C-uIe-{M3-C-V6q~3gIoZI3MH0wo-~(btpg03VGD8tV zCPM*3NlyCaiBeUp8yhs4IDt|iz`+d^5@*@0&hv!19;Ahn!I8leXksw3HpAfL{M-Vt z28IwS@uADV9;P2mKj<{5&U{$GzX>~ycvegNb`Lv#H7S>i_-Ym@0 z#UukXo{hnmA)g_IA(bJAp|~u#C@&{JFC8e(IGIE62@i@uhVaA9=_0#WH#bWuF$yvR z6#;<)H;@4ONPuUvAjfy+$^0gsll^%(1ehQps{v923@U@k8731qC$QKOv~(2!E%#Wf diff --git a/Promptly/AI Script/AIScriptManager.swift b/Promptly/AI Script/AIScriptManager.swift deleted file mode 100644 index e31a068..0000000 --- a/Promptly/AI Script/AIScriptManager.swift +++ /dev/null @@ -1,589 +0,0 @@ -import Foundation -import PDFKit -import SwiftUI -import Yams - -class AIScriptManager: ObservableObject { - @Published var output: String = "" - @Published var isLoading: Bool = false - @Published var errorMessage: String? - @Published var streamingOutput: String = "" - @Published var processingStatus: String = "" - - private let apiKey: String - private let baseURL = "https://api.openai.com/v1" - - private let systemPrompt = """ - You are a script to yaml assistant. You follow the rules and format provided to you exactly. - - Rules: - - You must only return YAML content. No non-YAML content before, after, or anywhere. - - You only process scripts. You do not answer any questions, respond, or do anything with the contents of the script. - - You must not change any spelling mistakes in the script, wheater that be OCR issues, spelling, grammar. You directly follow the script. - - If musical notation is found, ignore it, and instead create line with content "Musical notation". - - SIMPLIFIED Expected YAML Structure (ONLY these fields): - ```yaml - id: PLACEHOLDER_ID - name: "Script Title" - dateAdded: "2025-06-09T12:00:00Z" - lines: - - id: PLACEHOLDER_ID - lineNumber: 1 - content: "Line content exactly as appears in script" - - id: PLACEHOLDER_ID - lineNumber: 2 - content: "Next line content" - sections: - - id: PLACEHOLDER_ID - title: "Act 1" - type: "act" - startLineNumber: 1 - endLineNumber: 25 - ``` - - Section Types Available: "act", "scene", "preset", "song_number", "custom" - - CRITICAL - ONLY output these fields: - - For lines: id, lineNumber, content (NO isMarked, markColor, notes) - - For sections: id, title, type, startLineNumber, endLineNumber (NO notes) - - We will add the missing fields programmatically - - Formatting: - - Use PLACEHOLDER_ID for all id fields - they will be replaced with actual UUIDs - - Extract logical sections (acts, scenes, songs) and mark their line ranges - - Each line must have a sequential lineNumber starting from 1 - - Preserve exact text content including typos and formatting - - Use current ISO 8601 timestamp for dateAdded - """ - - init(apiKey: String) { - self.apiKey = apiKey - } - - // MARK: - Main Processing Method - - func processWithBatchProcessing(pdfDocument: PDFDocument, url: URL) async -> Script? { - print("🚀 Starting batch processing for: \(url.lastPathComponent)") - - await MainActor.run { - isLoading = true - errorMessage = nil - output = "" - } - - do { - // Step 1: Extract text - await MainActor.run { output = "Extracting text from PDF..." } - let extractedText = extractTextFromPDF(pdfDocument) - print("📄 Extracted \(extractedText.count) characters from PDF") - - if extractedText.isEmpty { - await MainActor.run { - errorMessage = "No text could be extracted from PDF" - isLoading = false - } - return nil - } - - // Step 2: Process with batch approach - return try await processBatchedText(extractedText, fileName: url.lastPathComponent) - - } catch { - print("❌ Error in batch processing: \(error)") - await MainActor.run { - errorMessage = error.localizedDescription - isLoading = false - } - return nil - } - } - - // MARK: - Batch Processing Logic - - private func processBatchedText(_ text: String, fileName: String) async throws -> Script? { - // Create batches - each batch will have 3 mini-chunks - let miniChunks = createMiniChunks(text, maxChunkSize: 2000) - let batches = createBatches(from: miniChunks, batchSize: 3) - - print("📄 Created \(miniChunks.count) mini-chunks in \(batches.count) batches") - - await MainActor.run { - processingStatus = "Processing \(batches.count) batches..." - streamingOutput = "" - } - - var allLines: [SimplifiedScriptLine] = [] - var allSections: [SimplifiedScriptSection] = [] - var currentLineNumber = 1 - - for (batchIndex, batch) in batches.enumerated() { - print("🔄 Processing batch \(batchIndex + 1)/\(batches.count)") - - await MainActor.run { - processingStatus = "Processing batch \(batchIndex + 1) of \(batches.count)..." - output = "Processing batch \(batchIndex + 1) of \(batches.count)..." - } - - // Process entire batch in one API call - if let batchResult = try await processBatchWithRetry( - batch: batch, - batchIndex: batchIndex, - startingLineNumber: currentLineNumber, - fileName: fileName - ) { - print("🔍 Batch \(batchIndex + 1) returned \(batchResult.lines.count) lines") - - allLines.append(contentsOf: batchResult.lines) - - // Adjust section line numbers - let adjustedSections = batchResult.sections.map { section in - var adjusted = section - if let endLine = adjusted.endLineNumber { - adjusted.endLineNumber = endLine + currentLineNumber - 1 - } - adjusted.startLineNumber = (section.startLineNumber ?? 1) + currentLineNumber - 1 - return adjusted - } - allSections.append(contentsOf: adjustedSections) - - currentLineNumber += batchResult.lines.count - print("🔍 Next batch will start at line: \(currentLineNumber)") - } - - // Delay between batches - if batchIndex < batches.count - 1 { - await MainActor.run { - processingStatus = "Waiting 2 seconds before next batch..." - } - try await Task.sleep(nanoseconds: 2_000_000_000) - } - } - - // Convert to final script - let finalScript = createFinalScript( - lines: allLines, - sections: allSections, - fileName: fileName - ) - - print("✅ Batch processing complete: \(allLines.count) total lines") - - await MainActor.run { - processingStatus = "Complete! \(allLines.count) lines processed" - output = "Successfully processed \(batches.count) batches with \(allLines.count) total lines" - isLoading = false - } - - return finalScript.toSwiftDataModel() - } - - // MARK: - Chunking Logic - - private func createMiniChunks(_ text: String, maxChunkSize: Int) -> [String] { - var chunks: [String] = [] - let lines = text.components(separatedBy: .newlines) - var currentChunk = "" - - for line in lines { - let potentialChunk = currentChunk.isEmpty ? line : currentChunk + "\n" + line - - if potentialChunk.count > maxChunkSize && !currentChunk.isEmpty { - chunks.append(currentChunk) - currentChunk = line - } else { - currentChunk = potentialChunk - } - } - - if !currentChunk.isEmpty { - chunks.append(currentChunk) - } - - return chunks - } - - private func createBatches(from chunks: [String], batchSize: Int) -> [[String]] { - var batches: [[String]] = [] - - for i in stride(from: 0, to: chunks.count, by: batchSize) { - let endIndex = min(i + batchSize, chunks.count) - let batch = Array(chunks[i.. SimplifiedScript? { - var lastError: Error? - - for attempt in 1...maxRetries { - do { - return try await processBatch( - batch: batch, - batchIndex: batchIndex, - startingLineNumber: startingLineNumber, - fileName: fileName - ) - } catch { - lastError = error - print("❌ Batch \(batchIndex + 1) attempt \(attempt) failed: \(error)") - - if attempt < maxRetries { - let delay = Double(attempt * 3) // Longer delays for batches - print("⏳ Retrying batch \(batchIndex + 1) in \(delay) seconds...") - try await Task.sleep(nanoseconds: UInt64(delay * 1_000_000_000)) - } - } - } - - throw lastError ?? APIError.runFailed - } - - private func processBatch(batch: [String], batchIndex: Int, startingLineNumber: Int, fileName: String) async throws -> SimplifiedScript? { - // Combine all chunks in batch with separators - let combinedText = batch.enumerated().map { index, chunk in - "=== CHUNK \(index + 1) ===\n\(chunk)" - }.joined(separator: "\n\n") - - let batchPrompt = """ - Convert this batch of text chunks to simplified YAML format. - - ⚠️ CRITICAL LINE NUMBERING: - - Start line numbering from \(startingLineNumber) - - Continue sequentially across ALL chunks in this batch - - Do NOT reset to 1 between chunks - - Example: if starting at 156, continue 156, 157, 158... across all chunks - - This batch contains \(batch.count) text chunks combined together. - Process them as one continuous document. - - BATCH PROCESSING RULES: - - Treat all chunks as one continuous script - - Maintain sequential line numbering throughout - - Combine sections that span multiple chunks - - Only include essential YAML fields - - \(systemPrompt) - - Combined Text Chunks: - \(combinedText) - """ - - let url = URL(string: "\(baseURL)/chat/completions")! - var request = URLRequest(url: url) - request.httpMethod = "POST" - request.setValue("application/json", forHTTPHeaderField: "Content-Type") - request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization") - - let requestBody: [String: Any] = [ - "model": "gpt-4o-mini", - "messages": [ - [ - "role": "user", - "content": batchPrompt - ] - ], - "max_tokens": 8000, // Larger limit for batches - "temperature": 0.1 - ] - - request.httpBody = try JSONSerialization.data(withJSONObject: requestBody) - - print("📤 Processing batch \(batchIndex + 1): \(combinedText.count) characters") - - // Enhanced URLSession config - let config = URLSessionConfiguration.default - config.waitsForConnectivity = true - config.timeoutIntervalForRequest = 120.0 - config.timeoutIntervalForResource = 600.0 - let session = URLSession(configuration: config) - - let (data, response) = try await session.data(for: request) - - guard let httpResponse = response as? HTTPURLResponse else { - throw APIError.assistantCreationFailed - } - - print("📤 Batch \(batchIndex + 1) response status: \(httpResponse.statusCode)") - - if httpResponse.statusCode != 200 { - let responseString = String(data: data, encoding: .utf8) ?? "Unknown error" - print("❌ Batch \(batchIndex + 1) failed: \(responseString)") - throw APIError.assistantCreationFailed - } - - if let result = try JSONSerialization.jsonObject(with: data) as? [String: Any], - let choices = result["choices"] as? [[String: Any]], - let firstChoice = choices.first, - let message = firstChoice["message"] as? [String: Any], - let content = message["content"] as? String { - - print("✅ Batch \(batchIndex + 1) response: \(content.count) characters") - - // Better validation - if content.count < 50 || !content.contains("lines:") { - print("⚠️ Batch \(batchIndex + 1) response too short or malformed") - throw APIError.runFailed - } - - return try parseBatchYAML(content) - } - - throw APIError.messagesRetrievalFailed - } - - // MARK: - YAML Parsing for Batches - - private func parseBatchYAML(_ yamlText: String) throws -> SimplifiedScript { - var processedYAML = yamlText.trimmingCharacters(in: .whitespacesAndNewlines) - - // Remove markdown markers - if processedYAML.hasPrefix("```yaml") { - processedYAML = String(processedYAML.dropFirst(7)) - } else if processedYAML.hasPrefix("```") { - processedYAML = String(processedYAML.dropFirst(3)) - } - - if processedYAML.hasSuffix("```") { - processedYAML = String(processedYAML.dropLast(3)) - } - - processedYAML = processedYAML.trimmingCharacters(in: .whitespacesAndNewlines) - - // Clean escape sequences - processedYAML = processedYAML.replacingOccurrences(of: "\\;", with: ";") - processedYAML = processedYAML.replacingOccurrences(of: "\\:", with: ":") - processedYAML = processedYAML.replacingOccurrences(of: "\\!", with: "!") - processedYAML = processedYAML.replacingOccurrences(of: "\\?", with: "?") - - // Ensure sections field exists - if !processedYAML.contains("sections:") { - processedYAML += "\nsections: []" - } - - // Replace placeholder IDs - while processedYAML.contains("PLACEHOLDER_ID") { - processedYAML = processedYAML.replacingOccurrences( - of: "PLACEHOLDER_ID", - with: UUID().uuidString, - options: [], - range: processedYAML.range(of: "PLACEHOLDER_ID") - ) - } - - return try parseYAMLToModel(processedYAML, to: SimplifiedScript.self) - } - - // MARK: - Helper Methods - - private func extractTextFromPDF(_ document: PDFDocument) -> String { - guard let pageCount = document.pageCount as Int?, pageCount > 0 else { - return "" - } - - var fullText = "" - - for pageIndex in 0.. CodableScript { - let fullLines = lines.map { simplifiedLine in - CodableScriptLine( - id: simplifiedLine.id, - lineNumber: simplifiedLine.lineNumber, - content: simplifiedLine.content, - isMarked: false, - markColor: nil, - notes: "" - ) - } - - let fullSections = sections.map { simplifiedSection in - CodableScriptSection( - id: simplifiedSection.id, - title: simplifiedSection.title, - type: simplifiedSection.type, - startLineNumber: simplifiedSection.startLineNumber, - endLineNumber: simplifiedSection.endLineNumber, - notes: "" - ) - } - - return CodableScript( - id: UUID(), - name: fileName.replacingOccurrences(of: ".pdf", with: ""), - dateAdded: Date(), - lines: fullLines, - sections: fullSections - ) - } - - private func parseYAMLToModel(_ yamlText: String, to modelType: T.Type) throws -> T { - let yamlObject = try Yams.load(yaml: yamlText) - let jsonData = try JSONSerialization.data(withJSONObject: yamlObject as Any) - - let decoder = JSONDecoder() - - let formatter = ISO8601DateFormatter() - formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] - decoder.dateDecodingStrategy = .custom { decoder in - let container = try decoder.singleValueContainer() - let dateString = try container.decode(String.self) - - if let date = formatter.date(from: dateString) { - return date - } - - formatter.formatOptions = [.withInternetDateTime] - if let date = formatter.date(from: dateString) { - return date - } - - return Date() - } - - return try decoder.decode(modelType, from: jsonData) - } -} - -// MARK: - Models (Same as before) - -struct SimplifiedScript: Codable { - let id: UUID - let name: String - let dateAdded: Date - let lines: [SimplifiedScriptLine] - let sections: [SimplifiedScriptSection] -} - -struct SimplifiedScriptLine: Codable { - let id: UUID - let lineNumber: Int - let content: String -} - -struct SimplifiedScriptSection: Codable { - let id: UUID - let title: String - let type: SectionType - var startLineNumber: Int? - var endLineNumber: Int? - - init(from decoder: Decoder) throws { - let container = try decoder.container(keyedBy: CodingKeys.self) - - id = try container.decode(UUID.self, forKey: .id) - title = try container.decode(String.self, forKey: .title) - startLineNumber = try container.decodeIfPresent(Int.self, forKey: .startLineNumber) - endLineNumber = try container.decodeIfPresent(Int.self, forKey: .endLineNumber) - - if let typeString = try? container.decode(String.self, forKey: .type) { - switch typeString.lowercased() { - case "act": type = .act - case "scene": type = .scene - case "preset", "set", "set_change": type = .preset - case "song_number", "song", "musical_number", "number": type = .songNumber - case "custom", "other", "misc": type = .custom - default: type = .custom - } - } else { - type = .custom - } - } -} - -struct CodableScript: Codable { - let id: UUID - let name: String - let dateAdded: Date - let lines: [CodableScriptLine] - let sections: [CodableScriptSection] - - func toSwiftDataModel() -> Script { - let script = Script(id: id, name: name, dateAdded: dateAdded, lines: []) - script.lines = lines.map { $0.toSwiftDataModel() } - script.sections = sections.map { $0.toSwiftDataModel() } - return script - } -} - -struct CodableScriptLine: Codable { - let id: UUID - let lineNumber: Int - let content: String - let isMarked: Bool - let markColor: String? - let notes: String - - func toSwiftDataModel() -> ScriptLine { - let line = ScriptLine(id: id, lineNumber: lineNumber, content: content) - line.isMarked = isMarked - line.markColor = markColor - line.notes = notes - return line - } -} - -struct CodableScriptSection: Codable { - let id: UUID - let title: String - let type: SectionType - let startLineNumber: Int - let endLineNumber: Int? - let notes: String - - init(id: UUID, title: String, type: SectionType, startLineNumber: Int?, endLineNumber: Int?, notes: String) { - self.id = id - self.title = title - self.type = type - self.startLineNumber = startLineNumber ?? 1 - self.endLineNumber = endLineNumber - self.notes = notes - } - - func toSwiftDataModel() -> ScriptSection { - let section = ScriptSection(id: id, title: title, type: type, startLineNumber: startLineNumber) - section.endLineNumber = endLineNumber - section.notes = notes - return section - } -} - -enum APIError: Error, LocalizedError { - case uploadFailed - case assistantCreationFailed - case threadCreationFailed - case messageCreationFailed - case runCreationFailed - case runRetrievalFailed - case runFailed - case runTimeout - case messagesRetrievalFailed - - var errorDescription: String? { - switch self { - case .uploadFailed: return "Failed to upload file" - case .assistantCreationFailed: return "Failed to create assistant" - case .threadCreationFailed: return "Failed to create thread" - case .messageCreationFailed: return "Failed to create message" - case .runCreationFailed: return "Failed to create run" - case .runRetrievalFailed: return "Failed to retrieve run status" - case .runFailed: return "Run failed or was cancelled" - case .runTimeout: return "Run timed out" - case .messagesRetrievalFailed: return "Failed to retrieve messages" - } - } -} diff --git a/Promptly/Assets.xcassets/.DS_Store b/Promptly/Assets.xcassets/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..61ab1c0129432208fcd2c47f6bfded359514bb66 GIT binary patch literal 10244 zcmeHMTWl3Y7@mJyVAn2oS__n=*n?G4vGm5RT*T80mr}5#r+3ifIcJx4Vb5+oyXO?C zjWucv>Wg@J6pS&LXoyCLzJQk~J{UtZCqytB;wA9pgYqCM#(!q^R0=jJK|>#QPImtN z|Cw(t-~Rt}W=aTwrnFv1NQe+3QNMpQnxUjd9)dbw20#ush_B`~CQkWx8H% z?P-wm@@LGPCC`!zy&Tzzwd1<#PmfFFzPRFt0x%XJS+cbuww4~Xwy_jhmDGo4o z1FP)pF>T!$ZgSGL?s9BI6v&FKL}}^B$jZ9LXYBQI4NWNO?RTA&*UTG>Qkr&+4g=dVGe!%xh)or<-r9#)Gj6w$a#2=< zYXw=#kz41LExKz-&GOajn>Mz!XA5ajv8v9Q+mkU}Gj17uF*jk@x@iw|4V$_**pFY! z_RL+Tkx~?TxYLd$jcjodEi9d{X}#&V`Ec6w9-$SooGqqBg$uQEb*GNw*yiXAq|5Y} z!b|SZ%C#M=q&a0^uKR$+TBX|QA_p>!iHi5AOV!Rj=rsy;g{4-l*Sf4&+^`g?i+)z9 ztF)esn4Ch}gmI0!PV2?+P2z}Mr3k8o`9AFVLDuuunCrC<8Mf#g=g?fPX??7uQP;V# zu!t6Go3$-6{Yvh42V*IteHi^Y>)Y>_W&T~!&f40bo1QaX*ue^^X=h9f735q*j8c*F z(u(jB@mlfW?sNQ&lc|*CD)^FZ6c&=jqyaYuon#j-P>+-6$U$74VJ&Qe&Cm)R&;z~D4?92y6Ly0INyxyXFba>s z80?4V;Q+h{FTpEt7~X(4;Vn1@pTMVZ5>CMxI1AsvkMI+mhYRp4{0W!gFNsR?B~4l& zRZBHegVZQ(k=mv0V(d~bK>H`oNs6I9wE%T9{$eB@nIzCQZEoG7Zk_glcIH+VTDO(V znL97U;;rG{rg7gC&Ybh#E2Dyk!h`_gp};-mDj&{b1TH93Z!e!Lbh|KyjJ+}o1Uk#F zU2&(3F+^whYUSOiw$YhFEn8YGW4uy{t7=*OG6kcO=K1QsM7QTh=;fJd{eA`41hl^A7@GG|o=Od>shgv>k+k`1aN7DIci*UWz3EP9bLu~j{ z>N68b*_LAuVEtTlGi;Co1_A~G1_A~G2Bs|od17QCcK^R&^8f!&+wlhj3m6C(xN!y` zza`SrgzZeWgJpN^A$%Ufhb2~TOh^vFj8$QFejSeryN<8)ZT{s7FAw{+F(Ek|aU70P X+~)u9{|pGu|2O-hEja(*H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 Action + var programChangeMapping: [Int: RemoteAction] = [:] + + // Callback to execute remote functions (same pattern as bluetoothManager) + var onButtonPress: ((String) -> Void)? + + public init() { } + + public func setup(midiManager: ObservableMIDIManager) { + self.midiManager = midiManager + + do { + print("Starting MIDI services.") + try midiManager.start() + } catch { + print("Error starting MIDI services:", error.localizedDescription) + } + + setupConnections() + } + + private func setupConnections() { + guard let midiManager else { return } + + do { + try midiManager.addInputConnection( + to: .allOutputs, + tag: "Listener", + filter: .owned(), + receiver: .events { [weak self] events,_,_ in + self?.handleMIDIEvents(events) + } + ) + } catch { + print("Error setting up MIDI connection:", error.localizedDescription) + } + + // Keep your broadcaster + do { + try midiManager.addOutputConnection( + to: .allInputs, + tag: "Broadcaster", + filter: .owned() + ) + } catch { + print("Error setting up broadcaster connection:", error.localizedDescription) + } + } + + private func handleMIDIEvents(_ events: [MIDIEvent]) { + for event in events { + switch event { + case .programChange(let programChange): + handleProgramChange(program: programChange.program, channel: programChange.channel) + default: + // Log other events for debugging + print("MIDI Event: \(event)") + } + } + } + + private func handleProgramChange(program: UInt7, channel: UInt4) { + let programInt = Int(program) + + // Only handle program changes 0-32 + guard programInt <= 32 else { + print("Program change \(programInt) out of range (0-32)") + return + } + + print("Received PC \(programInt) on channel \(channel)") + + // Check if user has mapped this program change to an action + guard let action = programChangeMapping[programInt], + action != .none else { + print("No action mapped for PC \(programInt)") + return + } + + print("Executing MIDI action: \(action.rawValue)") + + // Convert to the same format as your Bluetooth remote + let buttonValue: String + switch action { + case .previousLine: + buttonValue = "0" + case .nextLine: + buttonValue = "1" + case .goCue: + buttonValue = "2" + case .none: + return + } + + // Execute on main thread using the same callback pattern + DispatchQueue.main.async { + self.onButtonPress?(buttonValue) + } + } + + // Configuration methods + func mapProgramChange(_ program: Int, to action: RemoteAction) { + guard program >= 0 && program <= 32 else { return } + programChangeMapping[program] = action + print("Mapped PC \(program) to \(action.rawValue)") + } + + func clearMapping(for program: Int) { + programChangeMapping[program] = .none + } + + func sendTestMIDIEvent() { + let conn = midiManager?.managedOutputConnections["Broadcaster"] + try? conn?.send(event: .cc(.expression, value: .midi1(64), channel: 0)) + } +} diff --git a/Promptly/MQTT/MQTTManager.swift b/Promptly/MQTT/MQTTManager.swift index 7c58439..8e77b7f 100644 --- a/Promptly/MQTT/MQTTManager.swift +++ b/Promptly/MQTT/MQTTManager.swift @@ -8,6 +8,7 @@ import Foundation import MQTTNIO import Combine +internal import NIOCore class MQTTManager: ObservableObject { private var client: MQTTClient? diff --git a/Promptly/Models/Performance.swift b/Promptly/Models/Performance.swift index dbc397f..65f8868 100644 --- a/Promptly/Models/Performance.swift +++ b/Promptly/Models/Performance.swift @@ -7,6 +7,7 @@ import Foundation import SwiftData +import SwiftUI @Model class Performance: Identifiable { @@ -354,3 +355,68 @@ class ReportShowStop: Identifiable { self.actNumber = actNumber } } + + +struct CallLogEntry: Identifiable { + let id = UUID() + let timestamp: Date + let message: String + let type: CallType + + enum CallType { + case call, action, emergency, note + + var color: Color { + switch self { + case .call: return .blue + case .action: return .green + case .emergency: return .red + case .note: return .orange + } + } + } +} + +extension PerformanceState { + var displayName: String { + switch self { + case .preShow: return "Pre-Show" + case .houseOpen: return "House Open" + case .clearance: return "Stage Clear" + case .inProgress(let act): return "Act \(act) Running" + case .interval(let interval): return "Interval \(interval)" + case .completed: return "Show Complete" + case .stopped: return "Show Stopped" + } + } + + var color: Color { + switch self { + case .preShow: return .gray + case .houseOpen: return .blue + case .clearance: return .orange + case .inProgress: return .green + case .interval: return .purple + case .completed: return .green + case .stopped: return .red + } + } + + var actNumber: Int? { + switch self { + case .inProgress(let actNumber): return actNumber + default: return nil + } + } +} + +extension CueType { + var isStandby: Bool { + switch self { + case .lightingStandby, .soundStandby, .flyStandby, .automationStandby: + return true + default: + return false + } + } +} diff --git a/Promptly/Models/Script.swift b/Promptly/Models/Script.swift index 6ee6b42..ca9f5d3 100644 --- a/Promptly/Models/Script.swift +++ b/Promptly/Models/Script.swift @@ -7,6 +7,7 @@ import Foundation import SwiftData +import SwiftUI @Model class Script: Identifiable { @@ -408,3 +409,56 @@ extension Cue { self.alertSound = dict["alertSound"] as? String } } + +extension UIColor { + convenience init(hex: String) { + let hex = hex.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) + var int: UInt64 = 0 + Scanner(string: hex).scanHexInt64(&int) + let a, r, g, b: UInt64 + switch hex.count { + case 3: // RGB (12-bit) + (a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17) + case 6: // RGB (24-bit) + (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF) + case 8: // ARGB (32-bit) + (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF) + default: + (a, r, g, b) = (1, 1, 1, 0) + } + + self.init( + red: CGFloat(r) / 255, + green: CGFloat(g) / 255, + blue: CGFloat(b) / 255, + alpha: CGFloat(a) / 255 + ) + } +} + +extension Color { + init(hex: String) { + let hex = hex.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) + var int: UInt64 = 0 + Scanner(string: hex).scanHexInt64(&int) + let a, r, g, b: UInt64 + switch hex.count { + case 3: + (a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17) + case 6: + (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF) + case 8: + (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF) + default: + (a, r, g, b) = (1, 1, 1, 0) + } + + self.init( + .sRGB, + red: Double(r) / 255, + green: Double(g) / 255, + blue: Double(b) / 255, + opacity: Double(a) / 255 + ) + } +} diff --git a/Promptly/PromptlyApp.swift b/Promptly/PromptlyApp.swift index 0c326fc..d38c69d 100644 --- a/Promptly/PromptlyApp.swift +++ b/Promptly/PromptlyApp.swift @@ -7,19 +7,35 @@ import SwiftUI import SwiftData +import MIDIKitIO + @main struct PromptlyApp: App { + @State var midiManager = ObservableMIDIManager( + clientName: "DSMPromptMIDIManager", + model: "DSMPrompt", + manufacturer: "UrbanMechanicsLTD" + ) + + @State var midiHelper = MIDIHelper() + init() { + #if !os(macOS) UIScrollView.appearance().scrollsToTop = false + #endif if UserDefaults.standard.string(forKey: "deviceUUID") == nil { UserDefaults.standard.set(UUID().uuidString, forKey: "deviceUUID") } + + midiHelper.setup(midiManager: midiManager) } var body: some Scene { WindowGroup { HomeScreenView() + .environment(midiManager) + .environment(midiHelper) } .modelContainer(for: [Show.self, PerformanceReport.self]) } diff --git a/Promptly/Views/.DS_Store b/Promptly/Views/.DS_Store index 81f7e80d876e2639e82f1df2fa92e4dd61e454eb..151c6b39ae80387519f3675f43681cff3fcce4e1 100644 GIT binary patch delta 2523 zcmcImYitx%6h3D+@KuPe2H<_Ki z_k44|@1Aq!oY}f^>p&?0;KGP91E8Az3UrxwCehC`0HxAMX;tonG)bdHfDrV71_9{t z_l#`t7}aI`Y$PL3S0=0gpA|5pr90R^Ko%O69b6ipo{=eJ3R%KqExo~^mT=4|1iNXE{$O2Qmp|A=7U9$H+~wIBVH=0;()Ki;?27tK#u6+08DbuU& zpFMx!;>M=9gE_M$DK~HRpr&hGezo1FcdG$K3-qiS(v)y-ho-23u(n=PL!!v`wg!Ct zYCPM?90i54+!pE5Hbk`WCgu@@cs6r7iscfiQz70JLB)JX5!gX79yLvO%O&y})3hk0 z(yuc1M7dlcwd!;Tf%(M59`{IIskKiFC?eC7E7j6Wd6nPSrTRstB#9o7X347u)sU_Q z10rioF3yqW$!+vT^pj*=bmG0q<%gm~{kTcJ+^2_|2Gl^3oldc+M3&o4%K}A7EIOPl zTV5(J6WCWmhu-T8sZB!xH54CPe^?OKGDl+F+^b&E!ohK4vuR{nU{DK_|0y(di|C>U zj9|v3sOU1&&@zxpK{1p=4b(y_tcM^x4clQi9Du`c1U`pv;4EB$AK@DO0e`}EUxCNiXB_p^4U&NPi z7w*M3@h#kk2k|5P7?0zZ_${8o(|8dt;bpvnzu;eZ9dB@qE97LZh^yqPxEgK&w~TAz zRvJGSm7p(?h2@O0aQPi)p*Ws}#&4|8m{MFGr6ekHOP(@;;>yzF$!Wzjnl`eGYYVXOirY^^C(Ak#>a~a<%0QAt;B$GR{VFPdfG^!aEuL4 zt+6p9_rJ#FB%FeC6qjG&8fH*L7?xlKR^uG3#l?wOG~x<;bSxU3sN#C;p@{Th7$X#s zjkp&}&dscH(Z_gRkQ2_y+FBcW@MAcmNOM5j=|T;|KT|#_ydVhDfnbjIh(1 z1Qv$ag}e$J-7<*iG^B!y4qMB7p~7&wb7EHu4yCtQy)k@f-{l+0-jo6Lu#v(Tq;Q6< znQ=ReUCkaac1^l&f%3r& z$qYpsFD_=DY+%B|$_SKYnXI58y*X9Gk$G~D^6bs*94s7+Twt*S+LxIoOX@$FTq__q z*+ooo@)N-qlb=g|o}4AkKUq-b?&dsMbw)> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17) - case 6: // RGB (24-bit) - (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF) - case 8: // ARGB (32-bit) - (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF) - default: - (a, r, g, b) = (1, 1, 1, 0) - } - - self.init( - red: CGFloat(r) / 255, - green: CGFloat(g) / 255, - blue: CGFloat(b) / 255, - alpha: CGFloat(a) / 255 - ) - } -} + // MARK: - Error types enum ExportError: Error, LocalizedError { diff --git a/Promptly/Views/Home Screen/HomeScreenView.swift b/Promptly/Views/Home Screen/HomeScreenView.swift index c7c36b2..278bf86 100644 --- a/Promptly/Views/Home Screen/HomeScreenView.swift +++ b/Promptly/Views/Home Screen/HomeScreenView.swift @@ -7,6 +7,8 @@ import SwiftUI import SwiftData +import MIDIKitIO + struct HomeScreenView: View { @Query var shows: [Show] = [] @@ -19,6 +21,8 @@ struct HomeScreenView: View { @State var availableShows: [String: String] = [:] @StateObject private var mqttManager = MQTTManager() + @Environment(ObservableMIDIManager.self) private var midiManager + @Environment(MIDIHelper.self) private var midiHelper var body: some View { NavigationStack { @@ -100,6 +104,14 @@ struct HomeScreenView: View { Label("Network Settings", systemImage: "network") } + NavigationLink( + destination: BluetoothMIDIView() + .navigationTitle("Remote Peripheral Config") + .navigationBarTitleDisplayMode(.inline) + ) { + Label("MIDI", systemImage: "av.remote") + } + Button { self.addShow = true } label: { diff --git a/Promptly/Views/MIDI/ConnMIDIBle.swift b/Promptly/Views/MIDI/ConnMIDIBle.swift new file mode 100644 index 0000000..eee1a2a --- /dev/null +++ b/Promptly/Views/MIDI/ConnMIDIBle.swift @@ -0,0 +1,45 @@ +// +// BluetoothMIDIView.swift +// MIDIKit • https://github.com/orchetect/MIDIKit +// © 2021-2025 Steffan Andrews • Licensed under MIT License +// + +#if os(iOS) + +import CoreAudioKit +import SwiftUI +import UIKit + +struct BluetoothMIDIView: UIViewControllerRepresentable { + func makeUIViewController(context: Context) -> BTMIDICentralViewController { + BTMIDICentralViewController() + } + + func updateUIViewController( + _ uiViewController: BTMIDICentralViewController, + context: Context + ) { } + + typealias UIViewControllerType = BTMIDICentralViewController +} + +class BTMIDICentralViewController: CABTMIDICentralViewController { + var uiViewController: UIViewController? + + override public func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + + navigationItem.rightBarButtonItem = UIBarButtonItem( + barButtonSystemItem: .done, + target: self, + action: #selector(doneAction) + ) + } + + @objc + public func doneAction() { + uiViewController?.dismiss(animated: true, completion: nil) + } +} + +#endif diff --git a/Promptly/Views/Multiplayer/MultiPlayerShowDetail.swift b/Promptly/Views/Multiplayer/MultiPlayerShowDetail.swift index ea3318f..fe8d685 100644 --- a/Promptly/Views/Multiplayer/MultiPlayerShowDetail.swift +++ b/Promptly/Views/Multiplayer/MultiPlayerShowDetail.swift @@ -22,89 +22,108 @@ struct MultiPlayerShowDetail: View { @State private var showingShow = false var body: some View { - VStack(alignment: .leading, spacing: 20) { - if let title = title { - Text(title) - .font(.largeTitle) - .bold() - } - - VStack(alignment: .leading, spacing: 12) { - if let location = location { - HStack { - Text("Location:") - .foregroundColor(.secondary) - Text(location) - } + ScrollView { + VStack(alignment: .leading, spacing: 20) { + if let title = title { + Text(title) + .font(.largeTitle) + .bold() } - if let scriptName = scriptName { - HStack { - Text("Script:") - .foregroundColor(.secondary) - Text(scriptName) + VStack(alignment: .leading, spacing: 12) { + if let location = location { + HStack { + Text("Location:") + .foregroundColor(.secondary) + Text(location) + } } - } - - if let status = status { - HStack { - Text("Status:") - .foregroundColor(.secondary) - Text(status) - .foregroundColor(status == "active" ? .green : .orange) + + if let scriptName = scriptName { + HStack { + Text("Script:") + .foregroundColor(.secondary) + Text(scriptName) + } + } + + if let status = status { + HStack { + Text("Status:") + .foregroundColor(.secondary) + Text(status) + .foregroundColor(status == "active" ? .green : .orange) + } + } + + if let dsmNetworkIP = dsmNetworkIP { + HStack { + Text("DSM Network IP:") + .foregroundColor(.secondary) + Text(dsmNetworkIP) + .font(.system(.body, design: .monospaced)) + } } } - if let dsmNetworkIP = dsmNetworkIP { - HStack { - Text("DSM Network IP:") - .foregroundColor(.secondary) - Text(dsmNetworkIP) - .font(.system(.body, design: .monospaced)) + Spacer() + + Button(action: { + if receivedScript != nil { + showingShow = true + } else { + isLoading = true + fetchNetwork() { script in + if let script = script { + self.receivedScript = script + } + } } + }) { + Text(receivedScript != nil ? "Join Show" : "Join") + .font(.headline) + .foregroundColor(.white) + .frame(maxWidth: .infinity) + .padding() + .background(Color.blue) + .cornerRadius(10) } } - - Spacer() - - Button(action: { - if receivedScript != nil { - showingShow = true - } else { - isLoading = true - fetchNetwork() { script in - if let script = script { - self.receivedScript = script - } - } + .padding() +#if !os(macOS) + .fullScreenCover(isPresented: $isLoading) { + ZStack { + Color.black.opacity(0.4) + .ignoresSafeArea() + ProgressView() + .scaleEffect(1.5) + .tint(.white) } - }) { - Text(receivedScript != nil ? "Join Show" : "Join") - .font(.headline) - .foregroundColor(.white) - .frame(maxWidth: .infinity) - .padding() - .background(Color.blue) - .cornerRadius(10) } - } - .padding() - .fullScreenCover(isPresented: $isLoading) { - ZStack { - Color.black.opacity(0.4) - .ignoresSafeArea() - ProgressView() - .scaleEffect(1.5) - .tint(.white) + .fullScreenCover(isPresented: $showingShow) { + if let script = self.receivedScript { + SpectatorPerformanceView(showId: UUID(uuidString: self.showID)!, script: script, mqttManager: self.mqttManager) + } } - } - .fullScreenCover(isPresented: $showingShow) { - if let script = self.receivedScript { - SpectatorPerformanceView(showId: UUID(uuidString: self.showID)!, script: script, mqttManager: self.mqttManager) +#else + .sheet(isPresented: $isLoading) { + ZStack { + Color.black.opacity(0.4) + .ignoresSafeArea() + ProgressView() + .scaleEffect(1.5) + .tint(.white) + } + } + .sheet(isPresented: $showingShow) { + if let script = self.receivedScript { + SpectatorPerformanceView(showId: UUID(uuidString: self.showID)!, script: script, mqttManager: self.mqttManager) + } + } +#endif + .onAppear { + loadShow() } - } - .onAppear { - loadShow() } } diff --git a/Promptly/Views/Performance Mode/CueTagView.swift b/Promptly/Views/Performance Mode/CueTagView.swift new file mode 100644 index 0000000..6b9dae9 --- /dev/null +++ b/Promptly/Views/Performance Mode/CueTagView.swift @@ -0,0 +1,36 @@ +// +// CueTagView.swift +// Promptly +// +// Created by Sasha Bagrov on 05/10/2025. +// + +import SwiftUI + +struct CueTagView: View { + let cue: Cue + let isCalled: Bool + + var body: some View { + HStack(spacing: 4) { + Circle() + .fill(Color(hex: cue.type.color)) + .frame(width: 8, height: 8) + + Text(cue.label) + .font(.headline) + .fontWeight(.semibold) + .lineLimit(1) + .foregroundColor(isCalled ? .secondary : .primary) + .strikethrough(isCalled) + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + .background(Color(hex: cue.type.color).opacity(isCalled ? 0.1 : 0.2)) + .cornerRadius(8) + .overlay( + RoundedRectangle(cornerRadius: 8) + .stroke(isCalled ? Color.gray : Color(hex: cue.type.color), lineWidth: 2) + ) + } +} diff --git a/Promptly/Views/Performance Mode/DSMScriptLineView.swift b/Promptly/Views/Performance Mode/DSMScriptLineView.swift new file mode 100644 index 0000000..f29adf3 --- /dev/null +++ b/Promptly/Views/Performance Mode/DSMScriptLineView.swift @@ -0,0 +1,92 @@ +// +// DSMScriptLineView.swift +// Promptly +// +// Created by Sasha Bagrov on 05/10/2025. +// + +import SwiftUI + +struct DSMScriptLineView: View { + let line: ScriptLine + let isCurrent: Bool + let onLineTap: () -> Void + let calledCues: Set + + var body: some View { + VStack(alignment: .leading, spacing: 8) { + Button(action: onLineTap) { + HStack(alignment: .top, spacing: 12) { + Text(verbatim: "\(line.lineNumber)") + .font(.caption) + .fontWeight(.medium) + .foregroundColor(isCurrent ? .black : .secondary) + .frame(width: 30, alignment: .trailing) + + VStack(alignment: .leading, spacing: 6) { + scriptLineWithCues + scriptContentWithCueArrows + } + } + .padding(.vertical, 8) + .padding(.horizontal, 12) + .background( + RoundedRectangle(cornerRadius: 6) + .fill(isCurrent ? Color.yellow : Color.clear) + ) + .overlay( + RoundedRectangle(cornerRadius: 6) + .stroke(isCurrent ? Color.orange : Color.clear, lineWidth: 2) + ) + } + .buttonStyle(PlainButtonStyle()) + } + } + + private var scriptLineWithCues: some View { + VStack(alignment: .leading, spacing: 4) { + if !line.cues.isEmpty { + HStack(spacing: 4) { + ForEach(line.cues) { cue in + CueTagView(cue: cue, isCalled: calledCues.contains(cue.id)) + } + Spacer() + } + } + } + } + + private var scriptContentWithCueArrows: some View { + let cuesByIndex = Dictionary(grouping: line.cues) { $0.position.elementIndex } + let words = line.content.split(separator: " ", omittingEmptySubsequences: false) + + return Text(buildLineWithCues(words: words, cuesByIndex: cuesByIndex)) + .font(.body) + .foregroundColor(isCurrent ? .black : .primary) + } + + private func buildLineWithCues(words: [Substring], cuesByIndex: [Int: [Cue]]) -> AttributedString { + var result = AttributedString() + + for (i, word) in words.enumerated() { + if let cues = cuesByIndex[i] { + for cue in cues { + var label = AttributedString("⬇︎ \(cue.label) ") + + label.foregroundColor = calledCues.contains(cue.id) ? .secondary : Color(hex: cue.type.color) + label.inlinePresentationIntent = .emphasized + + if calledCues.contains(cue.id) { + label.strikethroughStyle = Text.LineStyle.single + } + result += label + } + } + + var wordAttr = AttributedString(word + " ") + result += wordAttr + } + + return result + } +} diff --git a/Promptly/Views/Performance Mode/LivePerforemanceView.swift b/Promptly/Views/Performance Mode/LivePerforemanceView.swift index 72943bb..831c8a7 100644 --- a/Promptly/Views/Performance Mode/LivePerforemanceView.swift +++ b/Promptly/Views/Performance Mode/LivePerforemanceView.swift @@ -4,6 +4,7 @@ import Foundation import Network import Darwin import Combine +import MIDIKitIO struct DSMPerformanceView: View { @Environment(\.modelContext) private var modelContext @@ -16,16 +17,23 @@ struct DSMPerformanceView: View { @State private var showingEndConfirmation = false @State private var showingStopAlert = false @State private var stopReason = "" + @State private var goToLine = "" + @State private var showingGoToLineAlert = false @State private var callsLog: [CallLogEntry] = [] @State private var currentLineNumber = 1 + @State private var scrollToLineNumber: Int? = 1 @State private var allCues: [Cue] = [] @State private var calledCues: Set = [] @State private var hiddenCues: Set = [] @State private var cueHideTimers: [UUID: Timer] = [:] @State private var showingDetails = false @State private var showingSettings = false + @State private var showingResetScrollButton = false + @State private var showingRemoteSettingsAlert: Bool = false @State private var showingBluetoothSettings = false + @State private var showingGoToSectionSheet = false @State private var keepDisplayAwake = true + @State private var showAlertWhenEndingShowWithPause = false @State private var scrollToChangesActiveLine = false @State private var currentTime = Date() @State private var stopTime: Date? @@ -33,22 +41,22 @@ struct DSMPerformanceView: View { @State private var showingCueAlert = false @State private var cueAlertTimer: Timer? @State private var uuidOfShow: String = "" + @State private var showingMIDISettings = false @FocusState private var isViewFocused: Bool @StateObject private var bluetoothManager = PromptlyBluetoothManager() @StateObject private var mqttManager = MQTTManager() @StateObject private var jsonServer = JSONServer(port: 8080) + @Environment(ObservableMIDIManager.self) private var midiManager + @Environment(MIDIHelper.self) private var midiHelper + private let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() private var script: Script? { performance.show?.script } - // private var sortedLinesCache: [ScriptLine] { - // script?.lines.sorted { $0.lineNumber < $1.lineNumber } ?? [] - // } - @State private var sortedLinesCache: [ScriptLine] = [] @State private var sortedCuesCache: [Cue] = [] @@ -126,8 +134,49 @@ struct DSMPerformanceView: View { var body: some View { mainContentView - .applyDSMModifiers( + .sheet(isPresented: $showingMIDISettings) { + MIDIConfigurationView(midiHelper: midiHelper) + } + .alert("Which type?", isPresented: self.$showingRemoteSettingsAlert) { + Button("Cancel", role: .cancel) {} + Button("Bluetooth") { + self.showingBluetoothSettings = true + } + Button("MIDI") { + self.showingMIDISettings = true + } + } + .alert("Go To Line (set active)", isPresented: self.$showingGoToLineAlert) { + TextField("Line", text: self.$goToLine).keyboardType(.numberPad) + Button("Cancel", role: .cancel) { } + Button("Go To", role: .destructive) { + self.moveToLine(Int(self.goToLine) ?? 0) + self.goToLine = "" + } + } + .applyDSMCore( isViewFocused: $isViewFocused, + onAppear: setupView, + onDisappear: cleanupView, + timer: timer, + currentTime: $currentTime + ) + .applyDSMKeyboard( + sortedLinesCache: sortedLinesCache, + currentLineNumber: currentLineNumber, + onLineMove: moveToLine + ) + .applyDSMObservers( + allCues: allCues, + hiddenCues: hiddenCues, + sortedLinesCache: sortedLinesCache, + script: script, + currentState: $currentState, + onCacheUpdate: updateCuesCache, + onScriptChange: handleScriptChange, + onStateChange: handleStateChange + ) + .applyDSMAlerts( showingStopAlert: $showingStopAlert, showingEndConfirmation: $showingEndConfirmation, showingBluetoothSettings: $showingBluetoothSettings, @@ -145,9 +194,8 @@ struct DSMPerformanceView: View { isShowRunning: $isShowRunning, canMakeQuickCalls: canMakeQuickCalls, bluetoothManager: bluetoothManager, - onAppear: setupView, - onDisappear: cleanupView, - onStateChange: handleStateChange, + showAlertWhenEndingShowWithPause: $showAlertWhenEndingShowWithPause, + endPerformanceWithoutEnd: endPerformanceWithoutEnd, onStartShow: startShow, onStopShow: { showingStopAlert = true }, onEndShow: { showingEndConfirmation = true }, @@ -155,16 +203,8 @@ struct DSMPerformanceView: View { onStartNextAct: startNextAct, onEmergencyStop: emergencyStop, onEndPerformance: endPerformance, - onCacheUpdate: updateCuesCache, - onScriptChange: handleScriptChange, - onLineMove: moveToLine, - onCueExecute: executeNextCue, - timer: timer, - currentTime: $currentTime, - allCues: allCues, - hiddenCues: hiddenCues, - sortedLinesCache: sortedLinesCache, - script: script + goToLine: goToLine, + showingGoToSectionSheet: $showingGoToSectionSheet ) } @@ -216,6 +256,7 @@ struct DSMPerformanceView: View { private func setupView() { isViewFocused = true + if keepDisplayAwake { UIApplication.shared.isIdleTimerDisabled = true } @@ -244,25 +285,35 @@ struct DSMPerformanceView: View { ) let showUUID = show.id.uuidString - print("🚀 Setting uuidOfShow to: '\(showUUID)'") + print("🎭 Setting uuidOfShow to: '\(showUUID)'") uuidOfShow = showUUID - print("🚀 Sending initial line with UUID: '\(showUUID)'") + print("🎭 Sending initial line with UUID: '\(showUUID)'") mqttManager.sendData(to: "shows/\(showUUID)/line", message: "1") } + // Existing Bluetooth setup bluetoothManager.onButtonPress = { value in - if value == "1" { - withAnimation(.easeOut(duration: 0.1)) { - moveToLine(currentLineNumber + 1) - } - } else if value == "0" { - withAnimation(.easeOut(duration: 0.1)) { - moveToLine(currentLineNumber - 1) - } - } else if value == "2" { - executeNextCue() + handleRemoteButtonPress(value) + } + + // NEW: MIDI setup using the same handler + midiHelper.onButtonPress = { value in + handleRemoteButtonPress(value) + } + } + + private func handleRemoteButtonPress(_ value: String) { + if value == "1" { + withAnimation(.easeOut(duration: 0.1)) { + moveToLine(currentLineNumber + 1) + } + } else if value == "0" { + withAnimation(.easeOut(duration: 0.1)) { + moveToLine(currentLineNumber - 1) } + } else if value == "2" { + executeNextCue() } } @@ -352,23 +403,41 @@ struct DSMPerformanceView: View { } HStack(spacing: 8) { - Button(action: { - showingBluetoothSettings = true - }) { - HStack(spacing: 4) { - Image(systemName: bluetoothManager.isConnected ? "antenna.radiowaves.left.and.right" : "antenna.radiowaves.left.and.right.slash") - .foregroundColor(bluetoothManager.isConnected ? .blue : .secondary) - if bluetoothManager.isConnected { - Text("Remote") - .font(.caption) + if self.showingResetScrollButton { + Button { + self.scrollToLineNumber = self.currentLineNumber + self.showingResetScrollButton = false + + DispatchQueue.main.asyncAfter(deadline: .now() + 2) { + self.scrollToLineNumber = nil } + } label: { + Image(systemName: "chevron.up") } + .buttonStyle(.bordered) } - .buttonStyle(.bordered) - Button("Settings") { - showingSettings = true - } + Menu(content: { + Button(action: { + showingRemoteSettingsAlert = true + }) { + Label( + "Remotes", + systemImage: "antenna.radiowaves.left.and.right" + ) + } + + Button { + showingSettings = true + } label: { + Label( + "Settings", + systemImage: "gear" + ) + } + }, label: { + Image(systemName: "ellipsis.circle") + }) .buttonStyle(.bordered) Button("Details") { @@ -376,8 +445,9 @@ struct DSMPerformanceView: View { } .buttonStyle(.bordered) + // Stop / start button if isShowRunning { - Button("STOP", role: .destructive) { + Button("E STOP", role: .destructive) { showingStopAlert = true } .buttonStyle(.borderedProminent) @@ -419,7 +489,7 @@ struct DSMPerformanceView: View { HStack(spacing: 8) { Button("Go to Line") { - + self.showingGoToLineAlert = true } .font(.caption) .padding(.horizontal, 8) @@ -508,7 +578,6 @@ struct DSMPerformanceView: View { private var scriptContentView: some View { let showUUID = self.uuidOfShow - print("🔍 scriptContentView rendering - uuidOfShow: '\(showUUID)'") return ScrollViewReader { proxy in ScrollView { @@ -518,10 +587,6 @@ struct DSMPerformanceView: View { line: line, isCurrent: line.lineNumber == currentLineNumber, onLineTap: { - print("🎯 Tapped line \(line.lineNumber)") - print("🔍 showUUID in closure: '\(showUUID)'") - print("🔍 self.uuidOfShow in closure: '\(self.uuidOfShow)'") - currentLineNumber = line.lineNumber self.mqttManager.sendData(to: "shows/\(showUUID)/line", message: "\(line.lineNumber)") }, @@ -537,6 +602,24 @@ struct DSMPerformanceView: View { .onChange(of: currentLineNumber) { _, newValue in proxy.scrollTo("line-\(newValue)", anchor: .center) } + .onChange(of: scrollToLineNumber) { _, newValue in + print("got value (new) to scroll to: \(String(describing: newValue))") + if let value = newValue { + proxy.scrollTo("line-\(value)", anchor: .center) + print("scrolled") + if value != currentLineNumber { + self.showingResetScrollButton = true + print("button reset") + } + } + } + .onScrollPhaseChange { a, b in + if a.isScrolling { + withAnimation(.interactiveSpring) { + self.showingResetScrollButton = true + } + } + } } } @@ -809,90 +892,6 @@ struct DSMSectionBadge: View { } } -struct DSMScriptLineView: View { - let line: ScriptLine - let isCurrent: Bool - let onLineTap: () -> Void - let calledCues: Set - - var body: some View { - VStack(alignment: .leading, spacing: 8) { - Button(action: onLineTap) { - HStack(alignment: .top, spacing: 12) { - Text("\(line.lineNumber)") - .font(.caption) - .fontWeight(.medium) - .foregroundColor(isCurrent ? .black : .secondary) - .frame(width: 30, alignment: .trailing) - - VStack(alignment: .leading, spacing: 6) { - scriptLineWithCues - scriptContentWithCueArrows - } - } - .padding(.vertical, 8) - .padding(.horizontal, 12) - .background( - RoundedRectangle(cornerRadius: 6) - .fill(isCurrent ? Color.yellow : Color.clear) - ) - .overlay( - RoundedRectangle(cornerRadius: 6) - .stroke(isCurrent ? Color.orange : Color.clear, lineWidth: 2) - ) - } - .buttonStyle(PlainButtonStyle()) - } - } - - private var scriptLineWithCues: some View { - VStack(alignment: .leading, spacing: 4) { - if !line.cues.isEmpty { - HStack(spacing: 4) { - ForEach(line.cues) { cue in - CueTagView(cue: cue, isCalled: calledCues.contains(cue.id)) - } - Spacer() - } - } - } - } - - private var scriptContentWithCueArrows: some View { - let cuesByIndex = Dictionary(grouping: line.cues) { $0.position.elementIndex } - let words = line.content.split(separator: " ", omittingEmptySubsequences: false) - - return Text(buildLineWithCues(words: words, cuesByIndex: cuesByIndex)) - .font(.body) - .foregroundColor(isCurrent ? .black : .primary) - } - - private func buildLineWithCues(words: [Substring], cuesByIndex: [Int: [Cue]]) -> AttributedString { - var result = AttributedString() - - for (i, word) in words.enumerated() { - if let cues = cuesByIndex[i] { - for cue in cues { - var label = AttributedString("⬇︎ \(cue.label) ") - - label.foregroundColor = calledCues.contains(cue.id) ? .secondary : Color(hex: cue.type.color) - label.inlinePresentationIntent = .emphasized - - if calledCues.contains(cue.id) { - label.strikethroughStyle = Text.LineStyle.single - } - result += label - } - } - - var wordAttr = AttributedString(word + " ") - result += wordAttr - } - - return result - } -} - struct DSMFlowLayout: Layout { var spacing: CGFloat = 8 @@ -945,33 +944,7 @@ struct DSMFlowResult { } } -struct CueTagView: View { - let cue: Cue - let isCalled: Bool - - var body: some View { - HStack(spacing: 4) { - Circle() - .fill(Color(hex: cue.type.color)) - .frame(width: 8, height: 8) - - Text(cue.label) - .font(.headline) - .fontWeight(.semibold) - .lineLimit(1) - .foregroundColor(isCalled ? .secondary : .primary) - .strikethrough(isCalled) - } - .padding(.horizontal, 12) - .padding(.vertical, 8) - .background(Color(hex: cue.type.color).opacity(isCalled ? 0.1 : 0.2)) - .cornerRadius(8) - .overlay( - RoundedRectangle(cornerRadius: 8) - .stroke(isCalled ? Color.gray : Color(hex: cue.type.color), lineWidth: 2) - ) - } -} + struct DSMSettingsView: View { @Binding var keepDisplayAwake: Bool @@ -1103,6 +1076,7 @@ struct DSMDetailsView: View { @Binding var callsLog: [CallLogEntry] @Binding var currentState: PerformanceState @Binding var isShowRunning: Bool + @Binding var showAlertWhenEndingShowWithPause: Bool let canMakeQuickCalls: Bool let onStartShow: () -> Void let onStopShow: () -> Void @@ -1355,6 +1329,12 @@ struct DSMDetailsView: View { .navigationTitle("Performance Details") .navigationBarTitleDisplayMode(.inline) .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button("Pause and End") { + self.showAlertWhenEndingShowWithPause = true + } + } + ToolbarItem(placement: .navigationBarTrailing) { Button("Done") { dismiss() @@ -1516,6 +1496,17 @@ extension DSMPerformanceView { // Dismiss the DSM view after a brief delay to show the completion state DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { self.mqttManager.removeShow(id: self.uuidOfShow) + self.jsonServer.stop() + dismiss() + } + } + + private func endPerformanceWithoutEnd() { + isShowRunning = false + + DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { + self.mqttManager.removeShow(id: self.uuidOfShow) + self.jsonServer.stop() dismiss() } } @@ -1572,6 +1563,8 @@ extension DSMPerformanceView { if let line = sortedLinesCache.first(where: { $0.id == cue.lineId }) { if scrollToChangesActiveLine { currentLineNumber = line.lineNumber + } else { + scrollToLineNumber = line.lineNumber } } } @@ -1693,76 +1686,73 @@ extension DSMPerformanceView { let entry = CallLogEntry(timestamp: Date(), message: message, type: type) callsLog.append(entry) } -} - -struct CallLogEntry: Identifiable { - let id = UUID() - let timestamp: Date - let message: String - let type: CallType - enum CallType { - case call, action, emergency, note - - var color: Color { - switch self { - case .call: return .blue - case .action: return .green - case .emergency: return .red - case .note: return .orange - } - } + func goToLine(_ lineNumber: Int) { + moveToLine(lineNumber) } } -extension PerformanceState { - var displayName: String { - switch self { - case .preShow: return "Pre-Show" - case .houseOpen: return "House Open" - case .clearance: return "Stage Clear" - case .inProgress(let act): return "Act \(act) Running" - case .interval(let interval): return "Interval \(interval)" - case .completed: return "Show Complete" - case .stopped: return "Show Stopped" - } +extension View { + // Core navigation and appearance + func applyDSMCore( + isViewFocused: FocusState.Binding, + onAppear: @escaping () -> Void, + onDisappear: @escaping () -> Void, + timer: Publishers.Autoconnect, + currentTime: Binding + ) -> some View { + self + .navigationBarHidden(true) + .preferredColorScheme(.dark) + .focusable() + .focused(isViewFocused) + .onAppear(perform: onAppear) + .onDisappear(perform: onDisappear) + .onReceive(timer) { _ in currentTime.wrappedValue = Date() } } - var color: Color { - switch self { - case .preShow: return .gray - case .houseOpen: return .blue - case .clearance: return .orange - case .inProgress: return .green - case .interval: return .purple - case .completed: return .green - case .stopped: return .red - } + // Keyboard navigation + func applyDSMKeyboard( + sortedLinesCache: [ScriptLine], + currentLineNumber: Int, + onLineMove: @escaping (Int) -> Void + ) -> some View { + self + .onKeyPress(.downArrow) { + let next = sortedLinesCache.first(where: { $0.lineNumber > currentLineNumber })?.lineNumber + let fallback = sortedLinesCache.last?.lineNumber ?? 1 + withAnimation(.easeOut(duration: 0.1)) { onLineMove(next ?? fallback) } + return .handled + } + .onKeyPress(.upArrow) { + let prev = sortedLinesCache.last(where: { $0.lineNumber < currentLineNumber })?.lineNumber + let fallback = sortedLinesCache.first?.lineNumber ?? 1 + withAnimation(.easeOut(duration: 0.1)) { onLineMove(prev ?? fallback) } + return .handled + } } - var actNumber: Int? { - switch self { - case .inProgress(let actNumber): return actNumber - default: return nil - } - } -} - -extension CueType { - var isStandby: Bool { - switch self { - case .lightingStandby, .soundStandby, .flyStandby, .automationStandby: - return true - default: - return false - } + // Data change observers + func applyDSMObservers( + allCues: [Cue], + hiddenCues: Set, + sortedLinesCache: [ScriptLine], + script: Script?, + currentState: Binding, + onCacheUpdate: @escaping () -> Void, + onScriptChange: @escaping () -> Void, + onStateChange: @escaping () -> Void + ) -> some View { + self + .onChange(of: allCues) { _, _ in onCacheUpdate() } + .onChange(of: hiddenCues) { _, _ in onCacheUpdate() } + .onChange(of: sortedLinesCache) { _, _ in onCacheUpdate() } + .onChange(of: script) { _, _ in onScriptChange() } + .onChange(of: currentState.wrappedValue) { _, _ in onStateChange() } } -} - - -extension View { - func applyDSMModifiers( - isViewFocused: FocusState.Binding, + + // Alerts and modals + func applyDSMAlerts( showingStopAlert: Binding, showingEndConfirmation: Binding, showingBluetoothSettings: Binding, @@ -1780,9 +1770,8 @@ extension View { isShowRunning: Binding, canMakeQuickCalls: Bool, bluetoothManager: PromptlyBluetoothManager, - onAppear: @escaping () -> Void, - onDisappear: @escaping () -> Void, - onStateChange: @escaping () -> Void, + showAlertWhenEndingShowWithPause: Binding, + endPerformanceWithoutEnd: @escaping () -> Void, onStartShow: @escaping () -> Void, onStopShow: @escaping () -> Void, onEndShow: @escaping () -> Void, @@ -1790,44 +1779,10 @@ extension View { onStartNextAct: @escaping () -> Void, onEmergencyStop: @escaping () -> Void, onEndPerformance: @escaping () -> Void, - onCacheUpdate: @escaping () -> Void, - onScriptChange: @escaping () -> Void, - onLineMove: @escaping (Int) -> Void, - onCueExecute: @escaping () -> Void, - timer: Publishers.Autoconnect, - currentTime: Binding, - allCues: [Cue], - hiddenCues: Set, - sortedLinesCache: [ScriptLine], - script: Script? + goToLine: @escaping (Int) -> Void, + showingGoToSectionSheet: Binding ) -> some View { self - .navigationBarHidden(true) - .preferredColorScheme(.dark) - .focusable() - .focused(isViewFocused) - .onKeyPress(.downArrow) { - withAnimation(.easeOut(duration: 0.1)) { - onLineMove(sortedLinesCache.first(where: { $0.lineNumber > sortedLinesCache.first?.lineNumber ?? 0 })?.lineNumber ?? 1) - } - return .handled - } - .onKeyPress(.upArrow) { - withAnimation(.easeOut(duration: 0.1)) { - onLineMove(sortedLinesCache.first(where: { $0.lineNumber < sortedLinesCache.first?.lineNumber ?? 0 })?.lineNumber ?? 1) - } - return .handled - } - .onAppear(perform: onAppear) - .onChange(of: allCues) { _, _ in onCacheUpdate() } - .onChange(of: hiddenCues) { _, _ in onCacheUpdate() } - .onChange(of: sortedLinesCache) { _, _ in onCacheUpdate() } - .onChange(of: script) { _, _ in onScriptChange() } - .onChange(of: currentState.wrappedValue) { _, _ in onStateChange() } - .onDisappear(perform: onDisappear) - .onReceive(timer) { _ in - currentTime.wrappedValue = Date() - } .alert("Emergency Stop", isPresented: showingStopAlert) { TextField("Reason", text: stopReason) Button("Cancel", role: .cancel) { } @@ -1841,10 +1796,7 @@ extension View { PromptlyBluetoothSettingsView(bluetoothManager: bluetoothManager) } .sheet(isPresented: showingSettings) { - DSMSettingsView( - keepDisplayAwake: keepDisplayAwake, - scrollToChangesActiveLine: scrollToChangesActiveLine - ) + DSMSettingsView(keepDisplayAwake: keepDisplayAwake, scrollToChangesActiveLine: scrollToChangesActiveLine) } .sheet(isPresented: showingDetails) { DSMDetailsView( @@ -1855,6 +1807,7 @@ extension View { callsLog: callsLog, currentState: currentState, isShowRunning: isShowRunning, + showAlertWhenEndingShowWithPause: showAlertWhenEndingShowWithPause, canMakeQuickCalls: canMakeQuickCalls, onStartShow: onStartShow, onStopShow: onStopShow, @@ -1863,5 +1816,107 @@ extension View { onStartNextAct: onStartNextAct ) } + .alert("You are ending a show with pause - no performace reports will be generated", isPresented: showAlertWhenEndingShowWithPause) { + Button("Cancel", role: .cancel) { } + Button("Pause and End show", action: endPerformanceWithoutEnd) + } + .sheet(isPresented: showingGoToSectionSheet) { + DSMGoToSection(performance: performance, goToLine: goToLine) + } + } +} + +struct DSMGoToSection: View { + let performance: Performance + var goToLine: (Int) -> Void + + @Environment(\.dismiss) var dismiss + + var body: some View { + List { + Group { + if let sections = self.performance.show?.script?.sections { + ForEach(sections, id: \.id) { section in + Button { + self.goToLine(section.startLineNumber) + dismiss() + } label: { + Label( + "\(section.title)", + systemImage: "" + ) + } + } + } else { + Text("No sections found!") + } + } + .navigationTitle("Go To Section") + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button { + dismiss() + } label: { + Label( + "Dismiss", + systemImage: "" + ) + } + } + } + } + } +} + +struct MIDIConfigurationView: View { + let midiHelper: MIDIHelper + @Environment(\.dismiss) private var dismiss + + var body: some View { + NavigationView { + List { + Section("MIDI Program Change Mapping") { + ForEach(0...32, id: \.self) { program in + HStack { + Text("PC \(program)") + .font(.system(.body, design: .monospaced)) + .frame(width: 60, alignment: .leading) + + Picker("Action", selection: Binding( + get: { + midiHelper.programChangeMapping[program] ?? .none + }, + set: { + midiHelper.mapProgramChange(program, to: $0) + } + )) { + ForEach(MIDIHelper.RemoteAction.allCases, id: \.self) { action in + Text(action.rawValue).tag(action) + } + } + .pickerStyle(.menu) + } + } + } + + Section { + Text("Map MIDI Program Change messages (0-32) to remote actions. Use your MIDI controller to send Program Change messages on any channel.") + .font(.caption) + .foregroundColor(.secondary) + } header: { + Text("Instructions") + } + } + .navigationTitle("MIDI Remote") + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button("Done") { + dismiss() + } + } + } + } } } diff --git a/Promptly/Views/Performance Mode/SpectatorPerformaceView.swift b/Promptly/Views/Performance Mode/SpectatorPerformaceView.swift index 3e80ecb..f966db9 100644 --- a/Promptly/Views/Performance Mode/SpectatorPerformaceView.swift +++ b/Promptly/Views/Performance Mode/SpectatorPerformaceView.swift @@ -7,6 +7,7 @@ import SwiftUI import SwiftData +import Combine struct SpectatorPerformanceView: View { let showId: UUID @@ -46,7 +47,11 @@ struct SpectatorPerformanceView: View { .padding() .frame(maxWidth: .infinity, alignment: .topLeading) } - .background(Color(.systemBackground)) +#if os(watchOS) + .foregroundColor(Color(.gray)) +#else + .foregroundColor(Color(.systemBackground)) +#endif .onChange(of: currentLine) { _, newValue in withAnimation(.easeOut(duration: 0.15)) { proxy.scrollTo("line-\(newValue)", anchor: .center) @@ -119,10 +124,12 @@ struct SpectatorPerformanceView: View { private var spectatorHeader: some View { HStack { VStack(alignment: .leading, spacing: 2) { + #if !os(watchOS) Text(script.name) .font(.headline) - .fontWeight(.bold) + .fontWeight(.bold) .foregroundColor(.primary) + #endif HStack(spacing: 8) { Text(status.displayName) @@ -133,33 +140,45 @@ struct SpectatorPerformanceView: View { .background(status.color.opacity(0.2)) .cornerRadius(4) + #if !os(watchOS) Text("Spectator Mode") .font(.caption) .foregroundColor(.secondary) + #endif } } Spacer() +#if !os(watchOS) VStack(alignment: .trailing, spacing: 2) { Text(currentTime.formatted(date: .omitted, time: .standard)) - .font(.title2) + .font(.caption) .fontWeight(.bold) .monospacedDigit() .foregroundColor(.primary) Text("Line \(currentLine)") - .font(.caption) + .font(.footnote) .foregroundColor(.secondary) .monospacedDigit() } + #endif } .padding() - .background(Color(.systemGray6)) +#if os(watchOS) + .foregroundColor(Color(.gray)) +#else + .foregroundColor(Color(.systemGray6)) +#endif .overlay(alignment: .bottom) { Rectangle() .frame(height: 1) + #if os(watchOS) + .foregroundColor(Color(.gray)) + #else .foregroundColor(Color(.separator)) + #endif } } } @@ -170,7 +189,7 @@ struct TimeCallOverlay: View { var body: some View { ZStack { - Color.red + Color.black .ignoresSafeArea() VStack { diff --git a/Promptly/Views/Scripts/.DS_Store b/Promptly/Views/Scripts/.DS_Store index 9f5e630ba04f506e352d8326749dda8609993da1..dc1d6b19bf45aeedf0714bfb739f4fdad5681f79 100644 GIT binary patch delta 251 zcmZoMXfc=|#>B!ku~2NHo+2an#(>?7ixZfc7`Z3EWs;k$#q>}hC*3eOIX}060SvMN zK@uXl`7SO=Ir&LIF^-nGE31+ijypmnQm{%06l5S9Q@{XJ?Sp1^w%}xOW+fD}jiOG; zm;OKI2$evXjVys-_GWSB1jfzm9Q+(WuWb%w{?0s^U&N7vk%55;B)qu~2NHo+2aj#(>?7jLehkS>+~cu{@l7npJP}Nj5vi%?cb7m^ZU? f@N)pwZWiSD&ODi4#F2vm2pAa{ST;w9tYHQKBli;S diff --git a/Promptly/Views/Scripts/ScriptEditorView.swift b/Promptly/Views/Scripts/ScriptEditorView.swift index 7a9f0c5..dd84e28 100644 --- a/Promptly/Views/Scripts/ScriptEditorView.swift +++ b/Promptly/Views/Scripts/ScriptEditorView.swift @@ -480,30 +480,3 @@ struct FlowResult { self.size = CGSize(width: maxWidth, height: currentRowY + currentRowHeight) } } - -extension Color { - init(hex: String) { - let hex = hex.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) - var int: UInt64 = 0 - Scanner(string: hex).scanHexInt64(&int) - let a, r, g, b: UInt64 - switch hex.count { - case 3: - (a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17) - case 6: - (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF) - case 8: - (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF) - default: - (a, r, g, b) = (1, 1, 1, 0) - } - - self.init( - .sRGB, - red: Double(r) / 255, - green: Double(g) / 255, - blue: Double(b) / 255, - opacity: Double(a) / 255 - ) - } -} diff --git a/Promptly/Views/Shows/.DS_Store b/Promptly/Views/Shows/.DS_Store index 968a3c24416dcc911375a27d47bdc041e94888ec..1b229eefc15f3749bb61483016bdc17b5446a2a3 100644 GIT binary patch delta 302 zcmZoMXfc=|#>B!ku~2NHo+2a9#(>?7i$5?kG4f32VY-o)lWrKCoS$3300vsyfD|)> zBSQ*9N^ZW3OHxjL5>SL=D%)P|5C4uiBFm=WkuAtTHr0S(@-3!c^{7_mvH=ZaV{lqNzbxi%SivB)qu~2NHo+2a5#(>?7j4YFRSZ+)XVg0cA44XCM#)cnEo7p+|Ie^MG a3vzsCp3E=e$iV;vj0_Acn=K*+ diff --git a/Promptly/Views/Shows/Detail/ShowDetailView.swift b/Promptly/Views/Shows/Detail/ShowDetailView.swift index 8ad34b2..8ccd00f 100644 --- a/Promptly/Views/Shows/Detail/ShowDetailView.swift +++ b/Promptly/Views/Shows/Detail/ShowDetailView.swift @@ -152,6 +152,7 @@ struct ShowDetailView: View { performanceToStart = nil }, content: { DSMPerformanceView(performance: $0) + .interactiveDismissDisabled(true) }) .onAppear { print("📅 Performance dates: \(show.performanceDates.count)") @@ -220,21 +221,21 @@ struct ShowDetailView: View { .cornerRadius(8) } - Button(role: .destructive) { - show.performanceDates.removeAll() - show.peformances.removeAll() - let today = Date() - addPerformance(date: today) - } label: { - HStack { - Image(systemName: "trash") - Text("Delete All & Add Today") - Spacer() - } - .padding() - .background(Color(.tertiarySystemGroupedBackground)) - .cornerRadius(8) - } + // Button(role: .destructive) { + // show.performanceDates.removeAll() + // show.peformances.removeAll() + // let today = Date() + // addPerformance(date: today) + // } label: { + // HStack { + // Image(systemName: "trash") + // Text("Delete All & Add Today") + // Spacer() + // } + // .padding() + // .background(Color(.tertiarySystemGroupedBackground)) + // .cornerRadius(8) + // } } } } diff --git a/test1_results.rtf b/test1_results.rtf new file mode 100644 index 0000000..548e644 --- /dev/null +++ b/test1_results.rtf @@ -0,0 +1,28 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2865 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red251\green2\blue7;} +{\*\expandedcolortbl;;\cssrgb\c1680\c19835\c100000;\cssrgb\c100000\c14913\c0;} +\paperw11900\paperh16840\margl1440\margr1440\vieww29200\viewh16280\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b\fs96 \cf2 PLEASE INTERACT WITH APP (move lines via click (no arrow workings), (line not acc));\ +\cf0 \ +\cf3 DO NOT STOP SHOW / CHANGE STATE;\ +TESTING FOR DURATION;\ +\ +-sb;\ +\ +\ +NOTES:\ +- no wifi/internet test\ +- brightness 40%\ +- consistent 100mb memory \ +- consistent 13.9 energy\ +- over 1h, loss of 12% battery, no power source\ +- cpu 5 active, 2.2 foreground\ +- no loss of frame rate / crashes 1h in\ +- 116.4mb on fast scrolling of lines and also when skipping like 2k lines stays around the same mb\ +- total tst runtime 02:21:40\ +- no crashes\ +- stable experience \ +} \ No newline at end of file