@@ -367,19 +367,27 @@ fn main() -> ! {
367367
368368 let mut matrix = LedMatrix :: new ( i2c, DVT2_CALC_PIXEL ) ;
369369
370- matrix. set_address ( 0b0100000 ) ;
371- matrix
372- . setup ( & mut delay)
373- . expect ( "failed to setup RGB controller" ) ;
374- matrix. set_scaling ( 0xFF ) . expect ( "failed to set scaling" ) ;
375- matrix. device . fill ( 0xFF ) ;
376-
377- matrix. set_address ( 0b0100011 ) ;
378- matrix
379- . setup ( & mut delay)
380- . expect ( "failed to setup RGB controller" ) ;
381- matrix. set_scaling ( 0xFF ) . expect ( "failed to set scaling" ) ;
382- matrix. device . fill ( 0xFF ) ;
370+ cfg_if:: cfg_if! {
371+ if #[ cfg( any( feature = "ansi" , feature = "macropad" ) ) ] {
372+ matrix. set_address( 0b0100000 ) ;
373+ matrix
374+ . setup( & mut delay)
375+ . expect( "failed to setup RGB controller" ) ;
376+ matrix. set_scaling( 0xFF ) . expect( "failed to set scaling" ) ;
377+ matrix. device. fill( 0xFF ) ;
378+ }
379+ }
380+
381+ cfg_if:: cfg_if! {
382+ if #[ cfg( feature = "ansi" ) ] {
383+ matrix. set_address( 0b0100011 ) ;
384+ matrix
385+ . setup( & mut delay)
386+ . expect( "failed to setup RGB controller" ) ;
387+ matrix. set_scaling( 0xFF ) . expect( "failed to set scaling" ) ;
388+ matrix. device. fill( 0xFF ) ;
389+ }
390+ }
383391
384392 let timer = Timer :: new ( pac. TIMER , & mut pac. RESETS ) ;
385393 let mut scan_timer = timer. get_counter ( ) . ticks ( ) ;
@@ -427,49 +435,61 @@ fn main() -> ! {
427435
428436 let mut keycode: Option < Keyboard > = None ;
429437 if timer. get_counter ( ) . ticks ( ) > scan_timer + 250_000 {
430- let left = scanner. measure_key ( 6 , 11 ) ;
431- let up = scanner. measure_key ( 1 , 13 ) ;
432- let down = scanner. measure_key ( 1 , 8 ) ;
433- let right = scanner. measure_key ( 2 , 15 ) ;
434- let caps = scanner. measure_key ( 4 , 4 ) ;
435-
436- // let mut text: String<64> = String::new();
437- // write!(
438- // &mut text,
439- // "L:{}.{:0>3}V, R:{}.{:0>3}V, U:{}.{:0>3}V, D:{}.{:0>3}V\r\n",
440- // left.0, left.1, right.0, right.1, up.0, up.1, down.0, down.1
441- // )
442- // .unwrap();
443- // let _ = serial.write(text.as_bytes());
444-
445- let left_p = left. 0 < 2 || ( left. 0 == 2 && left. 1 < 290 ) ;
446- let right_p = right. 0 < 2 || ( right. 0 == 2 && right. 1 < 290 ) ;
447- let up_p = up. 0 < 2 || ( up. 0 == 2 && up. 1 < 290 ) ;
448- let down_p = down. 0 < 2 || ( down. 0 == 2 && down. 1 < 290 ) ;
449- let caps_p = caps. 0 < 2 || ( caps. 0 == 2 && caps. 1 < 290 ) ;
450-
451- // let mut text: String<64> = String::new();
452- // write!(
453- // &mut text,
454- // "L:{:5}, R:{:5}, U:{:5}, D:{:5}\r\n",
455- // left_p, right_p, up_p, down_p
456- // )
457- // .unwrap();
458- // let _ = serial.write(text.as_bytes());
459-
460- if left_p {
461- keycode = Some ( Keyboard :: LeftArrow ) ;
462- } else if right_p {
463- keycode = Some ( Keyboard :: RightArrow ) ;
464- } else if up_p {
465- keycode = Some ( Keyboard :: UpArrow ) ;
466- } else if down_p {
467- keycode = None ;
468- rp2040_hal:: rom_data:: reset_to_usb_boot ( 0 , 0 ) ;
469- } else if caps_p {
470- keycode = Some ( Keyboard :: CapsLock ) ;
471- } else {
472- keycode = None ;
438+ cfg_if:: cfg_if! {
439+ if #[ cfg( any( feature = "ansi" , feature = "iso" , feature = "jis" ) ) ] {
440+ let left = scanner. measure_key( 6 , 11 ) ;
441+ let up = scanner. measure_key( 1 , 13 ) ;
442+ let down = scanner. measure_key( 1 , 8 ) ;
443+ let right = scanner. measure_key( 2 , 15 ) ;
444+ let caps = scanner. measure_key( 4 , 4 ) ;
445+
446+ let left_p = left. 0 < 2 || ( left. 0 == 2 && left. 1 < 290 ) ;
447+ let right_p = right. 0 < 2 || ( right. 0 == 2 && right. 1 < 290 ) ;
448+ let up_p = up. 0 < 2 || ( up. 0 == 2 && up. 1 < 290 ) ;
449+ let down_p = down. 0 < 2 || ( down. 0 == 2 && down. 1 < 290 ) ;
450+ let caps_p = caps. 0 < 2 || ( caps. 0 == 2 && caps. 1 < 290 ) ;
451+
452+ if left_p {
453+ keycode = Some ( Keyboard :: LeftArrow ) ;
454+ } else if right_p {
455+ keycode = Some ( Keyboard :: RightArrow ) ;
456+ } else if up_p {
457+ keycode = Some ( Keyboard :: UpArrow ) ;
458+ } else if down_p {
459+ keycode = None ;
460+ rp2040_hal:: rom_data:: reset_to_usb_boot( 0 , 0 ) ;
461+ } else if caps_p {
462+ keycode = Some ( Keyboard :: CapsLock ) ;
463+ } else {
464+ keycode = None ;
465+ }
466+ }
467+ }
468+
469+ cfg_if:: cfg_if! {
470+ if #[ cfg( any( feature = "numapd" , feature = "macropad" ) ) ] {
471+ let one = scanner. measure_key( 0 , 3 ) ;
472+ let two = scanner. measure_key( 0 , 7 ) ;
473+ let three = scanner. measure_key( 1 , 4 ) ;
474+ let four = scanner. measure_key( 2 , 6 ) ;
475+
476+ let one_p = one. 0 < 2 || ( one. 0 == 2 && one. 1 < 290 ) ;
477+ let two_p = two. 0 < 2 || ( two. 0 == 2 && two. 1 < 290 ) ;
478+ let three_p = three. 0 < 2 || ( three. 0 == 2 && three. 1 < 290 ) ;
479+ let four_p = four. 0 < 2 || ( four. 0 == 2 && four. 1 < 290 ) ;
480+
481+ if one_p {
482+ keycode = Some ( Keyboard :: Keyboard1 ) ;
483+ } else if two_p {
484+ keycode = Some ( Keyboard :: Keyboard2 ) ;
485+ } else if three_p {
486+ keycode = Some ( Keyboard :: Keyboard3 ) ;
487+ } else if four_p {
488+ keycode = Some ( Keyboard :: Keyboard4 ) ;
489+ } else {
490+ keycode = None ;
491+ }
492+ }
473493 }
474494
475495 scan_timer = timer. get_counter ( ) . ticks ( ) ;
0 commit comments