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
46
#include <
libsstvenc/oscillator.h
>
47
#include <
libsstvenc/pulseshape.h
>
48
#include <
libsstvenc/timescale.h
>
49
#include <stddef.h>
50
#include <stdint.h>
51
52
/* Forward declaration of CW pair type, for internal use. */
53
struct
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
109
struct
sstvenc_cw_mod
{
114
double
output
;
115
127
const
char
*
text_string
;
128
130
const
struct
sstvenc_cw_pair
*
symbol
;
131
133
struct
sstvenc_oscillator
osc
;
134
136
struct
sstvenc_pulseshape
ps
;
137
139
uint16_t
dit_period
;
140
142
uint8_t
state
;
143
145
uint8_t
pos
;
146
};
147
166
void
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
175
void
sstvenc_cw_compute
(
struct
sstvenc_cw_mod
*
const
cw);
176
188
size_t
sstvenc_cw_fill_buffer
(
struct
sstvenc_cw_mod
*
const
cw,
double
* buffer,
189
size_t
buffer_sz);
190
192
#endif
sstvenc_cw_mod::osc
struct sstvenc_oscillator osc
Definition
cw.h:133
sstvenc_cw_mod::output
double output
Definition
cw.h:114
sstvenc_cw_mod::text_string
const char * text_string
Definition
cw.h:127
sstvenc_cw_mod::pos
uint8_t pos
Definition
cw.h:145
sstvenc_cw_mod::ps
struct sstvenc_pulseshape ps
Definition
cw.h:136
sstvenc_cw_mod::dit_period
uint16_t dit_period
Definition
cw.h:139
sstvenc_cw_mod::symbol
const struct sstvenc_cw_pair * symbol
Definition
cw.h:130
sstvenc_cw_mod::state
uint8_t state
Definition
cw.h:142
sstvenc_cw_pair
Definition
cw.c:18
sstvenc_cw_mod
Definition
cw.h:109
sstvenc_cw_compute
void sstvenc_cw_compute(struct sstvenc_cw_mod *const cw)
Definition
cw.c:507
sstvenc_cw_init
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
sstvenc_cw_fill_buffer
size_t sstvenc_cw_fill_buffer(struct sstvenc_cw_mod *const cw, double *buffer, size_t buffer_sz)
Definition
cw.c:529
sstvenc_oscillator
Definition
oscillator.h:29
sstvenc_pulseshape::amplitude
double amplitude
Definition
pulseshape.h:91
sstvenc_pulseshape::sample_rate
uint32_t sample_rate
Definition
pulseshape.h:95
sstvenc_pulseshape
Definition
pulseshape.h:89
oscillator.h
pulseshape.h
timescale.h
include
libsstvenc
cw.h
Generated by
1.12.0