libsstvenc
Asynchronous Analogue SSTV encoder
Loading...
Searching...
No Matches
sstv.h
Go to the documentation of this file.
1#ifndef _SSTVENC_SSTV_H
2#define _SSTVENC_SSTV_H
3
40/*
41 * © Stuart Longland VK4MSL
42 * SPDX-License-Identifier: MIT
43 */
44
45#include <assert.h>
46#include <libsstvenc/sstvmode.h>
47#include <stdint.h>
48#include <string.h>
49
57#define SSTVENC_ENCODER_PHASE_INIT (0)
58
60#define SSTVENC_ENCODER_PHASE_VIS (1)
61
63#define SSTVENC_ENCODER_PHASE_INITSEQ (2)
64
71#define SSTVENC_ENCODER_PHASE_SCAN (3)
72
74#define SSTVENC_ENCODER_PHASE_FINALSEQ (4)
75
77#define SSTVENC_ENCODER_PHASE_FSK (5)
78
80#define SSTVENC_ENCODER_PHASE_DONE (6)
81
86/* Forward declaration */
87struct sstvenc_encoder;
88
92typedef void sstvenc_encoder_callback(struct sstvenc_encoder* const enc);
93
100 const struct sstvenc_mode* mode;
101
103 const char* fsk_id;
104
115 const uint8_t* framebuffer;
116
119
122
125
131
136 uint16_t x;
137
141 uint16_t y;
142
146 uint8_t segment;
148
153 uint8_t segment;
154
158 uint8_t seg_sz;
159
163 uint8_t byte;
164
168 uint8_t bv;
169
173 uint8_t bit;
176
180 uint8_t phase;
181};
182
193void sstvenc_encoder_init(struct sstvenc_encoder* const enc,
194 const struct sstvenc_mode* mode, const char* fsk_id,
195 const uint8_t* framebuffer);
196
201const struct sstvenc_encoder_pulse*
203
204#endif
const uint8_t * framebuffer
Definition sstv.h:115
const struct sstvenc_mode * mode
Definition sstv.h:100
const char * fsk_id
Definition sstv.h:103
struct sstvenc_encoder::sstvenc_encoder_phase_data::sstvenc_encoder_phase_scan_data scan
void sstvenc_encoder_callback(struct sstvenc_encoder *const enc)
Definition sstv.h:92
struct sstvenc_encoder::sstvenc_encoder_phase_data::sstvenc_encoder_phase_fsk_data fsk
struct sstvenc_encoder_pulse pulse
Definition sstv.h:124
sstvenc_encoder_callback * seq_done_cb
Definition sstv.h:121
void sstvenc_encoder_init(struct sstvenc_encoder *const enc, const struct sstvenc_mode *mode, const char *fsk_id, const uint8_t *framebuffer)
Definition sstv.c:392
const struct sstvenc_encoder_pulse * seq
Definition sstv.h:118
struct sstvenc_encoder::sstvenc_encoder_phase_data::sstvenc_encoder_phase_vis_data vis
uint8_t phase
Definition sstv.h:180
const struct sstvenc_encoder_pulse * sstvenc_encoder_next_pulse(struct sstvenc_encoder *const enc)
Definition sstv.c:1032
union sstvenc_encoder::sstvenc_encoder_phase_data vars