Input/output API revamp
Jump to navigation
Jump to search
Problem
- Not all parts of the input and output APIs have clearly defined documentation, for example regarding memory allocation.
- Neither API exposes the parameters they can take, let alone any meta-information about them.
- Some of the output modules are still stuck on the very old API, which limits their usefulness.
- The lack of a well-thought out API for these is holding back the spinoff of these into libsigrokfile, which could be a very interesting project itself.
Ideas
- Clearly, we'll want to stick with what we've done for drivers where exposing parameters is concerned. That means:
- An enum list like SR_CONF_* for the options, though not SR_CONF itself, as this would stop it from spinning off from libsigrok.
- A meta structure like sr_config_info to expose short and long names and descriptions for all the keys.
- GVariant as the mechanism to pass strongly typed values back and forth.