31 lines
1.2 KiB
C
31 lines
1.2 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Только метаданные: PCM и содержимое сообщений не записываются. */
|
|
enum audio_diag_stage {
|
|
AUDIO_DIAG_LOOP, AUDIO_DIAG_READ, AUDIO_DIAG_WRITE, AUDIO_DIAG_MAP,
|
|
AUDIO_DIAG_SUBMIT, AUDIO_DIAG_DUPLEX, AUDIO_DIAG_CALLBACK,
|
|
AUDIO_DIAG_FEED, AUDIO_DIAG_PULL, AUDIO_DIAG_STAGE_COUNT
|
|
};
|
|
enum audio_diag_kind {
|
|
AUDIO_DIAG_ENTER, AUDIO_DIAG_LEAVE, AUDIO_DIAG_OPEN, AUDIO_DIAG_CLOSE,
|
|
AUDIO_DIAG_NOTIFY, AUDIO_DIAG_BACKEND_STARTED, AUDIO_DIAG_HOLE, AUDIO_DIAG_UNFILLED, AUDIO_DIAG_CAPTURE_DROP,
|
|
AUDIO_DIAG_NO_PROGRESS, AUDIO_DIAG_BACKEND_UNDERRUN, AUDIO_DIAG_BACKEND_OVERFLOW, AUDIO_DIAG_ERROR, AUDIO_DIAG_LABEL, AUDIO_DIAG_LOG
|
|
};
|
|
|
|
/* start/stop — управляющий поток; перед stop все producers должны быть остановлены. */
|
|
void audio_diag_start(void);
|
|
void audio_diag_stop(void);
|
|
void audio_diag_event(const void* device, int kind, int stage, int64_t value, int64_t detail);
|
|
void audio_diag_label(const void* device, uint64_t id, const char* name);
|
|
void audio_diag_log(const void* log, unsigned int level, const char* message);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|