Skip to content

Commit

Permalink
buf: add API functions for accessing comp_buffer lists
Browse files Browse the repository at this point in the history
this commit adds functions for accessing sink_list and
source_list from comp_buffer structure

Signed-off-by: Marcin Szkudlinski <[email protected]>
  • Loading branch information
marcinszkudlinski committed Sep 16, 2024
1 parent 76e650e commit 0a7e3a7
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions src/include/sof/audio/component.h
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,49 @@ struct comp_dev {
#endif
};

/**
* Get a pointer to a first comp_buffer object providing data to the component
* The procedure will return NULL if there's no data provider
*/
static inline struct comp_buffer *comp_dev_get_first_data_producer(struct comp_dev *component)
{
return list_is_empty(&component->bsource_list) ? NULL :
list_first_item(&component->bsource_list, struct comp_buffer, sink_list);
}

/**
* Get a pointer to a next comp_buffer object providing data to the component
* The procedure will return NULL if there're no more data providers
*/
static inline struct comp_buffer *comp_dev_get_next_data_producer(struct comp_dev *component,
struct comp_buffer *producer)
{
return producer->sink_list.next == &component->bsource_list ? NULL :
list_item(producer->sink_list.next, struct comp_buffer, sink_list);
}

/**
* Get a pointer to a first comp_buffer object recieving data from the component
* The procedure will return NULL if there's no data consumers
*/
static inline struct comp_buffer *comp_dev_get_first_data_consumer(struct comp_dev *component)
{
return list_is_empty(&component->bsink_list) ? NULL :
list_first_item(&component->bsink_list, struct comp_buffer, source_list);
}

/**
* Get a pointer to a next comp_buffer object providing data to the component
* The procedure will return NULL if there're no more data providers
*/
static inline struct comp_buffer *comp_dev_get_next_data_consumer(struct comp_dev *component,
struct comp_buffer *consumer)
{
return consumer->source_list.next == &component->bsink_list ? NULL :
list_item(consumer->source_list.next, struct comp_buffer, source_list);
}


/** @}*/

/* Common helper function used internally by the component implementations
Expand Down

0 comments on commit 0a7e3a7

Please sign in to comment.