libcamera: IPAManager: remove instance() and make createIPA() static
As the only usage of IPAManager::instance() is by the pipeline handlers to call IPAManager::createIPA(), remove the former and make the latter static. Update the pipeline handlers and tests accordingly. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
parent
46d544345c
commit
6e730695de
6 changed files with 10 additions and 26 deletions
|
@ -25,11 +25,9 @@ public:
|
|||
IPAManager();
|
||||
~IPAManager();
|
||||
|
||||
static IPAManager *instance();
|
||||
|
||||
std::unique_ptr<IPAProxy> createIPA(PipelineHandler *pipe,
|
||||
uint32_t maxVersion,
|
||||
uint32_t minVersion);
|
||||
static std::unique_ptr<IPAProxy> createIPA(PipelineHandler *pipe,
|
||||
uint32_t maxVersion,
|
||||
uint32_t minVersion);
|
||||
|
||||
private:
|
||||
static IPAManager *self_;
|
||||
|
|
|
@ -99,8 +99,7 @@ IPAManager *IPAManager::self_ = nullptr;
|
|||
* \brief Construct an IPAManager instance
|
||||
*
|
||||
* The IPAManager class is meant to only be instantiated once, by the
|
||||
* CameraManager. Pipeline handlers shall use the instance() function to access
|
||||
* the IPAManager instance.
|
||||
* CameraManager.
|
||||
*/
|
||||
IPAManager::IPAManager()
|
||||
{
|
||||
|
@ -159,19 +158,6 @@ IPAManager::~IPAManager()
|
|||
self_ = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Retrieve the IPA manager instance
|
||||
*
|
||||
* The IPAManager is constructed by the CameraManager. This function shall be
|
||||
* used to retrieve the single instance of the manager.
|
||||
*
|
||||
* \return The IPA manager instance
|
||||
*/
|
||||
IPAManager *IPAManager::instance()
|
||||
{
|
||||
return self_;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Identify shared library objects within a directory
|
||||
* \param[in] libDir The directory to search for shared objects
|
||||
|
@ -273,7 +259,7 @@ std::unique_ptr<IPAProxy> IPAManager::createIPA(PipelineHandler *pipe,
|
|||
{
|
||||
IPAModule *m = nullptr;
|
||||
|
||||
for (IPAModule *module : modules_) {
|
||||
for (IPAModule *module : self_->modules_) {
|
||||
if (module->match(pipe, minVersion, maxVersion)) {
|
||||
m = module;
|
||||
break;
|
||||
|
@ -289,7 +275,7 @@ std::unique_ptr<IPAProxy> IPAManager::createIPA(PipelineHandler *pipe,
|
|||
*
|
||||
* \todo Implement a better proxy selection
|
||||
*/
|
||||
const char *proxyName = isSignatureValid(m)
|
||||
const char *proxyName = self_->isSignatureValid(m)
|
||||
? "IPAProxyThread" : "IPAProxyLinux";
|
||||
IPAProxyFactory *pf = nullptr;
|
||||
|
||||
|
|
|
@ -1118,7 +1118,7 @@ void RPiCameraData::frameStarted(uint32_t sequence)
|
|||
|
||||
int RPiCameraData::loadIPA()
|
||||
{
|
||||
ipa_ = IPAManager::instance()->createIPA(pipe_, 1, 1);
|
||||
ipa_ = IPAManager::createIPA(pipe_, 1, 1);
|
||||
if (!ipa_)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -395,7 +395,7 @@ private:
|
|||
|
||||
int RkISP1CameraData::loadIPA()
|
||||
{
|
||||
ipa_ = IPAManager::instance()->createIPA(pipe_, 1, 1);
|
||||
ipa_ = IPAManager::createIPA(pipe_, 1, 1);
|
||||
if (!ipa_)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -410,7 +410,7 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
|
|||
|
||||
std::unique_ptr<VimcCameraData> data = std::make_unique<VimcCameraData>(this, media);
|
||||
|
||||
data->ipa_ = IPAManager::instance()->createIPA(this, 0, 0);
|
||||
data->ipa_ = IPAManager::createIPA(this, 0, 0);
|
||||
if (data->ipa_ != nullptr) {
|
||||
std::string conf = data->ipa_->configurationFile("vimc.conf");
|
||||
data->ipa_->init(IPASettings{ conf });
|
||||
|
|
|
@ -95,7 +95,7 @@ protected:
|
|||
EventDispatcher *dispatcher = thread()->eventDispatcher();
|
||||
Timer timer;
|
||||
|
||||
ipa_ = IPAManager::instance()->createIPA(pipe_.get(), 0, 0);
|
||||
ipa_ = IPAManager::createIPA(pipe_.get(), 0, 0);
|
||||
if (!ipa_) {
|
||||
cerr << "Failed to create VIMC IPA interface" << endl;
|
||||
return TestFail;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue