mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2025-08-23 23:38:02 +00:00
Added CTCSS in Soundboard
This commit is contained in:
@@ -43,6 +43,12 @@ void AudioTXProcessor::execute(const buffer_c8_t& buffer){
|
||||
audio_fifo.out(sample);
|
||||
//preview_audio_buffer.p[ai++] = sample << 8;
|
||||
|
||||
if (ctcss_enabled) {
|
||||
ctcss_sample = sine_table_i8[(ctcss_phase & 0x03FC0000) >> 18];
|
||||
int16_t mix = (sample * 218) + (ctcss_sample * 37); // ~15%
|
||||
sample = mix >> 8;
|
||||
}
|
||||
|
||||
if ((audio_fifo.len() < 1024) && (asked == false)) {
|
||||
// Ask application to fill up fifo
|
||||
sigmessage.signaltype = 1;
|
||||
@@ -53,6 +59,8 @@ void AudioTXProcessor::execute(const buffer_c8_t& buffer){
|
||||
as--;
|
||||
}
|
||||
|
||||
ctcss_phase += ctcss_phase_inc;
|
||||
|
||||
// FM
|
||||
frq = sample * bw;
|
||||
|
||||
@@ -79,6 +87,8 @@ void AudioTXProcessor::on_message(const Message* const msg) {
|
||||
// a = 262144 / 1536000 (*1000 = 171)
|
||||
bw = 171 * (message->bw);
|
||||
divider = message->divider;
|
||||
ctcss_phase_inc = message->ctcss_phase_inc;
|
||||
ctcss_enabled = message->ctcss_enabled;
|
||||
as = 0;
|
||||
|
||||
configured = true;
|
||||
|
@@ -44,9 +44,11 @@ private:
|
||||
uint32_t bw;
|
||||
uint32_t divider;
|
||||
uint8_t as = 0;
|
||||
uint32_t ctcss_phase_inc;
|
||||
bool ctcss_enabled;
|
||||
|
||||
int8_t re, im;
|
||||
int8_t sample;
|
||||
int8_t ctcss_sample, sample;
|
||||
|
||||
bool asked = false;
|
||||
|
||||
@@ -58,7 +60,7 @@ private:
|
||||
|
||||
FIFOSignalMessage sigmessage;
|
||||
|
||||
uint32_t aphase, phase, sphase;
|
||||
uint32_t ctcss_phase, phase, sphase;
|
||||
int32_t frq;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user