29 double rise_time,
double hold_time,
double fall_time,
30 uint32_t sample_rate, uint8_t time_unit) {
39 if (samples > UINT16_MAX) {
47 if (samples > UINT16_MAX) {
76 / (2 * ((
double)ps->
rise_sz))));
101 / (2 * ((
double)ps->
fall_sz))));
121 double* buffer,
size_t buffer_sz) {
122 size_t written_sz = 0;
void sstvenc_osc_compute(struct sstvenc_oscillator *const osc)
#define SSTVENC_PS_PHASE_HOLD
#define SSTVENC_PS_PHASE_FALL
#define SSTVENC_PS_PHASE_INIT
#define SSTVENC_PS_PHASE_RISE
#define SSTVENC_PS_PHASE_DONE
#define SSTVENC_PS_HOLD_TIME_INF
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)
uint32_t sstvenc_ts_unit_to_samples(double time, uint32_t sample_rate, uint8_t unit)