условно работающий первый канал, не вычисляется только duration

This commit is contained in:
2025-04-01 14:42:19 +03:00
parent b577be4b82
commit 40fca38a75
5 changed files with 78 additions and 16 deletions

View File

@@ -11,18 +11,19 @@ void ChannelBuffer_reset(ChannelBuffer_t *buffer) {
}
// Функция добавления элемента в буфер
void ChannelBuffer_push(ChannelBuffer_t *buffer, BufferItem item) {
void ChannelBuffer_push(ChannelBuffer_t *buffer, const BufferItem_t* item) {
if (!item) { return; }
// Проверка на переполнение буфера
if (((buffer->tail + 1) & CHANNEL_BUFFER_SIZE_MASK) == buffer->head) {
buffer->overruns = buffer->overruns + 1;
}
buffer->buffer[buffer->tail] = item;
buffer->buffer[buffer->tail] = *item;
buffer->tail = (buffer->tail + 1) & CHANNEL_BUFFER_SIZE_MASK;
}
// Функция извлечения элемента из буфера
int ChannelBuffer_pop(ChannelBuffer_t *buffer, BufferItem* dest) {
int ChannelBuffer_pop(ChannelBuffer_t *buffer, BufferItem_t* dest) {
const uint32_t h = buffer->head;
if (h == buffer->tail) {
return 0;