You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

22 lines
1.2 KiB

/* uTun: происхождение PCM без изменения DSP. Индексы — сэмплы НА КАНАЛ от clear().
* Copy: out[i] происходит из input0+i. Mix: источники input0+i и input1+i,
* вес второго i/count, первого 1-i/count. Это описание происхождения, не PCM.
* Reset начинает новую шкалу. Invalid запрещает её использование до clear().
* Callback синхронный: нельзя вызывать SoundTouch повторно, блокировать поток или
* сохранять ссылку на событие. Ошибки передаются через Invalid; логирует потребитель. */
#ifndef SOUNDTOUCH_SOURCE_SPAN_H
#define SOUNDTOUCH_SOURCE_SPAN_H
#include <cstdint>
namespace soundtouch {
enum class SourceKind { Reset, Copy, Mix, Invalid };
enum class SourceError { None, Profile, Reconfigure, Flush, LateAttach };
struct SourceSpan {
SourceKind kind;
SourceError error = SourceError::None;
uint64_t output = 0, input0 = 0, input1 = 0;
uint32_t count = 0;
};
using SourceCallback = void (*)(void*, const SourceSpan&);
}
#endif