7a74cfa75e
- Add remote-client-ios: full native UIKit app with Objects/View/UILayout/Functions pattern - Widget hierarchy: BaseWidget → Fader, Toggle, Transport, Title, Feedback, LogWidget - LoggingVC: child VC embedded in LogWidget for live WS message inspection - Codable model: ModelPresetLoadToRemoteDevice with snake_case decoder strategy - Layout persistence: UserDefaults keyed by preset_uuid, fully client-side - WS logging: dedicated WS In/Out floating panels on desktop app - Remove HTTP server and JS client (replaced by native iOS app) - Add Xcode noise to .gitignore (xcuserstate, xcuserdata) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
37 lines
750 B
Swift
37 lines
750 B
Swift
import Foundation
|
|
|
|
struct ModelPresetLoadToRemoteDevice: Codable {
|
|
let presetUuid: String
|
|
let presetName: String
|
|
let bigTitle: String
|
|
let faders: [ModelFaderPayload]
|
|
let toggles: [ModelTogglePayload]
|
|
let transports: [ModelTransportPayload]
|
|
|
|
var displayTitle: String {
|
|
bigTitle.isEmpty ? "No Title" : bigTitle
|
|
}
|
|
}
|
|
|
|
struct ModelFaderPayload: Codable {
|
|
let uid: String
|
|
let label: String
|
|
let value: Int
|
|
let visible: Bool
|
|
let color: String
|
|
}
|
|
|
|
struct ModelTogglePayload: Codable {
|
|
let uid: String
|
|
let label: String
|
|
let state: Bool
|
|
let visible: Bool
|
|
let color: String
|
|
}
|
|
|
|
struct ModelTransportPayload: Codable {
|
|
let uid: String
|
|
let label: String
|
|
let visible: Bool
|
|
}
|