46 d->typedProperty.reset();
52 return d->typedProperty.findOnSwitchIndex();
58 return d->typedProperty.findOnSwitch();
64 if (d->onNewValuesCallback)
67 for (
int i=0; i<n; ++i)
69 newValues[names[i]] = states[i];
72 d->onNewValuesCallback(newValues);
75 return d->typedProperty.update(states, names, n) && (
emitUpdate(),
true);
81 return d->onNewValuesCallback !=
nullptr || d->onUpdateCallback !=
nullptr;
85 const char *
device,
const char *name,
const char *label,
const char *group,
90 d->typedProperty.setWidgets(d->widgets.data(), d->widgets.size());
91 d->typedProperty.fill(
device, name, label, group, permission, rule, timeout, state);
97 d->typedProperty.setRule(rule);
103 return d->typedProperty.getRule();
109 return d->typedProperty.getRuleAsString();
115 d->onNewValuesCallback = callback;
virtual ~PropertySwitchPrivate()
PropertySwitchPrivate(size_t count)
void onNewValues(const std::function< void(const NewValues &)> &callback)
bool update(const ISState states[], const char *const names[], int n)
bool hasUpdateCallback() const
const char * getRuleAsString() const
void setRule(ISRule rule)
INDI::WidgetViewSwitch * findOnSwitch() const
int findOnSwitchIndex() const
void fill(const char *device, const char *name, const char *label, const char *group, IPerm permission, ISRule rule, double timeout, IPState state)
Provides generic container for INDI properties.
friend class PropertySwitch
IPerm
Permission hint, with respect to client.
ISRule
Switch vector rule hint.
Namespace to encapsulate INDI client, drivers, and mediator classes.