libsstvenc
Asynchronous Analogue SSTV encoder
Loading...
Searching...
No Matches
sequence.h File Reference
#include <libsstvenc/cw.h>
#include <libsstvenc/sstvmod.h>
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
Include dependency graph for sequence.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  sstvenc_sequencer
 
union  sstvenc_sequencer::sstvenc_sequencer_vars
 
struct  sstvenc_sequencer::sstvenc_sequencer_vars::sstvenc_sequencer_vars_silence
 
struct  sstvenc_sequencer::sstvenc_sequencer_vars::sstvenc_sequencer_vars_tone
 
struct  sstvenc_sequencer_step
 
union  sstvenc_sequencer_step::sstvenc_sequence_step_args
 
struct  sstvenc_sequencer_step::sstvenc_sequence_step_args::sstvenc_sequence_step_set_ts_unit
 
struct  sstvenc_sequencer_step::sstvenc_sequence_step_args::sstvenc_sequence_step_set_reg
 
struct  sstvenc_sequencer_step::sstvenc_sequence_step_args::sstvenc_sequence_step_duration
 
struct  sstvenc_sequencer_step::sstvenc_sequence_step_args::sstvenc_sequence_step_cw
 
struct  sstvenc_sequencer_step::sstvenc_sequence_step_args::sstvenc_sequence_step_image
 

Macros

#define SSTVENC_SEQ_STATE_INIT   (0x00)
 
#define SSTVENC_SEQ_STATE_BEGIN_SILENCE   (0x10)
 
#define SSTVENC_SEQ_STATE_GEN_SILENCE   (0x17)
 
#define SSTVENC_SEQ_STATE_GEN_INF_SILENCE   (0x18)
 
#define SSTVENC_SEQ_STATE_END_SILENCE   (0x1f)
 
#define SSTVENC_SEQ_STATE_BEGIN_TONE   (0x20)
 
#define SSTVENC_SEQ_STATE_GEN_TONE   (0x27)
 
#define SSTVENC_SEQ_STATE_GEN_INF_TONE   (0x28)
 
#define SSTVENC_SEQ_STATE_END_TONE   (0x2f)
 
#define SSTVENC_SEQ_STATE_BEGIN_CW   (0x30)
 
#define SSTVENC_SEQ_STATE_GEN_CW   (0x37)
 
#define SSTVENC_SEQ_STATE_END_CW   (0x3f)
 
#define SSTVENC_SEQ_STATE_BEGIN_IMAGE   (0x40)
 
#define SSTVENC_SEQ_STATE_GEN_IMAGE   (0x47)
 
#define SSTVENC_SEQ_STATE_END_IMAGE   (0x4f)
 
#define SSTVENC_SEQ_STATE_DONE   (0xff)
 
#define SSTVENC_SEQ_STEP_TYPE_END   (0x00)
 
#define SSTVENC_SEQ_STEP_TYPE_SET_TS_UNIT   (0x10)
 
#define SSTVENC_SEQ_STEP_TYPE_SET_REGISTER   (0x20)
 
#define SSTVENC_SEQ_STEP_TYPE_INC_REGISTER   (0x22)
 
#define SSTVENC_SEQ_STEP_TYPE_DEC_REGISTER   (0x23)
 
#define SSTVENC_SEQ_STEP_TYPE_MUL_REGISTER   (0x24)
 
#define SSTVENC_SEQ_STEP_TYPE_DIV_REGISTER   (0x25)
 
#define SSTVENC_SEQ_STEP_TYPE_IDEC_REGISTER   (0x2b)
 
#define SSTVENC_SEQ_STEP_TYPE_IDIV_REGISTER   (0x2d)
 
#define SSTVENC_SEQ_STEP_TYPE_EMIT_SILENCE   (0x30)
 
#define SSTVENC_SEQ_STEP_TYPE_EMIT_TONE   (0x40)
 
#define SSTVENC_SEQ_STEP_TYPE_EMIT_CW   (0x50)
 
#define SSTVENC_SEQ_STEP_TYPE_EMIT_IMAGE   (0x60)
 
#define SSTVENC_SEQ_REG_AMPLITUDE   (0)
 
#define SSTVENC_SEQ_REG_FREQUENCY   (1)
 
#define SSTVENC_SEQ_REG_PHASE   (2)
 
#define SSTVENC_SEQ_REG_PULSE_RISE   (3)
 
#define SSTVENC_SEQ_REG_PULSE_FALL   (4)
 
#define SSTVENC_SEQ_REG_DIT_PERIOD   (5)
 
#define SSTVENC_SEQ_NUM_REGS   (5)
 
#define SSTVENC_SEQ_SLOPE_NONE   (0)
 
#define SSTVENC_SEQ_SLOPE_RISING   (1)
 
#define SSTVENC_SEQ_SLOPE_FALLING   (2)
 
#define SSTVENC_SEQ_SLOPE_BOTH   (3)
 

Typedefs

typedef void sstvenc_sequencer_event_cb(struct sstvenc_sequencer *const enc)
 

Functions

void sstvenc_sequencer_step_set_timescale (struct sstvenc_sequencer_step *const step, uint8_t time_unit, _Bool convert)
 
void sstvenc_sequencer_step_set_reg (struct sstvenc_sequencer_step *const step, uint8_t reg, double value)
 
void sstvenc_sequencer_step_inc_reg (struct sstvenc_sequencer_step *const step, uint8_t reg, double value)
 
void sstvenc_sequencer_step_dec_reg (struct sstvenc_sequencer_step *const step, uint8_t reg, double value)
 
void sstvenc_sequencer_step_mul_reg (struct sstvenc_sequencer_step *const step, uint8_t reg, double value)
 
void sstvenc_sequencer_step_div_reg (struct sstvenc_sequencer_step *const step, uint8_t reg, double value)
 
void sstvenc_sequencer_step_idec_reg (struct sstvenc_sequencer_step *const step, uint8_t reg, double value)
 
void sstvenc_sequencer_step_idiv_reg (struct sstvenc_sequencer_step *const step, uint8_t reg, double value)
 
void sstvenc_sequencer_step_silence (struct sstvenc_sequencer_step *const step, double duration)
 
void sstvenc_sequencer_step_tone (struct sstvenc_sequencer_step *const step, double duration, uint8_t slopes)
 
void sstvenc_sequencer_step_cw (struct sstvenc_sequencer_step *const step, const char *text)
 
void sstvenc_sequencer_step_image (struct sstvenc_sequencer_step *const step, const struct sstvenc_mode *const mode, const uint8_t *framebuffer, const char *fsk_id)
 
void sstvenc_sequencer_step_end (struct sstvenc_sequencer_step *const step)
 
void sstvenc_sequencer_init (struct sstvenc_sequencer *const seq, const struct sstvenc_sequencer_step *steps, sstvenc_sequencer_event_cb *event_cb, const void *event_cb_ctx, uint32_t sample_rate)
 
void sstvenc_sequencer_reset (struct sstvenc_sequencer *const seq)
 
void sstvenc_sequencer_advance (struct sstvenc_sequencer *const seq)
 
void sstvenc_sequencer_compute (struct sstvenc_sequencer *const seq)
 
size_t sstvenc_sequencer_fill_buffer (struct sstvenc_sequencer *const seq, double *buffer, size_t buffer_sz)