summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2024-05-30 12:12:29 -0400
committerWilliam Wilgus <wilgus.william@gmail.com>2024-05-30 12:12:29 -0400
commitaca41be3cae3278f102671f9b914d0c9f2b8920d (patch)
treeb4294b9a4c8164786cd685b722072557aac47e48
parent7ec1151dddb0b15796113e41284757408e94a63f (diff)
downloadrockbox-aca41be3cae3278f102671f9b914d0c9f2b8920d.tar.gz
rockbox-aca41be3cae3278f102671f9b914d0c9f2b8920d.zip
[Feature] Simulator add headphone and lineout toggling
Change-Id: I0b019414643e5c9037c0128093488da49e1a4c0d
-rw-r--r--firmware/target/hosted/sdl/button-sdl.c20
-rw-r--r--uisimulator/common/sim_tasks.c30
-rw-r--r--uisimulator/common/sim_tasks.h3
-rw-r--r--uisimulator/common/stubs.c14
4 files changed, 52 insertions, 15 deletions
diff --git a/firmware/target/hosted/sdl/button-sdl.c b/firmware/target/hosted/sdl/button-sdl.c
index dea25bff27..ccfb557014 100644
--- a/firmware/target/hosted/sdl/button-sdl.c
+++ b/firmware/target/hosted/sdl/button-sdl.c
@@ -320,6 +320,26 @@ static void button_event(int key, bool pressed)
320 sim_trigger_usb(usb_connected); 320 sim_trigger_usb(usb_connected);
321 } 321 }
322 return; 322 return;
323#ifdef HAVE_HEADPHONE_DETECTION
324 case SDLK_p:
325 if (!pressed)
326 {
327 static bool hp_connected = false;
328 hp_connected = !hp_connected;
329 sim_trigger_hp(hp_connected);
330 }
331 return;
332#endif
333#ifdef HAVE_LINEOUT_DETECTION
334 case SDLK_l:
335 if (!pressed)
336 {
337 static bool lo_connected = false;
338 lo_connected = !lo_connected;
339 sim_trigger_lo(lo_connected);
340 }
341 return;
342#endif
323#ifdef HAVE_MULTIDRIVE 343#ifdef HAVE_MULTIDRIVE
324 case EXT_KEY: 344 case EXT_KEY:
325 if (!pressed) 345 if (!pressed)
diff --git a/uisimulator/common/sim_tasks.c b/uisimulator/common/sim_tasks.c
index c53b9990fd..03e68c111f 100644
--- a/uisimulator/common/sim_tasks.c
+++ b/uisimulator/common/sim_tasks.c
@@ -144,6 +144,32 @@ void sim_trigger_screendump(void)
144 queue_post(&sim_queue, SIM_SCREENDUMP, 0); 144 queue_post(&sim_queue, SIM_SCREENDUMP, 0);
145} 145}
146 146
147#ifdef HAVE_HEADPHONE_DETECTION
148static bool is_hp_inserted = true;
149bool headphones_inserted(void)
150{
151 return is_hp_inserted;
152}
153void sim_trigger_hp(bool inserted)
154{
155 is_hp_inserted = inserted;
156 DEBUGF("Headphone %s.\n", inserted ? "inserted":"removed");
157}
158#endif
159
160#ifdef HAVE_LINEOUT_DETECTION
161static bool is_lo_inserted = false;
162bool lineout_inserted(void)
163{
164 return is_lo_inserted;
165}
166void sim_trigger_lo(bool inserted)
167{
168 is_lo_inserted = inserted;
169 DEBUGF("Lineout %s.\n", inserted ? "inserted":"removed");
170}
171#endif
172
147static bool is_usb_inserted; 173static bool is_usb_inserted;
148void sim_trigger_usb(bool inserted) 174void sim_trigger_usb(bool inserted)
149{ 175{
@@ -157,8 +183,10 @@ void sim_trigger_usb(bool inserted)
157 { 183 {
158 send_event(SYS_EVENT_USB_EXTRACTED, NULL); 184 send_event(SYS_EVENT_USB_EXTRACTED, NULL);
159 queue_post(&sim_queue, SIM_USB_EXTRACTED, 0); 185 queue_post(&sim_queue, SIM_USB_EXTRACTED, 0);
186 DEBUGF("USB %s.\n", inserted ? "inserted":"removed");
160 } 187 }
161 is_usb_inserted = inserted; 188 is_usb_inserted = inserted;
189
162} 190}
163 191
164int usb_detect(void) 192int usb_detect(void)
@@ -204,6 +232,8 @@ void sim_trigger_external(bool inserted)
204 queue_post(&sim_queue, SIM_EXT_INSERTED, drive); 232 queue_post(&sim_queue, SIM_EXT_INSERTED, drive);
205 else 233 else
206 queue_post(&sim_queue, SIM_EXT_EXTRACTED, drive); 234 queue_post(&sim_queue, SIM_EXT_EXTRACTED, drive);
235
236 DEBUGF("Ext %s\n", inserted ? "inserted":"removed");
207} 237}
208 238
209bool hostfs_present(int drive) 239bool hostfs_present(int drive)
diff --git a/uisimulator/common/sim_tasks.h b/uisimulator/common/sim_tasks.h
index 2bcd09d114..689a4a8566 100644
--- a/uisimulator/common/sim_tasks.h
+++ b/uisimulator/common/sim_tasks.h
@@ -29,5 +29,6 @@ void sim_tasks_init(void);
29void sim_trigger_screendump(void); 29void sim_trigger_screendump(void);
30void sim_trigger_usb(bool inserted); 30void sim_trigger_usb(bool inserted);
31void sim_trigger_external(bool inserted); 31void sim_trigger_external(bool inserted);
32 32void sim_trigger_hp(bool inserted);
33void sim_trigger_lo(bool inserted);
33#endif 34#endif
diff --git a/uisimulator/common/stubs.c b/uisimulator/common/stubs.c
index 5c8e03d6f8..bce7e07227 100644
--- a/uisimulator/common/stubs.c
+++ b/uisimulator/common/stubs.c
@@ -172,20 +172,6 @@ bool rtc_check_alarm_flag(void)
172} 172}
173#endif 173#endif
174 174
175#ifdef HAVE_HEADPHONE_DETECTION
176bool headphones_inserted(void)
177{
178 return true;
179}
180#endif
181
182#ifdef HAVE_LINEOUT_DETECTION
183bool lineout_inserted(void)
184{
185 return false;
186}
187#endif
188
189#ifdef HAVE_SPDIF_POWER 175#ifdef HAVE_SPDIF_POWER
190void spdif_power_enable(bool on) 176void spdif_power_enable(bool on)
191{ 177{