|
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 |
|
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.