libmixed
Loading...
Searching...
No Matches
mixed.h
Go to the documentation of this file.
1#ifndef __LIBMIXED_H__
2#define __LIBMIXED_H__
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7#if defined MIXED_STATIC
8# define MIXED_EXPORT
9#elif defined _MSC_VER
10# if defined MIXED_BUILD
11# define MIXED_EXPORT __declspec(dllexport)
12# else
13# define MIXED_EXPORT __declspec(dllimport)
14# endif
15#elif defined __GNUC__
16# if defined MIXED_BUILD
17# define MIXED_EXPORT __attribute__((visibility("default")))
18# else
19# define MIXED_EXPORT
20# endif
21#else
22# define MIXED_EXPORT
23#endif
24#include <stdint.h>
25#include <stdlib.h>
26#include "mixed_encoding.h"
27
34
39
44
51
135
150
385 };
386
414
423
432
441
449
457
470
498
526
564
567 typedef uint8_t mixed_channel_t;
568
571 typedef float mixed_decibel_t;
572
575 typedef float mixed_duration_t;
576
585 float *_data;
586 uint32_t size;
587 uint32_t read;
588 uint32_t write;
589 uint32_t reserved;
593 };
594
607 unsigned char *_data;
608 uint32_t size;
609 uint32_t read;
610 uint32_t write;
611 uint32_t reserved;
620 uint32_t samplerate;
621 };
622
652
686
707 int (*free)(struct mixed_segment *segment);
708 int (*info)(struct mixed_segment_info *info, struct mixed_segment *segment);
709 int (*start)(struct mixed_segment *segment);
710 int (*mix)(struct mixed_segment *segment);
711 int (*end)(struct mixed_segment *segment);
712 int (*set_in)(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment);
713 int (*set_out)(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment);
714 int (*get_in)(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment);
715 int (*get_out)(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment);
716 int (*set)(uint32_t field, void *value, struct mixed_segment *segment);
717 int (*get)(uint32_t field, void *value, struct mixed_segment *segment);
720 void *data;
721 };
722
732 MIXED_EXPORT int mixed_make_pack(uint32_t frames, struct mixed_pack *pack);
733
748 MIXED_EXPORT int mixed_pack_request_write(void **area, uint32_t *size, struct mixed_pack *pack);
751 MIXED_EXPORT int mixed_pack_finish_write(uint32_t size, struct mixed_pack *pack);
754 MIXED_EXPORT int mixed_pack_request_read(void **area, uint32_t *size, struct mixed_pack *pack);
757 MIXED_EXPORT int mixed_pack_finish_read(uint32_t size, struct mixed_pack *pack);
758
761 MIXED_EXPORT int mixed_make_buffer(uint32_t size, struct mixed_buffer *buffer);
762
766
778 MIXED_EXPORT int mixed_buffer_from_pack(struct mixed_pack *in, struct mixed_buffer **outs, float *volume, float target_volume);
779
791 MIXED_EXPORT int mixed_buffer_to_pack(struct mixed_buffer **ins, struct mixed_pack *out, float *volume, float target_volume);
792
801
811
816
820
824
842 MIXED_EXPORT int mixed_buffer_request_write(float **area, uint32_t *size, struct mixed_buffer *buffer);
843
851 MIXED_EXPORT int mixed_buffer_finish_write(uint32_t size, struct mixed_buffer *buffer);
852
863 MIXED_EXPORT int mixed_buffer_request_read(float **area, uint32_t *size, struct mixed_buffer *buffer);
864
871 MIXED_EXPORT int mixed_buffer_finish_read(uint32_t size, struct mixed_buffer *buffer);
872
877 MIXED_EXPORT int mixed_buffer_resize(uint32_t size, struct mixed_buffer *buffer);
878
887#define with_mixed_buffer_transfer(i, samples, inv, in, outv, out, body){ \
888 uint32_t samples = UINT32_MAX; \
889 struct mixed_buffer *__in = in; \
890 struct mixed_buffer *__out = out; \
891 float *inv, *outv; \
892 if(__in == __out){ \
893 mixed_buffer_request_read(&inv, &samples, __in); \
894 outv = inv; \
895 for(uint32_t i=0; i<samples; ++i) \
896 body; \
897 }else{ \
898 mixed_buffer_request_read(&inv, &samples, __in); \
899 mixed_buffer_request_write(&outv, &samples, __out); \
900 for(uint32_t i=0; i<samples; ++i) \
901 body; \
902 mixed_buffer_finish_read(samples, __in); \
903 mixed_buffer_finish_write(samples, __out); \
904 } \
905 }
906
917
923
932
938
949 MIXED_EXPORT int mixed_segment_set_in(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment);
950
961 MIXED_EXPORT int mixed_segment_set_out(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment);
962
971 MIXED_EXPORT int mixed_segment_get_in(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment);
972
981 MIXED_EXPORT int mixed_segment_get_out(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment);
982
991
1004 MIXED_EXPORT int mixed_segment_set(uint32_t field, void *value, struct mixed_segment *segment);
1005
1018 MIXED_EXPORT int mixed_segment_get(uint32_t field, void *value, struct mixed_segment *segment);
1019
1030 MIXED_EXPORT int mixed_make_segment_unpacker(struct mixed_pack *packed, uint32_t samplerate, struct mixed_segment *segment);
1031
1042 MIXED_EXPORT int mixed_make_segment_packer(struct mixed_pack *packed, uint32_t samplerate, struct mixed_segment *segment);
1043
1062
1065 MIXED_EXPORT int mixed_make_segment_compressor(uint32_t samplerate, struct mixed_segment *segment);
1066
1074 MIXED_EXPORT int mixed_make_segment_volume_control(float volume, float pan, struct mixed_segment *segment);
1075
1091 MIXED_EXPORT int mixed_make_segment_fade(float from, float to, float time, enum mixed_fade_type type, uint32_t samplerate, struct mixed_segment *segment);
1092
1099 MIXED_EXPORT int mixed_make_segment_generator(enum mixed_generator_type type, uint32_t frequency, uint32_t samplerate, struct mixed_segment *segment);
1100
1147 MIXED_EXPORT int mixed_make_segment_ladspa(char *file, uint32_t index, uint32_t samplerate, struct mixed_segment *segment);
1148
1178 MIXED_EXPORT int mixed_make_segment_space_mixer(uint32_t samplerate, struct mixed_segment *segment);
1179
1207 MIXED_EXPORT int mixed_make_segment_plane_mixer(uint32_t samplerate, struct mixed_segment *segment);
1208
1218 MIXED_EXPORT int mixed_make_segment_delay(float time, uint32_t samplerate, struct mixed_segment *segment);
1219
1228 MIXED_EXPORT int mixed_make_segment_repeat(float time, uint32_t samplerate, struct mixed_segment *segment);
1229
1236 MIXED_EXPORT int mixed_make_segment_pitch(float pitch, uint32_t samplerate, struct mixed_segment *segment);
1237
1246 MIXED_EXPORT int mixed_make_segment_gate(uint32_t samplerate, struct mixed_segment *segment);
1247
1252
1262 MIXED_EXPORT int mixed_make_segment_biquad_filter(enum mixed_biquad_filter type, float frequency, uint32_t samplerate, struct mixed_segment *segment);
1263
1270
1278
1294 MIXED_EXPORT int mixed_make_segment_fwd_fft(uint32_t samplerate, struct mixed_segment *segment);
1295 MIXED_EXPORT int mixed_make_segment_inv_fft(uint32_t samplerate, struct mixed_segment *segment);
1296
1315
1321
1326
1331 MIXED_EXPORT int mixed_queue_remove_at(uint32_t pos, struct mixed_segment *queue);
1332
1335
1339
1343
1348 MIXED_EXPORT int mixed_make_segment_channel_convert(uint8_t in, uint8_t out, uint32_t samplerate, struct mixed_segment *segment);
1349
1354
1358 MIXED_EXPORT int mixed_make_segment_quantize(uint32_t steps, struct mixed_segment *segment);
1359
1364 MIXED_EXPORT int mixed_chain_add(struct mixed_segment *segment, struct mixed_segment *chain);
1365
1370 MIXED_EXPORT int mixed_chain_add_at(uint32_t i, struct mixed_segment *segment, struct mixed_segment *chain);
1371
1378 MIXED_EXPORT int mixed_chain_remove(struct mixed_segment *segment, struct mixed_segment *chain);
1379
1386 MIXED_EXPORT int mixed_chain_remove_at(uint32_t i, struct mixed_segment *chain);
1387
1392 typedef int (*mixed_make_segment_function)(void *args, struct mixed_segment *segment);
1393
1398 typedef int (*mixed_register_segment_function)(char *name, uint32_t argc, struct mixed_segment_field_info *args, mixed_make_segment_function function);
1399
1403 typedef int (*mixed_deregister_segment_function)(char *name);
1404
1410
1416
1425
1432
1434#define MIXED_MAX_MAKE_ARG_COUNT 32
1436#define MIXED_MAX_SEGMENT_COUNT 1024
1438#define MIXED_MAX_SEGMENT_NAME_LENGTH 64
1439
1453 MIXED_EXPORT int mixed_register_segment(char *name, uint32_t argc, struct mixed_segment_field_info *args, mixed_make_segment_function function);
1454
1459
1464 MIXED_EXPORT int mixed_list_segments(uint32_t *count, char **names);
1465
1471 MIXED_EXPORT int mixed_make_segment_info(char *name, uint32_t *argc, const struct mixed_segment_field_info **args);
1472
1478 MIXED_EXPORT int mixed_make_segment(char *name, void *args, struct mixed_segment *segment);
1479
1483
1485 typedef float (*mixed_transfer_function_from)(void *in, float *out, uint8_t stride, uint32_t samples, float volume, float target_volume);
1486
1488 typedef float (*mixed_transfer_function_to)(float *in, void *out, uint8_t stride, uint32_t samples, float volume, float target_volume);
1489
1493
1497
1498 // Perform a fast fourier forward transform on a buffer of samples.
1499 //
1500 // framesize must be a power of two between [2^1, 2^13]
1501 // in and out may be the same buffers, both with framesize number of
1502 // elements. The output buffer will contain framesize/2 frequency bins
1503 // as interleaved real and imaginary parts: [real, imag, real, imag, ...]
1504 MIXED_EXPORT int mixed_fwd_fft(uint16_t framesize, float *in, float *out);
1505
1506 // Performa a fast fourier inverse transform on a buffer of samples.
1507 //
1508 // framesize must be a power of two between [2^1, 2^13]
1509 // in and out may be the same buffers, both with framesize number of
1510 // elements. The input buffer must contain framesize/2 frequency bins
1511 // as interleaved real and imaginary parts: [real, imag, real, imag, ...]
1512 MIXED_EXPORT int mixed_inv_fft(uint16_t framesize, float *in, float *out);
1513
1518 MIXED_EXPORT int mixed_error(void);
1519
1524 MIXED_EXPORT char *mixed_error_string(int error_code);
1525
1529
1533
1535#ifdef MIXED_NO_CUSTOM_ALLOCATOR
1536#define mixed_calloc calloc
1537#define mixed_free free
1538#define mixed_realloc realloc
1539#else
1548 MIXED_EXPORT extern void *(*mixed_calloc)(size_t num, size_t size);
1549
1556 MIXED_EXPORT extern void (*mixed_free)(void *ptr);
1557
1571 MIXED_EXPORT extern void *(*mixed_realloc)(void *ptr, size_t size);
1572#endif
1573
1574#ifdef __cplusplus
1575}
1576#endif
1577#endif
MIXED_EXPORT int mixed_pack_finish_read(uint32_t size, struct mixed_pack *pack)
MIXED_EXPORT int mixed_segment_set_in(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
MIXED_EXPORT int mixed_buffer_finish_read(uint32_t size, struct mixed_buffer *buffer)
MIXED_EXPORT int mixed_make_segment_inv_fft(uint32_t samplerate, struct mixed_segment *segment)
mixed_generator_type
Definition mixed.h:435
@ MIXED_SAWTOOTH
Definition mixed.h:439
@ MIXED_TRIANGLE
Definition mixed.h:438
@ MIXED_SINE
Definition mixed.h:436
@ MIXED_SQUARE
Definition mixed.h:437
MIXED_EXPORT int mixed_make_segment_compressor(uint32_t samplerate, struct mixed_segment *segment)
mixed_segment_info_flags
Definition mixed.h:473
@ MIXED_SET
Definition mixed.h:493
@ MIXED_INPLACE
Definition mixed.h:477
@ MIXED_SEGMENT
Definition mixed.h:490
@ MIXED_OUT
Definition mixed.h:487
@ MIXED_GET
Definition mixed.h:496
@ MIXED_MODIFIES_INPUT
Definition mixed.h:481
@ MIXED_IN
Definition mixed.h:484
mixed_biquad_filter
Definition mixed.h:460
@ MIXED_LOWPASS
Definition mixed.h:461
@ MIXED_BANDPASS
Definition mixed.h:463
@ MIXED_LOWSHELF
Definition mixed.h:467
@ MIXED_PEAKING
Definition mixed.h:465
@ MIXED_NOTCH
Definition mixed.h:464
@ MIXED_ALLPASS
Definition mixed.h:466
@ MIXED_HIGHSHELF
Definition mixed.h:468
@ MIXED_HIGHPASS
Definition mixed.h:462
MIXED_EXPORT int mixed_make_segment_zero(struct mixed_segment *segment)
mixed_repeat_mode
Definition mixed.h:452
@ MIXED_RECORD
Definition mixed.h:453
@ MIXED_RECORD_ONCE
Definition mixed.h:455
@ MIXED_PLAY
Definition mixed.h:454
MIXED_EXPORT int mixed_make_segment_volume_control(float volume, float pan, struct mixed_segment *segment)
MIXED_EXPORT int mixed_make_segment_distribute(struct mixed_segment *segment)
float(* mixed_transfer_function_from)(void *in, float *out, uint8_t stride, uint32_t samples, float volume, float target_volume)
A function to decode a packed sample array to the standardised float buffer format.
Definition mixed.h:1485
MIXED_EXPORT int mixed_fwd_fft(uint16_t framesize, float *in, float *out)
MIXED_EXPORT int mixed_make_segment_space_mixer(uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT int mixed_buffer_from_pack(struct mixed_pack *in, struct mixed_buffer **outs, float *volume, float target_volume)
mixed_segment_field_type
Definition mixed.h:529
@ MIXED_FUNCTION
Definition mixed.h:544
@ MIXED_BOOL
Definition mixed.h:541
@ MIXED_SIZE_T
Definition mixed.h:542
@ MIXED_RESAMPLE_TYPE_ENUM
Definition mixed.h:559
@ MIXED_GENERATOR_TYPE_ENUM
Definition mixed.h:554
@ MIXED_NOISE_TYPE_ENUM
Definition mixed.h:553
@ MIXED_STRING
Definition mixed.h:543
@ MIXED_SEGMENT_SEQUENCE_POINTER
Definition mixed.h:549
@ MIXED_ERROR_ENUM
Definition mixed.h:558
@ MIXED_REPEAT_MODE_ENUM
Definition mixed.h:552
@ MIXED_POINTER
Definition mixed.h:545
@ MIXED_CHANNEL_T
Definition mixed.h:560
@ MIXED_LOCATION_ENUM
Definition mixed.h:550
@ MIXED_PACK_POINTER
Definition mixed.h:548
@ MIXED_DECIBEL_T
Definition mixed.h:561
@ MIXED_SEGMENT_POINTER
Definition mixed.h:546
@ MIXED_FADE_TYPE_ENUM
Definition mixed.h:555
@ MIXED_ATTENUATION_ENUM
Definition mixed.h:556
@ MIXED_BUFFER_POINTER
Definition mixed.h:547
@ MIXED_UNKNOWN
Definition mixed.h:530
@ MIXED_ENCODING_ENUM
Definition mixed.h:557
@ MIXED_BIQUAD_FILTER_ENUM
Definition mixed.h:551
@ MIXED_DURATION_T
Definition mixed.h:562
float(* mixed_transfer_function_to)(float *in, void *out, uint8_t stride, uint32_t samples, float volume, float target_volume)
A function to encode a standardised float sample buffer to a packed array format.
Definition mixed.h:1488
MIXED_EXPORT int mixed_make_segment_void(struct mixed_segment *segment)
MIXED_EXPORT int mixed_make_segment_packer(struct mixed_pack *packed, uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT char * mixed_error_string(int error_code)
float mixed_decibel_t
Definition mixed.h:571
MIXED_EXPORT int mixed_make_segment_basic_mixer(mixed_channel_t channels, struct mixed_segment *segment)
mixed_resample_type
Definition mixed.h:391
@ MIXED_SINC_BEST_QUALITY
Definition mixed.h:397
@ MIXED_SINC_MEDIUM_QUALITY
Definition mixed.h:402
@ MIXED_SINC_FASTEST
Definition mixed.h:405
@ MIXED_ZERO_ORDER_HOLD
Definition mixed.h:409
@ MIXED_LINEAR_INTERPOLATION
Definition mixed.h:412
MIXED_EXPORT int mixed_pack_request_read(void **area, uint32_t *size, struct mixed_pack *pack)
MIXED_EXPORT int mixed_pack_finish_write(uint32_t size, struct mixed_pack *pack)
int(* mixed_register_segment_function)(char *name, uint32_t argc, struct mixed_segment_field_info *args, mixed_make_segment_function function)
Definition mixed.h:1398
MIXED_EXPORT int mixed_buffer_transfer(struct mixed_buffer *from, struct mixed_buffer *to)
MIXED_EXPORT int mixed_make_segment_repeat(float time, uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT int mixed_queue_add(struct mixed_segment *news, struct mixed_segment *queue)
MIXED_EXPORT int mixed_make_segment_chain(struct mixed_segment *segment)
MIXED_EXPORT int mixed_make_segment_gate(uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT uint32_t mixed_pack_available_write(struct mixed_pack *pack)
MIXED_EXPORT int mixed_chain_add(struct mixed_segment *segment, struct mixed_segment *chain)
MIXED_EXPORT uint8_t mixed_samplesize(enum mixed_encoding encoding)
MIXED_EXPORT int mixed_chain_remove(struct mixed_segment *segment, struct mixed_segment *chain)
MIXED_EXPORT int mixed_buffer_to_pack(struct mixed_buffer **ins, struct mixed_pack *out, float *volume, float target_volume)
mixed_encoding
Definition mixed.h:138
@ MIXED_DOUBLE
Definition mixed.h:148
@ MIXED_INT24
Definition mixed.h:143
@ MIXED_UINT32
Definition mixed.h:146
@ MIXED_UINT8
Definition mixed.h:140
@ MIXED_INT16
Definition mixed.h:141
@ MIXED_UINT16
Definition mixed.h:142
@ MIXED_UINT24
Definition mixed.h:144
@ MIXED_FLOAT
Definition mixed.h:147
@ MIXED_INT8
Definition mixed.h:139
@ MIXED_INT32
Definition mixed.h:145
MIXED_EXPORT uint32_t mixed_buffer_available_write(struct mixed_buffer *buffer)
MIXED_EXPORT int mixed_segment_get_in(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
MIXED_EXPORT int mixed_make_segment_plane_mixer(uint32_t samplerate, struct mixed_segment *segment)
int(* mixed_deregister_segment_function)(char *name)
Definition mixed.h:1403
MIXED_EXPORT int mixed_chain_remove_at(uint32_t i, struct mixed_segment *chain)
float mixed_duration_t
Definition mixed.h:575
MIXED_EXPORT int mixed_make_segment_delay(float time, uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT int mixed_register_segment(char *name, uint32_t argc, struct mixed_segment_field_info *args, mixed_make_segment_function function)
MIXED_EXPORT int mixed_pack_request_write(void **area, uint32_t *size, struct mixed_pack *pack)
uint8_t mixed_channel_t
Definition mixed.h:567
mixed_location
Definition mixed.h:503
@ MIXED_RIGHT_FRONT
Definition mixed.h:508
@ MIXED_LEFT_FRONT
Definition mixed.h:507
@ MIXED_RIGHT_FRONT_BOTTOM
Definition mixed.h:514
@ MIXED_MONO
Definition mixed.h:504
@ MIXED_LEFT_SIDE
Definition mixed.h:518
@ MIXED_LEFT_REAR_TOP
Definition mixed.h:522
@ MIXED_RIGHT_FRONT_TOP
Definition mixed.h:521
@ MIXED_LEFT_FRONT_TOP
Definition mixed.h:520
@ MIXED_LEFT_REAR
Definition mixed.h:509
@ MIXED_RIGHT_REAR_BOTTOM
Definition mixed.h:516
@ MIXED_CENTER_REAR
Definition mixed.h:524
@ MIXED_CENTER_FRONT
Definition mixed.h:517
@ MIXED_RIGHT_REAR_TOP
Definition mixed.h:523
@ MIXED_LEFT
Definition mixed.h:505
@ MIXED_RIGHT_SIDE
Definition mixed.h:519
@ MIXED_LEFT_REAR_BOTTOM
Definition mixed.h:515
@ MIXED_SUBWOOFER
Definition mixed.h:512
@ MIXED_RIGHT
Definition mixed.h:506
@ MIXED_LEFT_FRONT_BOTTOM
Definition mixed.h:513
@ MIXED_RIGHT_REAR
Definition mixed.h:510
@ MIXED_CENTER
Definition mixed.h:511
MIXED_EXPORT int mixed_make_buffer(uint32_t size, struct mixed_buffer *buffer)
MIXED_EXPORT int mixed_make_segment_fade(float from, float to, float time, enum mixed_fade_type type, uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT void mixed_free_pack(struct mixed_pack *pack)
MIXED_EXPORT int mixed_make_segment_noise(enum mixed_noise_type type, struct mixed_segment *segment)
MIXED_EXPORT int mixed_list_segments(uint32_t *count, char **names)
MIXED_EXPORT int mixed_make_segment_unpacker(struct mixed_pack *packed, uint32_t samplerate, struct mixed_segment *segment)
mixed_attenuation
Definition mixed.h:417
@ MIXED_EXPONENTIAL_ATTENUATION
Definition mixed.h:421
@ MIXED_INVERSE_ATTENUATION
Definition mixed.h:419
@ MIXED_LINEAR_ATTENUATION
Definition mixed.h:420
@ MIXED_NO_ATTENUATION
Definition mixed.h:418
mixed_error
Definition mixed.h:54
@ MIXED_BAD_NAME
A name was too long or malformed.
Definition mixed.h:133
@ MIXED_DUPLICATE_SEGMENT
Definition mixed.h:126
@ MIXED_INVALID_LOCATION
Definition mixed.h:75
@ MIXED_BUFFER_ALLOCATED
Definition mixed.h:120
@ MIXED_MIXING_FAILED
Definition mixed.h:66
@ MIXED_LADSPA_INSTANTIATION_FAILED
Definition mixed.h:99
@ MIXED_NOT_INITIALIZED
Definition mixed.h:72
@ MIXED_BUFFER_FULL
Definition mixed.h:108
@ MIXED_NO_ERROR
Definition mixed.h:57
@ MIXED_BAD_DYNAMIC_LIBRARY
Definition mixed.h:93
@ MIXED_UNKNOWN_ENCODING
Definition mixed.h:63
@ MIXED_SEGMENT_ALREADY_STARTED
Definition mixed.h:84
@ MIXED_OUT_OF_MEMORY
Definition mixed.h:60
@ MIXED_BUFFER_MISSING
Definition mixed.h:123
@ MIXED_BUFFER_EMPTY
Definition mixed.h:105
@ MIXED_RESAMPLE_FAILED
Definition mixed.h:102
@ MIXED_BAD_SEGMENT
Definition mixed.h:129
@ MIXED_BAD_ARGUMENT_COUNT
A function was specified with a bad number of arguments.
Definition mixed.h:131
@ MIXED_LADSPA_NO_PLUGIN_AT_INDEX
Definition mixed.h:96
@ MIXED_NOT_IMPLEMENTED
Definition mixed.h:69
@ MIXED_DYNAMIC_OPEN_FAILED
Definition mixed.h:90
@ MIXED_BUFFER_OVERCOMMIT
Definition mixed.h:111
@ MIXED_BAD_RESAMPLE_FACTOR
Definition mixed.h:114
@ MIXED_SEGMENT_ALREADY_ENDED
Definition mixed.h:87
@ MIXED_INVALID_VALUE
Definition mixed.h:81
@ MIXED_BAD_CHANNEL_CONFIGURATION
Definition mixed.h:117
@ MIXED_INVALID_FIELD
Definition mixed.h:78
MIXED_EXPORT int mixed_load_plugin(char *file)
MIXED_EXPORT int mixed_make_segment_fwd_fft(uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT uint32_t mixed_pack_available_read(struct mixed_pack *pack)
MIXED_EXPORT int mixed_buffer_finish_write(uint32_t size, struct mixed_buffer *buffer)
MIXED_EXPORT int mixed_chain_add_at(uint32_t i, struct mixed_segment *segment, struct mixed_segment *chain)
MIXED_EXPORT int mixed_segment_get(uint32_t field, void *value, struct mixed_segment *segment)
MIXED_EXPORT int mixed_segment_start(struct mixed_segment *segment)
MIXED_EXPORT void mixed_free_buffer(struct mixed_buffer *buffer)
MIXED_EXPORT char * mixed_type_string(int code)
MIXED_EXPORT int mixed_close_plugin(char *file)
MIXED_EXPORT int mixed_make_segment_pitch(float pitch, uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT uint32_t mixed_buffer_available_read(struct mixed_buffer *buffer)
MIXED_EXPORT int mixed_make_segment_generator(enum mixed_generator_type type, uint32_t frequency, uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT int mixed_make_segment(char *name, void *args, struct mixed_segment *segment)
mixed_noise_type
Definition mixed.h:444
@ MIXED_PINK_NOISE
Definition mixed.h:446
@ MIXED_BROWN_NOISE
Definition mixed.h:447
@ MIXED_WHITE_NOISE
Definition mixed.h:445
int(* mixed_free_plugin_function)(mixed_deregister_segment_function registrar)
Definition mixed.h:1415
MIXED_EXPORT int mixed_segment_mix(struct mixed_segment *segment)
MIXED_EXPORT int mixed_make_segment_channel_convert(uint8_t in, uint8_t out, uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT int mixed_segment_set(uint32_t field, void *value, struct mixed_segment *segment)
MIXED_EXPORT int mixed_make_segment_quantize(uint32_t steps, struct mixed_segment *segment)
MIXED_EXPORT mixed_transfer_function_to mixed_translator_to(enum mixed_encoding encoding)
MIXED_EXPORT char * mixed_version(void)
MIXED_EXPORT int mixed_make_segment_ladspa(char *file, uint32_t index, uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT int mixed_free_segment(struct mixed_segment *segment)
MIXED_EXPORT int mixed_buffer_request_read(float **area, uint32_t *size, struct mixed_buffer *buffer)
MIXED_EXPORT int mixed_make_pack(uint32_t frames, struct mixed_pack *pack)
MIXED_EXPORT int mixed_buffer_clear(struct mixed_buffer *buffer)
MIXED_EXPORT int mixed_queue_remove_at(uint32_t pos, struct mixed_segment *queue)
MIXED_EXPORT int mixed_make_segment_biquad_filter(enum mixed_biquad_filter type, float frequency, uint32_t samplerate, struct mixed_segment *segment)
MIXED_EXPORT void(* mixed_free)(void *ptr)
MIXED_EXPORT int mixed_queue_clear(struct mixed_segment *queue)
Remove all segments from the queue.
MIXED_EXPORT mixed_transfer_function_from mixed_translator_from(enum mixed_encoding encoding)
MIXED_EXPORT int mixed_make_segment_queue(struct mixed_segment *segment)
MIXED_EXPORT int mixed_segment_get_out(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
MIXED_EXPORT int mixed_buffer_request_write(float **area, uint32_t *size, struct mixed_buffer *buffer)
MIXED_EXPORT int mixed_segment_end(struct mixed_segment *segment)
MIXED_EXPORT int mixed_segment_set_out(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
mixed_segment_fields
Definition mixed.h:153
@ MIXED_IN_COUNT
Definition mixed.h:304
@ MIXED_COMPRESSOR_PREDELAY
Definition mixed.h:353
@ MIXED_REPEAT_POSITION
Definition mixed.h:372
@ MIXED_SPACE_MIN_DISTANCE
Definition mixed.h:226
@ MIXED_REPEAT_MODE
Definition mixed.h:288
@ MIXED_GATE_HOLD
Definition mixed.h:275
@ MIXED_MIX
Definition mixed.h:324
@ MIXED_GAIN
Definition mixed.h:297
@ MIXED_SPACE_ROLLOFF
Definition mixed.h:236
@ MIXED_FADE_TO
Definition mixed.h:181
@ MIXED_BYPASS
Definition mixed.h:159
@ MIXED_COMPRESSOR_RATIO
Definition mixed.h:344
@ MIXED_GATE_ATTACK
Definition mixed.h:271
@ MIXED_GATE_RELEASE
Definition mixed.h:279
@ MIXED_Q
Definition mixed.h:300
@ MIXED_RESAMPLE_TYPE
Definition mixed.h:171
@ MIXED_BUFFER_SIZE_HINT
Definition mixed.h:384
@ MIXED_DELAY_TIME
Definition mixed.h:256
@ MIXED_PITCH_SHIFT
Definition mixed.h:259
@ MIXED_VOLUME_CONTROL_PAN
Definition mixed.h:175
@ MIXED_GENERATOR_FREQUENCY
Definition mixed.h:190
@ MIXED_COMPRESSOR_ATTACK
Definition mixed.h:347
@ MIXED_PLANE_VELOCITY
Definition mixed.h:332
@ MIXED_FADE_TYPE
Definition mixed.h:187
@ MIXED_FADE_FROM
Definition mixed.h:178
@ MIXED_SPACE_LOCATION
Definition mixed.h:198
@ MIXED_COMPRESSOR_PREGAIN
Definition mixed.h:335
@ MIXED_OVERSAMPLING
Definition mixed.h:378
@ MIXED_SPACE_DOPPLER_FACTOR
Definition mixed.h:221
@ MIXED_SPACE_ATTENUATION
Definition mixed.h:253
@ MIXED_PLANE_LOCATION
Definition mixed.h:328
@ MIXED_SAMPLERATE
Definition mixed.h:162
@ MIXED_SPACE_MAX_DISTANCE
Definition mixed.h:231
@ MIXED_COMPRESSOR_GAIN
Definition mixed.h:363
@ MIXED_QUANTIZE_STEPS
Definition mixed.h:317
@ MIXED_CHANNEL_COUNT_IN
Definition mixed.h:366
@ MIXED_FREQUENCY
Definition mixed.h:291
@ MIXED_BUFFER
Definition mixed.h:156
@ MIXED_GATE_OPEN_THRESHOLD
Definition mixed.h:263
@ MIXED_SPACE_UP
Definition mixed.h:210
@ MIXED_OUT_COUNT
Definition mixed.h:308
@ MIXED_NOISE_TYPE
Definition mixed.h:282
@ MIXED_SPACE_VELOCITY
Definition mixed.h:206
@ MIXED_COMPRESSOR_RELEASE
Definition mixed.h:350
@ MIXED_COMPRESSOR_KNEE
Definition mixed.h:341
@ MIXED_FRAMESIZE
Definition mixed.h:375
@ MIXED_REPEAT_TIME
Definition mixed.h:285
@ MIXED_GENERATOR_TYPE
Definition mixed.h:194
@ MIXED_CHANNEL_COUNT_OUT
Definition mixed.h:369
@ MIXED_VOLUME
Definition mixed.h:167
@ MIXED_COMPRESSOR_POSTGAIN
Definition mixed.h:360
@ MIXED_FADE_TIME
Definition mixed.h:184
@ MIXED_GATE_CLOSE_THRESHOLD
Definition mixed.h:267
@ MIXED_CURRENT_SEGMENT
Definition mixed.h:311
@ MIXED_BIQUAD_FILTER
Definition mixed.h:294
@ MIXED_COMPRESSOR_THRESHOLD
Definition mixed.h:338
@ MIXED_SPACE_SOUNDSPEED
Definition mixed.h:216
@ MIXED_COMPRESSOR_RELEASEZONE
Definition mixed.h:357
@ MIXED_SPEED_FACTOR
Definition mixed.h:314
@ MIXED_SPACE_DIRECTION
Definition mixed.h:202
MIXED_EXPORT int mixed_deregister_segment(char *name)
MIXED_EXPORT int mixed_pack_clear(struct mixed_pack *pack)
#define MIXED_EXPORT
Definition mixed.h:22
MIXED_EXPORT int mixed_queue_remove(struct mixed_segment *old, struct mixed_segment *queue)
mixed_fade_type
Definition mixed.h:426
@ MIXED_CUBIC_IN_OUT
Definition mixed.h:430
@ MIXED_CUBIC_OUT
Definition mixed.h:429
@ MIXED_LINEAR
Definition mixed.h:427
@ MIXED_CUBIC_IN
Definition mixed.h:428
MIXED_EXPORT int mixed_buffer_resize(uint32_t size, struct mixed_buffer *buffer)
int(* mixed_make_plugin_function)(mixed_register_segment_function registrar)
Definition mixed.h:1409
MIXED_EXPORT int mixed_inv_fft(uint16_t framesize, float *in, float *out)
MIXED_EXPORT int mixed_make_segment_speed_change(double speed, struct mixed_segment *segment)
int(* mixed_make_segment_function)(void *args, struct mixed_segment *segment)
Definition mixed.h:1392
MIXED_EXPORT int mixed_buffer_copy(struct mixed_buffer *from, struct mixed_buffer *to)
MIXED_EXPORT int mixed_make_segment_info(char *name, uint32_t *argc, const struct mixed_segment_field_info **args)
Definition mixed.h:584
char is_virtual
Definition mixed.h:592
float * _data
Definition mixed.h:585
uint32_t read
Definition mixed.h:587
uint32_t reserved
Definition mixed.h:589
uint32_t size
Definition mixed.h:586
uint32_t write
Definition mixed.h:588
Definition mixed.h:604
uint32_t reserved
Definition mixed.h:611
mixed_channel_t channels
Definition mixed.h:617
uint32_t write
Definition mixed.h:610
unsigned char * _data
Definition mixed.h:607
enum mixed_encoding encoding
Definition mixed.h:614
uint32_t read
Definition mixed.h:609
uint32_t samplerate
Definition mixed.h:620
uint32_t size
Definition mixed.h:608
Definition mixed.h:628
char * description
Definition mixed.h:636
uint32_t field
Definition mixed.h:633
enum mixed_segment_field_type type
Definition mixed.h:647
enum mixed_segment_info_flags flags
Definition mixed.h:641
uint32_t type_count
Definition mixed.h:650
Definition mixed.h:659
const char * name
Definition mixed.h:662
enum mixed_segment_info_flags flags
Definition mixed.h:668
uint32_t min_inputs
Definition mixed.h:671
uint32_t outputs
Definition mixed.h:677
const char * description
Definition mixed.h:665
uint32_t max_inputs
Definition mixed.h:674
struct mixed_segment_field_info fields[32]
Definition mixed.h:684
Definition mixed.h:706
int(* mix)(struct mixed_segment *segment)
Definition mixed.h:710
int(* get_out)(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
Definition mixed.h:715
int(* end)(struct mixed_segment *segment)
Definition mixed.h:711
int(* free)(struct mixed_segment *segment)
Definition mixed.h:707
int(* start)(struct mixed_segment *segment)
Definition mixed.h:709
int(* set)(uint32_t field, void *value, struct mixed_segment *segment)
Definition mixed.h:716
int(* info)(struct mixed_segment_info *info, struct mixed_segment *segment)
Definition mixed.h:708
void * data
Definition mixed.h:720
int(* get_in)(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
Definition mixed.h:714
int(* set_out)(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
Definition mixed.h:713
int(* set_in)(uint32_t field, uint32_t location, void *value, struct mixed_segment *segment)
Definition mixed.h:712
int(* get)(uint32_t field, void *value, struct mixed_segment *segment)
Definition mixed.h:717