AudioTX, fixed about screen and an LCR address list bug

This commit is contained in:
furrtek 2016-08-17 04:17:24 +02:00
parent 6c0102abd4
commit c2fbc0c8d5
9 changed files with 31 additions and 26 deletions

View file

@ -106,6 +106,13 @@ void set_audiotx_data(const uint32_t bw) {
send_message(&message); send_message(&message);
} }
void set_fifo_data(const int8_t * data) {
const FIFODataMessage message {
data
};
send_message(&message);
}
void set_pwmrssi(int32_t avg, bool enabled) { void set_pwmrssi(int32_t avg, bool enabled) {
const PWMRSSIConfigureMessage message { const PWMRSSIConfigureMessage message {
enabled, enabled,

View file

@ -54,6 +54,7 @@ struct WFMConfig {
void set_ccir_data( const uint32_t samples_per_tone, const uint16_t tone_count); void set_ccir_data( const uint32_t samples_per_tone, const uint16_t tone_count);
void set_audiotx_data(const uint32_t bw); void set_audiotx_data(const uint32_t bw);
void set_fifo_data(const int8_t * data);
void set_pwmrssi(int32_t avg, bool enabled); void set_pwmrssi(int32_t avg, bool enabled);
void set_afsk_data(const uint32_t afsk_samples_per_bit, const uint32_t afsk_phase_inc_mark, const uint32_t afsk_phase_inc_space, void set_afsk_data(const uint32_t afsk_samples_per_bit, const uint32_t afsk_phase_inc_mark, const uint32_t afsk_phase_inc_space,
const uint8_t afsk_repeat, const uint32_t afsk_bw, const bool afsk_alt_format); const uint8_t afsk_repeat, const uint32_t afsk_bw, const bool afsk_alt_format);

View file

@ -29,7 +29,6 @@
#include "portapack.hpp" #include "portapack.hpp"
#include "audio.hpp" #include "audio.hpp"
#include "event_m0.hpp" #include "event_m0.hpp"
#include "baseband_api.hpp"
#include "ui_about.hpp" #include "ui_about.hpp"
#include "touch.hpp" #include "touch.hpp"
@ -318,7 +317,7 @@ void AboutView::render_audio() {
} }
} }
ym_buffer[ym_render_cnt] = (ym_out * 2) - 93; ym_buffer[ym_render_cnt] = (ym_out * 2) - 45;
if (ym_sample_cnt < 960) { if (ym_sample_cnt < 960) {
ym_sample_cnt++; ym_sample_cnt++;

View file

@ -27,6 +27,7 @@
#include "ui_menu.hpp" #include "ui_menu.hpp"
#include "ui_navigation.hpp" #include "ui_navigation.hpp"
#include "transmitter_model.hpp" #include "transmitter_model.hpp"
#include "baseband_api.hpp"
#include <cstdint> #include <cstdint>
@ -156,12 +157,10 @@ private:
MessageHandlerRegistration message_handler_fifo_signal { MessageHandlerRegistration message_handler_fifo_signal {
Message::ID::FIFOSignal, Message::ID::FIFOSignal,
[this](const Message* const p) { [this](const Message* const p) {
FIFODataMessage datamessage;
const auto message = static_cast<const FIFOSignalMessage*>(p); const auto message = static_cast<const FIFOSignalMessage*>(p);
if (message->signaltype == 1) { if (message->signaltype == 1) {
this->render_audio(); this->render_audio();
datamessage.data = ym_buffer; baseband::set_fifo_data(ym_buffer);
EventDispatcher::send_message(datamessage);
} }
} }
}; };

View file

@ -46,7 +46,7 @@ private:
const scan_list_t scan_list[2] = { const scan_list_t scan_list[2] = {
{ 36, &RGSB_list_Lille[0][0] }, { 36, &RGSB_list_Lille[0][0] },
{ 23, &RGSB_list_Reims[0][0] } { 20, &RGSB_list_Reims[0][0] }
}; };
const char RGSB_list_Lille[36][5] = { const char RGSB_list_Lille[36][5] = {
@ -62,7 +62,7 @@ private:
"EbS0" "EbS0"
}; };
const char RGSB_list_Reims[23][5] = { const char RGSB_list_Reims[20][5] = {
"AI10", "AI20", "AI30", "AI40", "AI10", "AI20", "AI30", "AI40",
"AI50", "AI60", "AI70", "AI50", "AI60", "AI70",
"AJ10", "AJ20", "AJ30", "AJ40", "AJ10", "AJ20", "AJ30", "AJ40",

View file

@ -22,7 +22,7 @@
#include "proc_audiotx.hpp" #include "proc_audiotx.hpp"
#include "portapack_shared_memory.hpp" #include "portapack_shared_memory.hpp"
#include "sine_table.hpp" #include "sine_table_int8.hpp"
//#include "audio_output.hpp" //#include "audio_output.hpp"
#include "event_m4.hpp" #include "event_m4.hpp"
@ -37,35 +37,32 @@ void AudioTXProcessor::execute(const buffer_c8_t& buffer){
ai = 0; ai = 0;
for (size_t i = 0; i<buffer.count; i++) { for (size_t i = 0; i<buffer.count; i++) {
//audio_fifo.out(&sample, 1);
// Audio preview sample generation: 1536000/48000 = 32 // Audio preview sample generation: 1536000/48000 = 32
if (as >= 31) { if (as >= 31) {
as = 0; as = 0;
//audio_fifo.out(&sample, 1); audio_fifo.out(sample);
//preview_audio_buffer.p[ai++] = sample << 8; //preview_audio_buffer.p[ai++] = sample << 8;
//if ((audio_fifo.len() < 1024) && (asked == false)) { if ((audio_fifo.len() < 1024) && (asked == false)) {
// Ask application to fill up fifo // Ask application to fill up fifo
sigmessage.signaltype = 1; sigmessage.signaltype = 1;
shared_memory.application_queue.push(sigmessage); shared_memory.application_queue.push(sigmessage);
asked = true; asked = true;
//} }
} else { } else {
as++; as++;
} }
// FM // FM
frq = (int32_t)(sample) * 4 * 2000; frq = sample * 8000;
phase = (phase + frq); phase = (phase + frq);
sphase = phase + (256 << 16); sphase = phase + (64 << 18);
re = (sine_table_f32[(sphase & 0x03FF0000)>>18]*127); re = (sine_table_i8[(sphase & 0x03FC0000) >> 18]);
im = (sine_table_f32[(phase & 0x03FF0000)>>18]*127); im = (sine_table_i8[(phase & 0x03FC0000) >> 18]);
buffer.p[i] = { (int8_t)re, (int8_t)im }; buffer.p[i] = {(int8_t)re, (int8_t)im};
} }
//AudioOutput::fill_audio_buffer(preview_audio_buffer, true); //AudioOutput::fill_audio_buffer(preview_audio_buffer, true);
@ -79,7 +76,7 @@ void AudioTXProcessor::on_message(const Message* const msg) {
break; break;
case Message::ID::FIFOData: case Message::ID::FIFOData:
//audio_fifo.in(static_cast<const FIFODataMessage*>(msg)->data, 1024); audio_fifo.in(static_cast<const FIFODataMessage*>(msg)->data, 1024);
asked = false; asked = false;
break; break;

View file

@ -25,6 +25,7 @@
#include "fifo.hpp" #include "fifo.hpp"
#include "baseband_processor.hpp" #include "baseband_processor.hpp"
#include "baseband_thread.hpp"
class AudioTXProcessor : public BasebandProcessor { class AudioTXProcessor : public BasebandProcessor {
public: public:
@ -35,15 +36,15 @@ public:
private: private:
bool configured = false; bool configured = false;
//std::unique_ptr<int8_t[]> audio_fifo_data = std::make_unique<int8_t[]>(1UL << 11); BasebandThread baseband_thread { 1536000, this, NORMALPRIO + 20, baseband::Direction::Transmit };
//FIFO<int8_t> audio_fifo = { audio_fifo_data.get(), 11 }; // 43ms @ 48000Hz
int8_t audio_fifo_data[2048];
FIFO<int8_t> audio_fifo = { audio_fifo_data, 11 }; // 43ms @ 48000Hz
uint8_t as = 0, ai; uint8_t as = 0, ai;
int8_t re, im; int8_t re, im;
int8_t sample; int8_t sample;
int16_t st;
bool asked = false; bool asked = false;
//int16_t audio_data[64]; //int16_t audio_data[64];

View file

@ -616,12 +616,13 @@ public:
class FIFODataMessage : public Message { class FIFODataMessage : public Message {
public: public:
constexpr FIFODataMessage( constexpr FIFODataMessage(
const int8_t * data
) : Message { ID::FIFOData }, ) : Message { ID::FIFOData },
data ( nullptr ) data ( data )
{ {
} }
int8_t * data; const int8_t * data;
}; };
class CaptureThreadDoneMessage : public Message { class CaptureThreadDoneMessage : public Message {

Binary file not shown.