int MovingLightModel_SetBool(const RDMHeader *header, const uint8_t *param_data) { bool *value = NULL; switch (ntohs(header->param_id)) { case PID_PAN_INVERT: value = &g_moving_light.pan_invert; break; case PID_TILT_INVERT: value = &g_moving_light.tilt_invert; break; case PID_PAN_TILT_SWAP: value = &g_moving_light.pan_tilt_swap; break; default: return RDM_RESPONDER_NO_RESPONSE; } bool old_value = *value; int response_size = RDMResponder_GenericSetBool(header, param_data, value); if (*value != old_value) { g_moving_light.using_factory_defaults = false; } return response_size; }
int DimmerModel_SetPowerOnSelfTest(const RDMHeader *header, const uint8_t *param_data) { return RDMResponder_GenericSetBool(header, param_data, &g_root_device.power_on_self_test); }