adds api support for enabling/disabling controls and rules

This commit is contained in:
Sam Hatchett
2023-09-12 14:51:44 -04:00
parent 630eed4369
commit 06a43cdb4e
9 changed files with 161 additions and 1 deletions

View File

@@ -5259,6 +5259,42 @@ int DLLEXPORT EN_setcontrol(EN_Project p, int index, int type, int linkIndex,
return 0;
}
int DLLEXPORT EN_getcontrolenabled(EN_Project p, int index, int *enabled)
{
Network *net = &p->network;
Scontrol *control;
// Check for valid arguments
if (!p->Openflag)
return 102;
if (index <= 0 || index > net->Ncontrols)
return 241;
control = &net->Control[index];
*enabled = control->isEnabled;
return 0;
}
int DLLEXPORT EN_setcontrolenabled(EN_Project p, int index, int enabled)
{
Network *net = &p->network;
Scontrol *control;
// Check for valid arguments
if (enabled != ENABLED && enabled != DISABLED)
return 202; // illegal numeric value
if (!p->Openflag)
return 102;
if (index <= 0 || index > net->Ncontrols)
return 241;
control = &net->Control[index];
control->isEnabled = enabled;
return 0;
}
/********************************************************************
Rule-Based Controls Functions
@@ -5681,3 +5717,41 @@ int DLLEXPORT EN_setrulepriority(EN_Project p, int index, double priority)
p->network.Rule[index].priority = priority;
return 0;
}
int DLLEXPORT EN_getruleenabled(EN_Project p, int index, int *enabled)
{
Network *net = &p->network;
Srule *rule;
// Check for valid arguments
if (!p->Openflag)
return 102;
if (index <= 0 || index > net->Nrules)
return 241;
rule = &net->Rule[index];
*enabled = rule->isEnabled;
return 0;
}
int DLLEXPORT EN_setruleenabled(EN_Project p, int index, int enabled)
{
Network *net = &p->network;
Srule *rule;
// Check for valid arguments
if (enabled != ENABLED && enabled != DISABLED)
return 202; // illegal numeric value
if (!p->Openflag)
return 102;
if (index <= 0 || index > net->Nrules)
return 241;
rule = &net->Rule[index];
rule->isEnabled = enabled;
return 0;
}