0
1
mirror of https://github.com/radio95-rnt/rds95.git synced 2026-02-27 04:43:52 +01:00
Files
rds95/src/modulator.h
2025-12-20 10:17:16 +01:00

39 lines
808 B
C

#pragma once
#include "common.h"
#include "lib.h"
#include "rds.h"
typedef struct
{
float level;
uint8_t rdsgen : 2;
} RDSModulatorParameters;
typedef struct
{
uint8_t check;
RDSModulatorParameters params;
uint16_t crc;
} RDSModulatorParametersFile;
typedef struct
{
uint8_t bit_buffer[BITS_PER_GROUP];
uint8_t bit_pos : 7;
uint8_t prev_output : 1;
uint8_t cur_output : 1;
uint8_t cur_bit : 1;
float symbol_shift;
float phase;
} RDSModulatorModulationData;
typedef struct {
RDSModulatorModulationData *data;
RDSModulatorParameters params;
RDSEncoder* enc;
uint8_t num_streams;
} RDSModulator;
void init_rds_modulator(RDSModulator* rdsMod, RDSEncoder* enc, uint8_t num_streams);
void cleanup_rds_modulator(RDSModulator* rdsMod);
float get_rds_sample(RDSModulator* rdsMod, uint8_t stream);