1#ifndef _SSTVENC_PULSESHAPE_H
2#define _SSTVENC_PULSESHAPE_H
35#define SSTVENC_PS_PHASE_INIT (0)
44#define SSTVENC_PS_PHASE_RISE (1)
58#define SSTVENC_PS_PHASE_HOLD (2)
67#define SSTVENC_PS_PHASE_FALL (3)
75#define SSTVENC_PS_PHASE_DONE (4)
83#define SSTVENC_PS_HOLD_TIME_INF SSTVENC_TS_INFINITE
149 double rise_time,
double hold_time,
double fall_time,
150 uint32_t sample_rate, uint8_t time_unit);
186 double* buffer,
size_t buffer_sz);
size_t sstvenc_psosc_fill_buffer(struct sstvenc_pulseshape *const ps, struct sstvenc_oscillator *const osc, double *buffer, size_t buffer_sz)
void sstvenc_ps_advance(struct sstvenc_pulseshape *const ps)
void sstvenc_ps_compute(struct sstvenc_pulseshape *const ps)
void sstvenc_ps_init(struct sstvenc_pulseshape *const ps, double amplitude, double rise_time, double hold_time, double fall_time, uint32_t sample_rate, uint8_t time_unit)
void sstvenc_ps_reset(struct sstvenc_pulseshape *const ps, double hold_time, uint8_t time_unit)
void sstvenc_ps_reset_samples(struct sstvenc_pulseshape *const ps, uint32_t hold_time)