libmixed
Loading...
Searching...
No Matches
Data Fields
mixed_segment Struct Reference

#include <mixed.h>

Data Fields

int(* free )(struct mixed_segment *segment)
 
int(* info )(struct mixed_segment_info *info, struct mixed_segment *segment)
 
int(* start )(struct mixed_segment *segment)
 
int(* mix )(struct mixed_segment *segment)
 
int(* end )(struct mixed_segment *segment)
 
int(* set_in )(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
 
int(* set_out )(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
 
int(* get_in )(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
 
int(* get_out )(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
 
int(* set )(uint32_t field, void *value, struct mixed_segment *segment)
 
int(* get )(uint32_t field, void *value, struct mixed_segment *segment)
 
void * data
 

Detailed Description

The primary segment struct.

Segments are what make up the mixing pipeline in libmixed. Each segment is responsible for performing some kind of audio operation like generating signals, outputting them, or transforming them in some way.

Each segment should be created by first allocating an instance of this struct, zeroing it out, and then calling the appropriate "make" function to fill in the fields of the struct as required.

A segment's method is considered "not implemented" if its struct field is set to zero.

Each segment must implement the mix method, and at least either the set_in or set_out method. For the documentation of each of the methods, see the corresponding shorthand function below.

Field Documentation

◆ data

void* mixed_segment::data

An opaque pointer to internal data for the segment.

◆ end

int(* mixed_segment::end) (struct mixed_segment *segment)

◆ free

int(* mixed_segment::free) (struct mixed_segment *segment)

◆ get

int(* mixed_segment::get) (uint32_t field, void *value, struct mixed_segment *segment)

◆ get_in

int(* mixed_segment::get_in) (uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)

◆ get_out

int(* mixed_segment::get_out) (uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)

◆ info

int(* mixed_segment::info) (struct mixed_segment_info *info, struct mixed_segment *segment)

◆ mix

int(* mixed_segment::mix) (struct mixed_segment *segment)

◆ set

int(* mixed_segment::set) (uint32_t field, void *value, struct mixed_segment *segment)

◆ set_in

int(* mixed_segment::set_in) (uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)

◆ set_out

int(* mixed_segment::set_out) (uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)

◆ start

int(* mixed_segment::start) (struct mixed_segment *segment)

The documentation for this struct was generated from the following file: