summaryrefslogtreecommitdiff
path: root/Documentation/api-html/index.rst
AgeCommit message (Collapse)Author
2020-04-15licenses: Add SPDX headers to RST documentationLaurent Pinchart
The documentation files are licensed under CC-BY-SA-4.0, but this has never been specified explicitly. Add corresponding SPDX headers. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2019-10-23Documentation: Link to API section in DocsLaurent Pinchart
The API belongs to the docs section. Link to it from docs.rst, and remove the shortcut in the navigation bar as links to a placeholder only. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2019-01-11Documentation: Add placeholder for Doxygen-generated API documentationLaurent Pinchart
Until we have better Sphinx + Doxygen integration, replace the relative external link to the API documentation with a placeholder directory, which will be populated with the Doxygen-generated doc when exporting documentation to the website. This is needed as the Sphinx documentation is exported to the root of the website, linking to ../api-html is thus not possible. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
differences are usually caused by the use of threads or differences in C++ vs Python memory management. 2. Differences caused by the code being work-in-progress. It's not always trivial to create a binding in a satisfying way, and the current bindings contain simplified versions of the C++ API just to get forward. These differences are expected to eventually go away. Coding Style ------------ The C++ code for the bindings follows the libcamera coding style as much as possible. Note that the indentation does not quite follow the clang-format style, as clang-format makes a mess of the style used. The API visible to the Python side follows the Python style as much as possible. This means that e.g. ``Camera::generateConfiguration`` maps to ``Camera.generate_configuration``. CameraManager ------------- The Python API provides a singleton CameraManager via ``CameraManager.singleton()``. There is no need to start or stop the CameraManager. Handling Completed Requests --------------------------- The Python bindings do not expose the ``Camera::requestCompleted`` signal directly as the signal is invoked from another thread and it has real-time constraints. Instead the bindings queue the completed requests internally and use an eventfd to inform the user that there are completed requests. The user can wait on the eventfd, and upon getting an event, use ``CameraManager.get_ready_requests()`` to clear the eventfd event and to get the completed requests. Controls & Properties --------------------- The classes related to controls and properties are rather complex to implement directly in the Python bindings. There are some simplifications in the Python bindings: - There is no ControlValue class. Python objects are automatically converted to ControlValues and vice versa. - There is no ControlList class. A Python dict with ControlId keys and Python object values is used instead. - There is no ControlInfoMap class. A Python dict with ControlId keys and ControlInfo values is used instead.