| 
							- #pragma once
 - 
 - #include "private/std.h"
 - 
 - #ifdef __cplusplus
 - extern "C" {
 - #endif
 - 
 - // Sample code for reading a stereo buffer:
 - //
 - // bool isLeftConstant = (buffer->constant_mask & (1 << 0)) != 0;
 - // bool isRightConstant = (buffer->constant_mask & (1 << 1)) != 0;
 - //
 - // for (int i = 0; i < N; ++i) {
 - //    float l = data32[0][isLeftConstant ? 0 : i];
 - //    float r = data32[1][isRightConstant ? 0 : i];
 - // }
 - //
 - // Note: checking the constant mask is optional, and this implies that
 - // the buffer must be filled with the constant value.
 - // Rationale: if a buffer reader doesn't check the constant mask, then it may
 - // process garbage samples and in result, garbage samples may be transmitted
 - // to the audio interface with all the bad consequences it can have.
 - //
 - // The constant mask is a hint.
 - typedef struct clap_audio_buffer {
 -    // Either data32 or data64 pointer will be set.
 -    float  **data32;
 -    double **data64;
 -    uint32_t channel_count;
 -    uint32_t latency;       // latency from/to the audio interface
 -    uint64_t constant_mask;
 - } clap_audio_buffer_t;
 - 
 - #ifdef __cplusplus
 - }
 - #endif
 
 
  |