@@ -138,7 +138,7 @@ void home_to_date_time_Switch1_wired_with_feedback(VideoStream& stream, ProContr
138138}
139139
140140
141- void home_to_date_time_Switch1_wired_blind (ProControllerContext& context, bool to_date_change, bool fast ){
141+ void home_to_date_time_Switch1_wired_blind (ProControllerContext& context, bool to_date_change){
142142 ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 4 );
143143 ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 4 );
144144 ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 4 );
@@ -200,12 +200,11 @@ void home_to_date_time_Switch1_wired_blind(ProControllerContext& context, bool t
200200 }
201201// ssf_issue_scroll(context, SSF_SCROLL_DOWN, 0);
202202
203- // Left scroll in case we missed landed in the language change or sleep
203+ // Left scroll in case we missed and landed in the language change or sleep
204204 // confirmation menus.
205205 ssf_issue_scroll (context, SSF_SCROLL_LEFT, 0ms);
206206}
207-
208- void home_to_date_time_Switch1_wireless_esp32_blind (ProControllerContext& context, bool to_date_change, bool fast){
207+ void home_to_date_time_Switch1_wireless_esp32_blind (ProControllerContext& context, bool to_date_change){
209208 Milliseconds tv = context->timing_variation ();
210209 Milliseconds unit = 24ms + tv;
211210
@@ -275,8 +274,7 @@ void home_to_date_time_Switch1_wireless_esp32_blind(ProControllerContext& contex
275274 ssf_issue_scroll (context, SSF_SCROLL_LEFT, 0ms, 2 *unit, unit);
276275
277276}
278-
279- void home_to_date_time_Switch1_sbb_blind (ProControllerContext& context, bool to_date_change, bool fast){
277+ void home_to_date_time_Switch1_sbb_blind (ProControllerContext& context, bool to_date_change){
280278 Milliseconds tv = context->timing_variation ();
281279// ssf_do_nothing(context, 1500ms);
282280
@@ -313,6 +311,67 @@ void home_to_date_time_Switch1_sbb_blind(ProControllerContext& context, bool to_
313311 ssf_issue_scroll_ptv (context, SSF_SCROLL_DOWN);
314312}
315313
314+ void home_to_date_time_Switch2_wired_blind (ProControllerContext& context, bool to_date_change){
315+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 24ms, 48ms, 24ms);
316+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 24ms, 48ms, 24ms);
317+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 24ms, 48ms, 24ms);
318+
319+ // Down twice in case we drop one.
320+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 24ms, 48ms, 24ms);
321+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 24ms, 48ms, 24ms);
322+
323+ ssf_issue_scroll (context, SSF_SCROLL_LEFT, 24ms, 48ms, 24ms);
324+
325+ // Two A presses in case we drop the 1st one.
326+ ssf_press_button (context, BUTTON_A, 24ms, 48ms, 24ms);
327+ ssf_press_button (context, BUTTON_A, 24ms, 48ms, 24ms);
328+
329+ for (size_t c = 0 ; c < 40 ; c++){
330+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 24ms, 48ms, 24ms);
331+ }
332+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 1000ms, 1000ms, 24ms);
333+
334+ // Scroll left and press A to exit the sleep menu if we happened to
335+ // land there.
336+ ssf_issue_scroll (context, SSF_SCROLL_LEFT, 24ms, 48ms, 24ms);
337+ ssf_press_button (context, BUTTON_A, 3 );
338+
339+ for (size_t c = 0 ; c < 2 ; c++){
340+ ssf_issue_scroll (context, SSF_SCROLL_RIGHT, 24ms, 48ms, 24ms);
341+ }
342+
343+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 24ms, 48ms, 24ms);
344+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 24ms, 48ms, 24ms);
345+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 192ms, 48ms, 24ms);
346+
347+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 128ms, 48ms, 24ms);
348+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 128ms, 48ms, 24ms);
349+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 128ms, 48ms, 24ms);
350+
351+ if (!to_date_change){
352+ // Triple up this A press to make sure it gets through.
353+ ssf_press_button (context, BUTTON_A, 24ms, 48ms, 24ms);
354+ ssf_press_button (context, BUTTON_A, 24ms, 48ms, 24ms);
355+ ssf_press_button (context, BUTTON_A, 360ms, 48ms, 24ms);
356+ return ;
357+ }
358+
359+ // Triple up this A press to make sure it gets through.
360+ ssf_press_button (context, BUTTON_A, 24ms, 48ms, 24ms);
361+ ssf_press_button (context, BUTTON_A, 24ms, 48ms, 24ms);
362+ ssf_press_button (context, BUTTON_A, 24ms, 48ms, 24ms);
363+
364+ for (size_t c = 0 ; c < 5 ; c++){
365+ ssf_issue_scroll (context, SSF_SCROLL_DOWN, 24ms, 48ms, 24ms);
366+ }
367+
368+ // Left scroll in case we missed and landed in the language change or sleep
369+ // confirmation menus.
370+ ssf_issue_scroll (context, SSF_SCROLL_LEFT, 24ms, 48ms, 24ms);
371+ }
372+
373+
374+
316375
317376void home_to_date_time (VideoStream& stream, ProControllerContext& context, bool to_date_change){
318377 switch (context->performance_class ()){
@@ -322,24 +381,24 @@ void home_to_date_time(VideoStream& stream, ProControllerContext& context, bool
322381 }
323382 default :{
324383 // Slow version for tick-imprecise controllers. Blind.
325- home_to_date_time_Switch1_sbb_blind (context, to_date_change, false );
384+ home_to_date_time_Switch1_sbb_blind (context, to_date_change);
326385 }
327386 }
328387}
329388
330389void home_to_date_time (ProControllerContext& context, bool to_date_change, bool fast){
331390 switch (context->performance_class ()){
332391 case ControllerPerformanceClass::SerialPABotBase_Wired_125Hz:{
333- home_to_date_time_Switch1_wired_blind (context, to_date_change, fast );
392+ home_to_date_time_Switch1_wired_blind (context, to_date_change);
334393 break ;
335394 }
336395 case ControllerPerformanceClass::SerialPABotBase_Wireless_ESP32:{
337- home_to_date_time_Switch1_wireless_esp32_blind (context, to_date_change, fast );
396+ home_to_date_time_Switch1_wireless_esp32_blind (context, to_date_change);
338397 break ;
339398 }
340399 default :{
341400 // Slow version for tick-imprecise controllers.
342- home_to_date_time_Switch1_sbb_blind (context, to_date_change, fast );
401+ home_to_date_time_Switch1_sbb_blind (context, to_date_change);
343402 }
344403 }
345404
0 commit comments