xtc/src/mixer/mix_internal.h

24 lines
768 B
C

#ifndef XTC_MIX_INTERNAL_H
#define XTC_MIX_INTERNAL_H
#include "../project/project_internal.h"
typedef struct {
uint64_t sample, tick;
size_t track;
unsigned int parameter;
float value;
} xtc_mix_point;
typedef struct {
xtc_track_info tracks[XTC_PROJECT_MAX_TRACKS];
size_t count, offsets[XTC_PROJECT_MAX_TRACKS][2], lengths[XTC_PROJECT_MAX_TRACKS][2];
xtc_mix_point points[XTC_MAX_AUTOMATION_POINTS];
int any_solo;
} xtc_mix_snapshot;
xtc_result xtc_mix_prepare(const xtc_project *, unsigned int rate, xtc_mix_snapshot *);
size_t xtc_mix_track(const xtc_mix_snapshot *, uint64_t id);
/* side 0/1 stereo, 2 mono (gain only). */
float xtc_mix_level(const xtc_mix_snapshot *, size_t track, uint64_t sample, unsigned int side);
#endif