libcamera::IPAInterfaceWrapper Class Reference

Wrap an IPAInterface and expose it as an ipa_context. More...

Inheritance diagram for libcamera::IPAInterfaceWrapper:

## Public Member Functions

| IPAInterfaceWrapper (std::unique_ptr< IPAInterface > interface)
| Construct an IPAInterfaceWrapper wrapping interface. More...

## Additional Inherited Members

Public Attributes inherited from ipa_context
const struct ipa_context_ops * | ops
| The IPA context operations.

## Detailed Description

Wrap an IPAInterface and expose it as an ipa_context.

This class implements the ipa_context API based on a provided IPAInterface. It helps IPAs that implement the IPAInterface API to provide the external ipa_context API.

To use the wrapper, an IPA module simple creates a new instance of its IPAInterface implementation, and passes it to the constructor of the IPAInterfaceWrapper. As IPAInterfaceWrapper inherits from ipa_context, the constructed wrapper can then be directly returned from the IPA module's ipaCreate() function.

class MyIPA : public IPAInterface
{
...
};
struct ipa_context *ipaCreate()
{
return new IPAInterfaceWrapper(std::make_unique<MyIPA>());
}
libcamera::IPAInterfaceWrapper::IPAInterfaceWrapper
IPAInterfaceWrapper(std::unique_ptr< IPAInterface > interface)
Construct an IPAInterfaceWrapper wrapping interface.
Definition: ipa_interface_wrapper.cpp:61
ipaCreate
struct ipa_context * ipaCreate()
Entry point to the IPA modules.
ipa_context
IPA module context of execution.
Definition: ipa_interface.h:17

The wrapper takes ownership of the IPAInterface and will automatically delete it when the wrapper is destroyed.

## Constructor & Destructor Documentation

## IPAInterfaceWrapper()

libcamera::IPAInterfaceWrapper::IPAInterfaceWrapper | ( | std::unique_ptr< IPAInterface > | interface | ) |

Construct an IPAInterfaceWrapper wrapping interface.

Parameters

  [in] | interface | The interface to wrap

The documentation for this class was generated from the following files:

- src/ipa/libipa/ipa_interface_wrapper.h
- src/ipa/libipa/ipa_interface_wrapper.cpp