Skip to content

Commit ea662ab

Browse files
committed
Minor bug fixes
* Fixed radio playing after reconnecting to the wifi network.
1 parent 1d526df commit ea662ab

File tree

3 files changed

+50
-44
lines changed

3 files changed

+50
-44
lines changed

WT32-SC01-PLUS/src/main.cpp

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -211,14 +211,14 @@ void BrightnessControll()
211211
void SetBrightnessDim()
212212
{
213213
tft.setBrightness(1);
214-
lv_slider_set_value(ui_brightnessslider, 1, LV_ANIM_ON);
214+
lv_slider_set_value(ui_brightnessslider, 1, LV_ANIM_OFF);
215215
lv_label_set_text(ui_BrightnessText, "Auto");
216216
lv_obj_add_flag(ui_percentagetext1, LV_OBJ_FLAG_HIDDEN);
217217
}
218218
void SetBrightnessNormal()
219219
{
220220
tft.setBrightness(screen_brightness);
221-
lv_slider_set_value(ui_brightnessslider, screen_brightness, LV_ANIM_ON);
221+
lv_slider_set_value(ui_brightnessslider, screen_brightness, LV_ANIM_OFF);
222222
lv_label_set_text(ui_BrightnessText, "Auto");
223223
lv_obj_add_flag(ui_percentagetext1, LV_OBJ_FLAG_HIDDEN);
224224
}
@@ -392,13 +392,6 @@ void BrightnessDIMMControll()
392392
SetupRadio(); // Setup radio stations for dropdown menu
393393
}
394394
}
395-
xTaskCreatePinnedToCore(radiotask,
396-
"radiotask",
397-
4000,
398-
NULL,
399-
1,
400-
NULL,
401-
1);
402395
xTaskCreatePinnedToCore(WiFiErrorHandling,
403396
"WiFiErrorHandling",
404397
4000,

WT32-SC01-PLUS/src/radio/radio.cpp

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99

1010
Audio audio; // Create audio object
1111
AudioBuffer audio_buffer; // Create audio buffer object
12+
TaskHandle_t *RadioTaskHandle;
1213

1314
int statcount = 0;
15+
int volume = 10;
1416
bool radioIsPlaying, stateisselected = false;
1517
const int ARRAY_SIZE = 7; // Array size for stations
1618
const char *stations[ARRAY_SIZE]{
@@ -40,52 +42,62 @@ void StartStopRadio()
4042
}
4143
void radiotask(void *pvParameters)
4244
{
43-
while (true)
45+
while (isConnected)
4446
{
45-
if (isConnected)
47+
if (lv_obj_has_state(ui_playbtn, LV_EVENT_CLICKED))
4648
{
47-
if (lv_obj_has_state(ui_playbtn, LV_EVENT_CLICKED))
49+
radioIsPlaying = true;
50+
StartStopRadio();
51+
lv_obj_add_flag(ui_playbtn, LV_OBJ_FLAG_HIDDEN);
52+
lv_obj_clear_flag(ui_stopbtn, LV_OBJ_FLAG_HIDDEN);
53+
lv_obj_clear_state(ui_playbtn, LV_EVENT_CLICKED);
54+
}
55+
if (lv_obj_has_state(ui_stopbtn, LV_EVENT_CLICKED))
56+
{
57+
radioIsPlaying = false;
58+
StartStopRadio();
59+
lv_obj_add_flag(ui_stopbtn, LV_OBJ_FLAG_HIDDEN);
60+
lv_obj_clear_flag(ui_playbtn, LV_OBJ_FLAG_HIDDEN);
61+
lv_obj_clear_state(ui_stopbtn, LV_EVENT_CLICKED);
62+
}
63+
if (lv_dropdown_is_open(ui_radiostationdropdown))
64+
stateisselected = true;
65+
else
66+
{
67+
if (stateisselected)
4868
{
69+
statcount = lv_dropdown_get_selected(ui_radiostationdropdown);
4970
radioIsPlaying = true;
5071
StartStopRadio();
51-
lv_obj_add_flag(ui_playbtn, LV_OBJ_FLAG_HIDDEN);
52-
lv_obj_clear_flag(ui_stopbtn, LV_OBJ_FLAG_HIDDEN);
53-
lv_obj_clear_state(ui_playbtn, LV_EVENT_CLICKED);
72+
lv_obj_clear_state(ui_stopbtn, LV_OBJ_FLAG_HIDDEN);
73+
lv_obj_add_state(ui_playbtn, LV_OBJ_FLAG_HIDDEN);
74+
stateisselected = false;
5475
}
55-
if (lv_obj_has_state(ui_stopbtn, LV_EVENT_CLICKED))
56-
{
57-
radioIsPlaying = false;
58-
StartStopRadio();
59-
lv_obj_add_flag(ui_stopbtn, LV_OBJ_FLAG_HIDDEN);
60-
lv_obj_clear_flag(ui_playbtn, LV_OBJ_FLAG_HIDDEN);
61-
lv_obj_clear_state(ui_stopbtn, LV_EVENT_CLICKED);
62-
}
63-
if (lv_dropdown_is_open(ui_radiostationdropdown))
64-
stateisselected = true;
65-
else
66-
{
67-
if (stateisselected)
68-
{
69-
statcount = lv_dropdown_get_selected(ui_radiostationdropdown);
70-
radioIsPlaying = true;
71-
StartStopRadio();
72-
lv_obj_clear_state(ui_stopbtn, LV_OBJ_FLAG_HIDDEN);
73-
lv_obj_add_state(ui_playbtn, LV_OBJ_FLAG_HIDDEN);
74-
stateisselected = false;
75-
}
76-
}
77-
if (lv_slider_is_dragged(ui_volumeslider))
78-
audio.setVolume(lv_slider_get_value(ui_volumeslider));
79-
audio.loop();
8076
}
77+
if (lv_slider_is_dragged(ui_volumeslider))
78+
{
79+
volume = lv_slider_get_value(ui_volumeslider);
80+
audio.setVolume(volume);
81+
}
82+
audio.loop();
8183
}
84+
vTaskDelete(RadioTaskHandle);
8285
}
8386
void SetupRadio()
8487
{
85-
audio.setVolume(50);
88+
lv_slider_set_value(ui_volumeslider,volume,LV_ANIM_OFF);
89+
audio.setVolume(volume);
8690
lv_dropdown_clear_options(ui_radiostationdropdown);
8791
for (int i = 0; i < ARRAY_SIZE; i++) // Setup stations list
8892
lv_dropdown_add_option(ui_radiostationdropdown, stations_name[i], i);
93+
xTaskCreatePinnedToCore(radiotask,
94+
"radiotask",
95+
4000,
96+
NULL,
97+
1,
98+
RadioTaskHandle,
99+
1);
100+
StartStopRadio();
89101
}
90102
void InitRadioPinout()
91103
{

WT32-SC01-PLUS/src/wifi/init_wifi.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,8 @@ void WiFiErrorHandling(void *pvParameters)
4040
WiFi.disconnect();
4141
isConnected = false;
4242
connectOverride = true;
43-
StartWifiFromEEPROM();
44-
if (radioIsPlaying)
45-
StartStopRadio();
43+
if (radioIsPlaying && StartWifiFromEEPROM())
44+
SetupRadio();
4645
}
4746
else
4847
Serial.printf("WiFiErrorHandling: Pinging google.com successful\n");
@@ -134,6 +133,8 @@ bool InitWifi()
134133
isConnected = true;
135134
writeStringToEEPROM(0, WIFI_SSID); // Write SSID to EEPROM
136135
writeStringToEEPROM(64, WIFI_PASS); // Write password to EEPROM
136+
if (radioIsPlaying)
137+
SetupRadio();
137138
}
138139
return isConnected;
139140
}

0 commit comments

Comments
 (0)