Releases: caplaz/PatternSpaceSDK
Releases · caplaz/PatternSpaceSDK
0.5.1
Added
- Convenience preset ID constants for
sdrReferenceP3D65Gamma22andsdrReferenceP3D65Gamma26 - Open-string convenience constants for
OutputColorPresetTransfer.proPhotoROMMandOutputColorPresetInputEncoding.proPhotoROMM
Changed
PatternSpaceProtocolMetadata.sdkVersionis now0.5.1; PatternSpace JSON protocol remains1.2
0.5.0
Added
display.getOutputColorPresetserver route, client namespace method, delegate hook, params, and result schemasOutputColorPresetSummaryfor lightweight discovery andOutputColorPresetConfigfor full self-describing preset configurationcatalogRevisionon both list and get preset responses, defined as an opaque host-catalog cache token- Open-string preset metadata wrappers for family, gamut, white point, transfer, input encoding, dynamic range, tone mapping, measurement range, and implementation status
Changed
- PatternSpace JSON protocol version is now
1.2 PatternSpaceProtocolMetadata.sdkVersionis now0.5.0display.listOutputColorPresetsnow returns lightweight summaries only; clients should calldisplay.getOutputColorPresetwhen they need full color-science configuration- Hosts must return full config for known presets even when the current display does not support them; unknown IDs remain
outputColorPresetUnsupported
Removed
- Legacy closed color-management mode API:
ColorManagementMode, mode list/set schemas, delegate hooks, client methods, dispatcher routes, capability flag, andcolorManagementModeUnsupported - Legacy color-management fields from
DeviceStatusandDisplayEntry; use output preset fields instead
Migration
- Replace
display.listColorManagementModesanddisplay.setColorManagementModewith the output preset catalog flow: list summaries, fetch config for a selected ID, then set the preset - Treat preset IDs and metadata values as open strings; SDK constants are conveniences, not a closed catalog
- Cache full configs by
(presetId, catalogRevision)when useful - Continue using
notAuthorized(-32009) for Pro entitlement failures
0.4.1
Added
- Flexible output color preset schemas:
OutputColorPresetID,OutputColorPreset,OutputColorPresetList,SetOutputColorPresetParams, andSetOutputColorPresetResult - Additive
DisplayEntryfields foroutputColorPresetId,supportedOutputColorPresetIds, andoutputColorPresetImplementationStatus - Additive
DeviceStatusfields for selected output preset and HDR diagnostics: EDR headroom, reference white, and clip-onset values display.listOutputColorPresetsanddisplay.setOutputColorPresetserver routes and client display namespace methodsCapabilityFeatures.outputColorPresetsPSErrorCode.outputColorPresetUnsupported
Changed
PatternSpaceProtocolMetadata.sdkVersionis now0.4.1PatternSpaceServerDelegatehas default unsupported implementations for output preset routes, so existing hosts can adopt0.4.1without immediately implementing the new API
Notes
- Preset IDs are open strings; clients should discover presets from the server instead of hardcoding a closed enum
- Unknown preset IDs reach
outputColorPresetUnsupportedinstead of failing JSON parameter decoding - Pro entitlement failures should continue to use
notAuthorized(-32009) - Legacy color-management fields remain optional and can be
null/omitted when an HDR output preset has noColorManagementModeequivalent
0.4.0
Added
PatternSpaceProtocolMetadatawith protocol version1.1and SDK version0.4.0capabilities.listroute andPatternSpaceClient.capabilities.list()for protocol, app, SDK, namespace, feature, platform, and auth discovery- Bonjour TXT metadata for
protocolVersionandauthRequired - Richer optional
DeviceStatusmetadata: selected source/display, color-management state, profile resolution, auth mode, client count, app version/build, SDK version, and protocol version - Color-management schemas:
ColorManagementMode,ColorManagementModeEntry,ColorManagementModeList,SetColorManagementModeParams, andSetColorManagementModeResult - Additive
DisplayEntrycolor-management fields, with forward-compatible decoding for unknown keys and absent mode arrays display.listColorManagementModesanddisplay.setColorManagementModeserver routes and client display namespace methodsPSErrorCode.colorManagementModeUnsupportedand.displaySelectionMismatch- Route-manifest coverage to keep
capabilities.listnamespaces aligned with dispatcher routes
Changed
- PatternSpace JSON protocol version is now
1.1 PatternSpaceServerDelegateaddscapabilities(),listColorManagementModes(displayId:), andsetColorManagementMode(_:)host hooks — source-breaking for server delegate conformers
Notes
capabilities.list,display.listColorManagementModes, anddisplay.setColorManagementModedo not require the JSON source to be active after a WebSocket connection is established- Unknown color-management mode strings return JSON-RPC
invalidParams; known but unsupported modes returncolorManagementModeUnsupported - Display color-management writes are host-scoped in this release, so hosts should return the selected display that actually changed
0.3.0
Added
display.list— returns display inventory and selected display metadatadisplay.setPeakWhite— sets Peak White for one display (authenticated, Pro-gated)display.changed— notification broadcast on display inventory, selection, or Peak White changesDisplayEntry,DisplayListResult,PeakWhiteRange,SetPeakWhiteParamsCodable models inPatternSpaceSDKCorePSErrorCode.displayNotFound,.peakWhiteOutOfRange,.notAuthorizedtyped error codesPatternSpaceClient.displaynamespace withlist()andsetPeakWhite(displayId:peakWhite:)PatternSpaceEvent.displayChanged(DisplayListResult)— source-breaking for exhaustive switches; minor version bump signals thisPatternSpaceServerDelegate.listDisplays()andsetPeakWhite(_:)host hooks — source-breaking for server delegate conformers- Protocol documentation and README examples for the
display.*methods
Notes
display.listanddisplay.setPeakWhitedo not require the JSON source to be activepeakWhiteandeffectivePeakWhitecan differ when the stored value exceeds current display capability (non-destructive clamping)display.setPeakWhitereturns the updatedDisplayEntrydirectly, not a wrapper object
0.2.0
Changed
- Replaced
pattern.displayRectanglewithpattern.displayPatch. - Replaced pixel rectangle coordinates with normalized display-space coordinates.
- Added multi-rectangle patch support with one shared background color.
- Added optional CalMAN-style area percentage
sizetopattern.displayColor. - Removed
currentResolutionfromPatternSpaceServerDelegate; patch placement no longer depends on client-visible screen resolution.
0.1.0
Added
- Initial Swift Package Manager package.
PatternSpaceSDKCoreproduct with JSON-RPC envelopes, JSON values, error codes, pattern models, device schemas, and events.PatternSpaceSDKClientproduct with Bonjour discovery, WebSocket transport, request correlation, reconnection, and typed pattern/device namespaces.PatternSpaceSDKServerproduct with TCP listener, WebSocket upgrade handling, manual frame codec, JSON-RPC dispatch, input validation, auth rejection, rate limiting, and event broadcast.- Swift Testing coverage for core models, validation, dispatch, WebSocket upgrade, and WebSocket frames.