libsstvenc
Asynchronous Analogue SSTV encoder
Loading...
Searching...
No Matches
cw.h
Go to the documentation of this file.
1#ifndef _SSTVENC_CW_H
2#define _SSTVENC_CW_H
3
41/*
42 * © Stuart Longland VK4MSL
43 * SPDX-License-Identifier: MIT
44 */
45
49#include <stddef.h>
50#include <stdint.h>
51
52/* Forward declaration of CW pair type, for internal use. */
53struct sstvenc_cw_pair;
54
64#define SSTVENC_CW_MOD_STATE_INIT (0)
65
70#define SSTVENC_CW_MOD_STATE_NEXT_SYM (1)
71
75#define SSTVENC_CW_MOD_STATE_MARK (2)
76
80#define SSTVENC_CW_MOD_STATE_DITSPACE (3)
81
85#define SSTVENC_CW_MOD_STATE_DAHSPACE (4)
86
91#define SSTVENC_CW_MOD_STATE_DONE (5)
92
114 double output;
115
127 const char* text_string;
128
130 const struct sstvenc_cw_pair* symbol;
131
134
137
139 uint16_t dit_period;
140
142 uint8_t state;
143
145 uint8_t pos;
146};
147
166void sstvenc_cw_init(struct sstvenc_cw_mod* const cw, const char* text,
167 double amplitude, double frequency, double dit_period,
168 double slope_period, uint32_t sample_rate,
169 uint8_t time_unit);
170
175void sstvenc_cw_compute(struct sstvenc_cw_mod* const cw);
176
188size_t sstvenc_cw_fill_buffer(struct sstvenc_cw_mod* const cw, double* buffer,
189 size_t buffer_sz);
190
192#endif
struct sstvenc_oscillator osc
Definition cw.h:133
double output
Definition cw.h:114
const char * text_string
Definition cw.h:127
uint8_t pos
Definition cw.h:145
struct sstvenc_pulseshape ps
Definition cw.h:136
uint16_t dit_period
Definition cw.h:139
const struct sstvenc_cw_pair * symbol
Definition cw.h:130
uint8_t state
Definition cw.h:142
void sstvenc_cw_compute(struct sstvenc_cw_mod *const cw)
Definition cw.c:507
void sstvenc_cw_init(struct sstvenc_cw_mod *const cw, const char *text, double amplitude, double frequency, double dit_period, double slope_period, uint32_t sample_rate, uint8_t time_unit)
Definition cw.c:312
size_t sstvenc_cw_fill_buffer(struct sstvenc_cw_mod *const cw, double *buffer, size_t buffer_sz)
Definition cw.c:529
uint32_t sample_rate
Definition pulseshape.h:95