Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
mpipe_element.h File Reference

Element: the unit a pipeline is built from. More...

#include <stdbool.h>
#include <stdint.h>
#include <zephyr/sys/dlist.h>
#include <zephyr/sys/util.h>
#include <zephyr/mpipe/mpipe_object.h>

Go to the source code of this file.

Data Structures

struct  mpipe_element
 Element base class. More...

Macros

#define MPIPE_STATE_GET_NEXT(cur, target)
 Calculate the next state.
#define MPIPE_STATE_TRANSITION(cur, next)
 Create state transition value.
#define MPIPE_STATE_TRANSITION_CURRENT(trans)
 Extract the current state from the state transition.
#define MPIPE_STATE_TRANSITION_NEXT(trans)
 Extract the next state from the state transition.

Enumerations

enum  mpipe_state { MPIPE_STATE_READY = 0 , MPIPE_STATE_PAUSED = 1 , MPIPE_STATE_PLAYING = 2 }
 States of an element. More...
enum  mpipe_state_change { MPIPE_STATE_CHANGE_READY_TO_PAUSED , MPIPE_STATE_CHANGE_PAUSED_TO_PLAYING , MPIPE_STATE_CHANGE_PLAYING_TO_PAUSED , MPIPE_STATE_CHANGE_PAUSED_TO_READY }
 enum mpipe_state_change More...

Functions

int mpipe_element_init (struct mpipe_element *self, uint8_t id)
 Initialize an element.
static void mpipe_element_set_name (struct mpipe_element *self, const char *name)
 Name an element for the pipeline dump.
void mpipe_element_reset_pad_caps (struct mpipe_element *element)
 Reset every pad of an element to constraining nothing.
void mpipe_element_add_pad (struct mpipe_element *element, struct mpipe_pad *pad)
 Attach a pad to an element.
int mpipe_element_link (struct mpipe_element *element_1, struct mpipe_element *element_2,...)
 Link elements together.
int mpipe_element_set_state (struct mpipe_element *element, enum mpipe_state state)
 Set the state of an element.
struct zbus_channel * mpipe_element_get_bus_chan (struct mpipe_element *element)
 Get the bus channel of an element.

Detailed Description

Element: the unit a pipeline is built from.