3 changed files with 30 additions and 0 deletions
@ -0,0 +1,22 @@ |
|||||||
|
/* 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 |
||||||
Loading…
Reference in new issue