libcamera: media_object: Add functions to entities
Media entities convey information about their main function in the 'function' field of 'struct media_v2_entity'. Store the main function in the MediaEntity function_ class member and provide a getter function for that. While at there update comments, keep the MediaPad description in sync with the MediaEntity one and remove a stale TODO entry. Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
21ff749a79
commit
ec53057f0a
2 changed files with 17 additions and 7 deletions
|
@ -84,6 +84,7 @@ class MediaEntity : public MediaObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
const std::string &name() const { return name_; }
|
const std::string &name() const { return name_; }
|
||||||
|
unsigned int function() const { return function_; }
|
||||||
unsigned int deviceMajor() const { return major_; }
|
unsigned int deviceMajor() const { return major_; }
|
||||||
unsigned int deviceMinor() const { return minor_; }
|
unsigned int deviceMinor() const { return minor_; }
|
||||||
|
|
||||||
|
@ -103,6 +104,7 @@ private:
|
||||||
~MediaEntity();
|
~MediaEntity();
|
||||||
|
|
||||||
std::string name_;
|
std::string name_;
|
||||||
|
unsigned int function_;
|
||||||
std::string devnode_;
|
std::string devnode_;
|
||||||
unsigned int major_;
|
unsigned int major_;
|
||||||
unsigned int minor_;
|
unsigned int minor_;
|
||||||
|
|
|
@ -166,7 +166,7 @@ MediaLink::MediaLink(const struct media_v2_link *link, MediaPad *source,
|
||||||
* Pads are created from the information provided by the Media Controller API
|
* Pads are created from the information provided by the Media Controller API
|
||||||
* in the media_v2_pad structure. They reference the entity() they belong to.
|
* in the media_v2_pad structure. They reference the entity() they belong to.
|
||||||
*
|
*
|
||||||
* In addition to its graph id, every media graph pad is identified by an index
|
* In addition to their graph id, media graph pads are identified by an index
|
||||||
* unique in the context of the entity the pad belongs to.
|
* unique in the context of the entity the pad belongs to.
|
||||||
*
|
*
|
||||||
* A pad can be either a 'source' pad or a 'sink' pad. This information is
|
* A pad can be either a 'source' pad or a 'sink' pad. This information is
|
||||||
|
@ -242,11 +242,9 @@ void MediaPad::addLink(MediaLink *link)
|
||||||
* Entities are created from the information provided by the Media Controller
|
* Entities are created from the information provided by the Media Controller
|
||||||
* API in the media_v2_entity structure. They reference the pads() they contain.
|
* API in the media_v2_entity structure. They reference the pads() they contain.
|
||||||
*
|
*
|
||||||
* In addition to its graph id, every media graph entity is identified by a
|
* In addition to their graph id, media graph entities are identified by a
|
||||||
* name() unique in the media device context.
|
* name() unique in the media device context. They implement a function() and
|
||||||
*
|
* may expose a devnode().
|
||||||
* \todo Add support for associating a devnode to the entity when integrating
|
|
||||||
* with DeviceEnumerator.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -255,6 +253,16 @@ void MediaPad::addLink(MediaLink *link)
|
||||||
* \return The entity name
|
* \return The entity name
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \fn MediaEntity::function()
|
||||||
|
* \brief Retrieve the entity's main function
|
||||||
|
*
|
||||||
|
* Media entity functions are expressed using the MEDIA_ENT_F_* macros
|
||||||
|
* defined by the Media Controller API.
|
||||||
|
*
|
||||||
|
* \return The entity's function
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \fn MediaEntity::deviceMajor()
|
* \fn MediaEntity::deviceMajor()
|
||||||
* \brief Retrieve the major number of the interface associated with the entity
|
* \brief Retrieve the major number of the interface associated with the entity
|
||||||
|
@ -336,7 +344,7 @@ MediaEntity::MediaEntity(MediaDevice *dev,
|
||||||
const struct media_v2_entity *entity,
|
const struct media_v2_entity *entity,
|
||||||
unsigned int major, unsigned int minor)
|
unsigned int major, unsigned int minor)
|
||||||
: MediaObject(dev, entity->id), name_(entity->name),
|
: MediaObject(dev, entity->id), name_(entity->name),
|
||||||
major_(major), minor_(minor)
|
function_(entity->function), major_(major), minor_(minor)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue