aboutsummaryrefslogtreecommitdiffstats
path: root/src/simulator
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2019-04-11 16:22:04 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2019-04-11 16:22:04 +0200
commiteed7072d6336a3cfdc8b52eb20166529a4de4d81 (patch)
tree1505819a1216406e6f15c4315bed93750c7ed68d /src/simulator
parent3555e921a0c743dbc2cc10d8655827be975c61e0 (diff)
downloadglutte-o-matic-eed7072d6336a3cfdc8b52eb20166529a4de4d81.tar.gz
glutte-o-matic-eed7072d6336a3cfdc8b52eb20166529a4de4d81.tar.bz2
glutte-o-matic-eed7072d6336a3cfdc8b52eb20166529a4de4d81.zip
Add some 1750 detection code to glutt-o-logic
Diffstat (limited to 'src/simulator')
-rw-r--r--src/simulator/src/Audio/audio.c8
-rw-r--r--src/simulator/src/Audio/audio_in.c37
-rw-r--r--src/simulator/src/Gui/gui.c5
-rw-r--r--src/simulator/src/Gui/nuklear.h2
4 files changed, 34 insertions, 18 deletions
diff --git a/src/simulator/src/Audio/audio.c b/src/simulator/src/Audio/audio.c
index 31f4c98..ab9773a 100644
--- a/src/simulator/src/Audio/audio.c
+++ b/src/simulator/src/Audio/audio.c
@@ -48,15 +48,19 @@ void audio_initialize_platform(int __attribute__ ((unused))plln, int __attribute
ss.rate = rate;
+ fprintf(stderr, "Pulseaudio out init\n");
s = pa_simple_new(NULL, "Glutte", PA_STREAM_PLAYBACK, NULL, "playback", &ss, NULL, NULL, &error);
+ fprintf(stderr, "Pulseaudio %p\n", s);
if (!s) {
- printf("Pulseaudio playback init error\n");
+ fprintf(stderr, "Pulseaudio playback init error\n");
while(1);
}
+
TaskHandle_t task_handle;
+ fprintf(stderr, "Pulseaudio task\n");
xTaskCreate(
audio_buffer_sender,
"Audio buffer sender",
@@ -64,7 +68,7 @@ void audio_initialize_platform(int __attribute__ ((unused))plln, int __attribute
(void*) NULL,
tskIDLE_PRIORITY + 2UL,
&task_handle);
-
+ fprintf(stderr, "Pulseaudio buffer sender created\n");
}
static void audio_buffer_sender(void __attribute__ ((unused)) *args) {
diff --git a/src/simulator/src/Audio/audio_in.c b/src/simulator/src/Audio/audio_in.c
index 936fe1c..d17e8bc 100644
--- a/src/simulator/src/Audio/audio_in.c
+++ b/src/simulator/src/Audio/audio_in.c
@@ -26,15 +26,31 @@
#include <assert.h>
#include <pulse/simple.h>
#include "Audio/audio_in.h"
+#include "Audio/tone.h"
#include "FreeRTOS.h"
#include "task.h"
+#include "queue.h"
pa_simple *s_in = NULL;
+static QueueHandle_t adc2_values_queue;
-static void audio_buffer_reader(void *args);
+static void audio_buffer_reader(void __attribute__((unused))*args)
+{
+ while (1) {
+ int16_t buffer[AUDIO_IN_BUF_LEN];
+ pa_simple_read(s_in, buffer, AUDIO_IN_BUF_LEN * sizeof(int16_t), NULL);
+ int success = xQueueSendToBack(
+ adc2_values_queue,
+ buffer,
+ portMAX_DELAY);
+ assert(success);
+ taskYIELD();
+ }
+}
-void audio_in_initialize_plateform(int rate) {
+
+void audio_in_initialize(int rate) {
int error;
static pa_sample_spec ss = {
@@ -46,9 +62,11 @@ void audio_in_initialize_plateform(int rate) {
ss.rate = rate;
s_in = pa_simple_new(NULL, "GlutteR", PA_STREAM_RECORD, NULL, "record", &ss, NULL, NULL, &error);
-
assert(s_in);
+ adc2_values_queue = xQueueCreate(4, AUDIO_IN_BUF_LEN);
+ assert(adc2_values_queue);
+
TaskHandle_t task_handle;
xTaskCreate(
audio_buffer_reader,
@@ -59,13 +77,8 @@ void audio_in_initialize_plateform(int rate) {
&task_handle);
}
-static void audio_buffer_reader(void __attribute__ ((unused)) *args) {
-
- while(1) {
- pa_simple_read(s_in, audio_in_buffer, AUDIO_IN_BUF_LEN * 2, NULL);
- audio_in_buffer_ready();
-
- taskYIELD();
- }
-
+void audio_in_get_buffer(int16_t *buffer /*of length AUDIO_IN_BUF_LEN*/ )
+{
+ while (!xQueueReceive(adc2_values_queue, buffer, portMAX_DELAY)) {}
}
+
diff --git a/src/simulator/src/Gui/gui.c b/src/simulator/src/Gui/gui.c
index fd4fe7a..f6f9ab9 100644
--- a/src/simulator/src/Gui/gui.c
+++ b/src/simulator/src/Gui/gui.c
@@ -152,6 +152,7 @@ int gui_in_sq_n = 1;
int gui_in_u = 0;
int gui_in_d = 0;
int gui_in_replie = 0;
+int gui_in_tone_1750 = 0;
static const char *replie_status[] = {"In vent", "RepliƩ"};
int gui_in_fax_n = 1;
@@ -163,8 +164,6 @@ int in_u = 0;
int in_d = 0;
int in_fax_n = 1;
-extern int TONE_1750_DETECTED;
-
/**
* FSM
@@ -821,7 +820,7 @@ void main_gui() {
nk_property_float(ctx, "V", 0.0f, &gui_measured_voltage, 24.0f, 0.5f, 0.5f);
- if (TONE_1750_DETECTED) {
+ if (gui_in_tone_1750) {
c = color_on;
} else {
c = color_off;
diff --git a/src/simulator/src/Gui/nuklear.h b/src/simulator/src/Gui/nuklear.h
index 5602251..3d10c4a 100644
--- a/src/simulator/src/Gui/nuklear.h
+++ b/src/simulator/src/Gui/nuklear.h
@@ -13625,7 +13625,7 @@ nk_do_color_picker(nk_flags *state,
* ===============================================================*/
NK_API void nk_style_default(struct nk_context *ctx){nk_style_from_table(ctx, 0);}
#define NK_COLOR_MAP(NK_COLOR)\
- NK_COLOR(NK_COLOR_TEXT, 175,175,175,255) \
+ NK_COLOR(NK_COLOR_TEXT, 255,255,255,255) \
NK_COLOR(NK_COLOR_WINDOW, 45, 45, 45, 255) \
NK_COLOR(NK_COLOR_HEADER, 40, 40, 40, 255) \
NK_COLOR(NK_COLOR_BORDER, 65, 65, 65, 255) \