diff --git a/src/modulator.h b/src/modulator.h index d7133e3..7d129ee 100644 --- a/src/modulator.h +++ b/src/modulator.h @@ -3,25 +3,27 @@ #include "rds.h" #include "waveforms.h" +#pragma pack(1) typedef struct { float level; - uint8_t rdsgen; + uint8_t rdsgen : 2; } RDSModulatorParameters; typedef struct { uint8_t bit_buffer[BITS_PER_GROUP]; - uint8_t bit_pos; + uint8_t bit_pos : 7; float sample_buffer[SAMPLE_BUFFER_SIZE]; - uint8_t prev_output; - uint8_t cur_output; - uint8_t cur_bit; + 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);