AJ_Status marshalConstraintRange(ConstraintRange* constraints, AJ_Message* reply) { AJ_Status status; AJ_Arg constraintRange; status = StartComplexOptionalParam(reply, &constraintRange, PROPERTY_CONSTRAINT_RANGE, PROPERTY_CONSTRAINT_RANGE_SIG); if (status != AJ_OK) { return status; } status = AddConstraintRange(reply, *constraints->signature, constraints->minValue, constraints->maxValue, constraints->increment); if (status != AJ_OK) { return status; } return AJ_MarshalCloseContainer(reply, &constraintRange); }
AJ_Status marshalConstraintList(BaseWidget* widget, ConstraintList* constraints, AJ_Message* reply, uint16_t numConstraints, const char* signature, uint16_t language) { AJ_Status status; AJ_Arg arrayArg, opParams; uint16_t cnt; PropertyWidget* propWidget = (PropertyWidget*)widget; status = StartComplexOptionalParam(reply, &opParams, PROPERTY_CONSTRAINT_LIST, PROPERTY_CONSTRAINT_LIST_SIG); if (status != AJ_OK) { return status; } status = AJ_MarshalContainer(reply, &arrayArg, AJ_ARG_ARRAY); if (status != AJ_OK) { return status; } for (cnt = 0; cnt < numConstraints; cnt++) { const void* value; const char* display; if (propWidget->optParams.getConstraint) { display = propWidget->optParams.getConstraint(propWidget, cnt, &value, language); } else if (constraints[cnt].getDisplay != 0) { value = constraints[cnt].value; display = constraints[cnt].getDisplay(language); } else { value = constraints[cnt].value; display = constraints[cnt].display[language]; } status = AddConstraintValue(reply, signature, value, display); if (status != AJ_OK) { return status; } } status = AJ_MarshalCloseContainer(reply, &arrayArg); if (status != AJ_OK) { return status; } return AJ_MarshalCloseContainer(reply, &opParams); }