init
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
//
|
||||
// Created by bruno on 13. 7. 2026.
|
||||
//
|
||||
|
||||
#ifndef AUDIOCODER_ENCODER_H
|
||||
#define AUDIOCODER_ENCODER_H
|
||||
|
||||
#define SAMPLE_RATE 48000
|
||||
#define MAX_BITS 16
|
||||
#define CLOCK_VOICE MAX_BITS
|
||||
#define MAX_PACKET 223
|
||||
|
||||
#include <SDL_audio.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct SynthVoice {
|
||||
uint32_t phase;
|
||||
uint32_t phaseStep;
|
||||
uint16_t frequency;
|
||||
uint8_t volume;
|
||||
} SynthVoice;
|
||||
|
||||
typedef enum {
|
||||
TX_IDLE,
|
||||
TX_PREAMBLE,
|
||||
TX_SYNC,
|
||||
TX_DATA,
|
||||
TX_END
|
||||
} TxState;
|
||||
|
||||
|
||||
typedef struct {
|
||||
|
||||
unsigned int bitCount;
|
||||
|
||||
unsigned int byteIndex;
|
||||
unsigned int bitIndex;
|
||||
uint8_t buffer[1024 * 1024 * 8];
|
||||
unsigned int bufferSize;
|
||||
|
||||
|
||||
|
||||
uint16_t startFreq;
|
||||
uint16_t endFreq;
|
||||
uint16_t dataSpacing;
|
||||
|
||||
|
||||
uint16_t clock0;
|
||||
uint16_t clock1;
|
||||
|
||||
bool clockState;
|
||||
|
||||
|
||||
uint32_t symbolSamples;
|
||||
uint32_t samplesRemaining;
|
||||
|
||||
|
||||
TxState state;
|
||||
uint32_t preambleSymbols;
|
||||
uint32_t syncIndex;
|
||||
|
||||
bool transmitting;
|
||||
|
||||
|
||||
} Encoder;
|
||||
|
||||
|
||||
typedef struct AudioData {
|
||||
SynthVoice synthVoices[MAX_BITS + 1];
|
||||
Encoder *encoder;
|
||||
} AudioData;
|
||||
|
||||
extern Encoder encoder;
|
||||
extern AudioData encodedAudioData;
|
||||
extern SDL_AudioDeviceID dev;
|
||||
|
||||
// Internal audio bus for loopback - simple ring buffer
|
||||
#define INTERNAL_BUFFER_SIZE 262144
|
||||
extern float internalBusSamples[INTERNAL_BUFFER_SIZE];
|
||||
extern volatile uint32_t internalBusWrite;
|
||||
extern volatile uint32_t internalBusRead;
|
||||
|
||||
void startEncoder(Encoder *enc);
|
||||
|
||||
void stopEncoder(Encoder *enc);
|
||||
|
||||
void initAudioEncoder();
|
||||
|
||||
extern const uint8_t syncBytes[4];
|
||||
|
||||
#endif //AUDIOCODER_ENCODER_H
|
||||
Reference in New Issue
Block a user