#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