Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Darwin to handle renames of Color Control data types. #35135

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions src/darwin/Framework/CHIP/MTRBackwardsCompatShims.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,4 +159,33 @@ typedef NS_ENUM(uint8_t, MTROTASoftwareUpdateRequestorOTAUpdateState) {
= 0x08,
} MTR_DEPRECATED("Please use MTROTASoftwareUpdateRequestorUpdateState", ios(16.4, 17.2), macos(13.3, 14.2), watchos(9.4, 10.2), tvos(16.4, 17.2));

/**
* ColorControl used to have HueMoveMode/SaturationMoveMode and HueStepMode/SaturationStepMode that had
* identical values. Those got replaced with MoveModeEnum and StepModeEnum respectively. We codegen
* HueMoveMode and HueStepMode as aliases of MoveModeEnum and StepModeEnum, but we need manual shims for
* SaturationMoveMode and SaturationStepMode.
*/
typedef NS_ENUM(uint8_t, MTRColorControlSaturationMoveMode) {
MTRColorControlSaturationMoveModeStop MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1))
MTR_NEWLY_DEPRECATED("Please use MTRColorControlMoveModeStop")
= 0x00,
MTRColorControlSaturationMoveModeUp MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1))
MTR_NEWLY_DEPRECATED("Please use MTRColorControlMoveModeUp")
= 0x01,
MTRColorControlSaturationMoveModeDown MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1))
MTR_NEWLY_DEPRECATED("Please use MTRColorControlMoveModeDown")
= 0x03,
} MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1))
MTR_NEWLY_DEPRECATED("Please use MTRColorControlMoveMode");

typedef NS_ENUM(uint8_t, MTRColorControlSaturationStepMode) {
MTRColorControlSaturationStepModeUp MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1))
MTR_NEWLY_DEPRECATED("Please use MTRColorControlStepModeUp")
= 0x01,
MTRColorControlSaturationStepModeDown MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1))
MTR_NEWLY_DEPRECATED("Please use MTRColorControlStepModeDown")
= 0x03,
} MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1))
MTR_NEWLY_DEPRECATED("Please use MTRColorControlStepMode");

NS_ASSUME_NONNULL_END
143 changes: 137 additions & 6 deletions src/darwin/Framework/CHIP/templates/availability.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3237,9 +3237,15 @@
- FanModeSequenceType
- FanModeType
ColorControl:
- ColorLoopAction
- ColorLoopDirection
- ColorMode
# ColorLoopActionEnum, ColorLoopDirectionEnum and ColorModeEnum
# were originally named ColorLoopAction, ColorLoopDirection, and
# ColorMode, but we generate the same API for the names
# with/without "Enum" at the end and the cluster name
# present/absent at the beginning, so the names can just change
# here.
- ColorLoopActionEnum
- ColorLoopDirectionEnum
- ColorModeEnum
- HueDirection
- HueMoveMode
- HueStepMode
Expand Down Expand Up @@ -3980,14 +3986,20 @@
- Auto
- Smart
ColorControl:
ColorLoopAction:
# ColorLoopActionEnum, ColorLoopDirectionEnum and ColorModeEnum
# were originally named ColorLoopAction, ColorLoopDirection, and
# ColorMode, but we generate the same API for the names
# with/without "Enum" at the end and the cluster name
# present/absent at the beginning, so the names can just change
# here.
ColorLoopActionEnum:
- Deactivate
- ActivateFromColorLoopStartEnhancedHue
- ActivateFromEnhancedCurrentHue
ColorLoopDirection:
ColorLoopDirectionEnum:
- DecrementHue
- IncrementHue
ColorMode:
ColorModeEnum:
- CurrentHueAndCurrentSaturation
- CurrentXAndCurrentY
- ColorTemperature
Expand Down Expand Up @@ -9682,6 +9694,64 @@

- release: "Future"
versions: "future"
introduced:
enums:
ColorControl:
- DirectionEnum
- DriftCompensationEnum
- EnhancedColorModeEnum
- MoveModeEnum
- StepModeEnum
enum values:
ColorControl:
ColorLoopDirectionEnum:
- Decrement
- Increment
ColorModeEnum:
- ColorTemperatureMireds
DirectionEnum:
- Shortest
- Longest
- Up
- Down
DriftCompensationEnum:
- None
- OtherOrUnknown
- TemperatureMonitoring
- OpticalLuminanceMonitoringAndFeedback
- OpticalColorMonitoringAndFeedback
EnhancedColorModeEnum:
- CurrentHueAndCurrentSaturation
- CurrentXAndCurrentY
- ColorTemperatureMireds
- EnhancedCurrentHueAndCurrentSaturation
MoveModeEnum:
- Stop
- Up
- Down
StepModeEnum:
- Up
- Down
bitmaps:
ColorControl:
- ColorCapabilitiesBitmap
- OptionsBitmap
- UpdateFlagsBitmap
bitmap values:
ColorControl:
ColorCapabilitiesBitmap:
- HueSaturation
- EnhancedHue
- ColorLoop
- XY
- ColorTemperature
OptionsBitmap:
- ExecuteIfOff
UpdateFlagsBitmap:
- UpdateAction
- UpdateDirection
- UpdateTime
- UpdateStartHue
provisional:
clusters:
# Targeting 1.4
Expand Down Expand Up @@ -9820,3 +9890,64 @@
Feature:
# Targeting 1.4
- ActionSwitch
renames:
enums:
ColorControl:
DirectionEnum: HueDirection
MoveModeEnum: HueMoveMode
StepModeEnum: HueStepMode
enum values:
ColorControl:
ColorLoopDirectionEnum:
Decrement: DecrementHue
Increment: IncrementHue
ColorModeEnum:
ColorTemperatureMireds: ColorTemperature
HueDirection:
Shortest: ShortestDistance
Longest: LongestDistance
bitmaps:
ColorControl:
ColorCapabilitiesBitmap: ColorCapabilities
UpdateFlagsBitmap: ColorLoopUpdateFlags
bitmap values:
ColorControl:
ColorCapabilities:
HueSaturation: HueSaturationSupported
EnhancedHue: EnhancedHueSupported
ColorLoop: ColorLoopSupported
XY: XYAttributesSupported
ColorTemperature: ColorTemperatureSupported
deprecated:
enums:
ColorControl:
- HueDirection
- HueMoveMode
- HueStepMode
enum values:
ColorControl:
ColorLoopDirectionEnum:
- DecrementHue
- IncrementHue
ColorModeEnum:
- ColorTemperature
bitmaps:
ColorControl:
- ColorCapabilities
- ColorLoopUpdateFlags
removed:
enum values:
ColorControl:
# Don't expose the new value names on the old enum names
HueDirection:
- Shortest
- Longest
bitmap values:
ColorControl:
# Don't expose the new field names on the old bitmap names
ColorCapabilities:
- HueSaturation
- EnhancedHue
- ColorLoop
- XY
- ColorTemperature
Loading
Loading