0
1
mirror of https://github.com/radio95-rnt/rds95.git synced 2026-02-27 12:53:53 +01:00
Files
rds95/src/modulator.h
2025-03-15 23:16:37 +01:00

33 lines
784 B
C

#pragma once
#include "common.h"
#include "rds.h"
#include "waveforms.h"
#pragma pack(1)
typedef struct
{
float level;
uint8_t rdsgen : 2;
} RDSModulatorParameters;
typedef struct {
uint8_t bit_buffer[BITS_PER_GROUP];
uint8_t bit_pos : 7;
float sample_buffer[SAMPLE_BUFFER_SIZE];
uint8_t prev_output : 1;
uint8_t cur_output : 1;
uint8_t cur_bit : 1;
uint8_t sample_count;
uint16_t in_sample_index;
uint16_t out_sample_index;
RDSModulatorParameters params;
RDSEncoder* enc;
} RDSModulator;
#pragma pack()
void Modulator_saveToFile(RDSModulatorParameters *emp, const char *option);
void Modulator_loadFromFile(RDSModulatorParameters *emp);
int modulatorsaved();
void init_rds_modulator(RDSModulator* rdsMod, RDSEncoder* enc);
float get_rds_sample(RDSModulator* rdsMod);