Skip to content

Simplify BLOB handling now that INDI::BaseClient has no newBLOB() virtual

The installed INDI client library no longer declares a virtual newBLOB() callback (confirmed: absent from baseclient.h/abstractbaseclient.h on the current libindi-dev). Every real module that handles images (dummy, focus, allsky, polar...) has worked around this the same way for a while now: override the generic updateProperty(), chain up to IndiModule::updateProperty(), check the property name/type by hand, then call its own plain (non-virtual) newBLOB() helper itself.

This is boilerplate every imaging module repeats. Now that the dev-module documentation (#264 (closed)) is writing this pattern out explicitly for the first time, it stands out as something IndiModule itself could likely absorb - e.g. its own updateProperty() could detect INDI_BLOB properties and call a new dedicated virtual hook directly (onNewBlob() or similar, same shape as onNewDevice()/onUpdateProperty()), removing the need for a concrete module to override updateProperty() and reimplement the type check at all.

No design decided yet - open to figure out the right shape (a statuer).