libcamera: Add members to MediaEntity to support ancillary entities
With kernel support for ancillary links, we can describe the relationship between two devices represented individually as instances of MediaEntity. As the only property of that relationship is its existence, describe those relationships in libcamera simply as a vector of MediaEntity pointers to the ancillary devices. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Daniel Scally <djrscally@gmail.com> Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
b608984e78
commit
9490c664b5
2 changed files with 19 additions and 0 deletions
|
@ -104,6 +104,7 @@ public:
|
||||||
unsigned int deviceMinor() const { return minor_; }
|
unsigned int deviceMinor() const { return minor_; }
|
||||||
|
|
||||||
const std::vector<MediaPad *> &pads() const { return pads_; }
|
const std::vector<MediaPad *> &pads() const { return pads_; }
|
||||||
|
const std::vector<MediaEntity *> ancillaryEntities() const { return ancillaryEntities_; }
|
||||||
|
|
||||||
const MediaPad *getPadByIndex(unsigned int index) const;
|
const MediaPad *getPadByIndex(unsigned int index) const;
|
||||||
const MediaPad *getPadById(unsigned int id) const;
|
const MediaPad *getPadById(unsigned int id) const;
|
||||||
|
@ -120,6 +121,8 @@ private:
|
||||||
|
|
||||||
void addPad(MediaPad *pad);
|
void addPad(MediaPad *pad);
|
||||||
|
|
||||||
|
void addAncillaryEntity(MediaEntity *ancillaryEntity);
|
||||||
|
|
||||||
std::string name_;
|
std::string name_;
|
||||||
unsigned int function_;
|
unsigned int function_;
|
||||||
unsigned int flags_;
|
unsigned int flags_;
|
||||||
|
@ -129,6 +132,7 @@ private:
|
||||||
unsigned int minor_;
|
unsigned int minor_;
|
||||||
|
|
||||||
std::vector<MediaPad *> pads_;
|
std::vector<MediaPad *> pads_;
|
||||||
|
std::vector<MediaEntity *> ancillaryEntities_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} /* namespace libcamera */
|
} /* namespace libcamera */
|
||||||
|
|
|
@ -423,4 +423,19 @@ void MediaEntity::addPad(MediaPad *pad)
|
||||||
pads_.push_back(pad);
|
pads_.push_back(pad);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Add a MediaEntity to the list of ancillary entities
|
||||||
|
* \param[in] ancillaryEntity The instance of MediaEntity to add
|
||||||
|
*/
|
||||||
|
void MediaEntity::addAncillaryEntity(MediaEntity *ancillaryEntity)
|
||||||
|
{
|
||||||
|
ancillaryEntities_.push_back(ancillaryEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \fn MediaEntity::ancillaryEntities()
|
||||||
|
* \brief Retrieve all ancillary entities of the entity
|
||||||
|
* \return The list of the entity's ancillary entities
|
||||||
|
*/
|
||||||
|
|
||||||
} /* namespace libcamera */
|
} /* namespace libcamera */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue