Browse Source

application: set keymap of 2 remotes for animations

spark_strober
King Kévin 4 years ago
parent
commit
e78e67c0e8
  1. 139
      application.c

139
application.c

@ -306,25 +306,126 @@ static void ir_action(const struct ir_nec_code_t* code) @@ -306,25 +306,126 @@ static void ir_action(const struct ir_nec_code_t* code)
if (code->repeat) { // don't handle long button press repeating the code
return;
}
if (0 != code->address) { // current remote uses this address
return;
}
switch (code->command) {
case 0x30: // power button
strobe_toggle();
printf("toggle strobe\n");
break;
case 0x88: // 1 button
strobe_play(strobe_single, LENGTH(strobe_single));
printf("strobe animation 1\n");
break;
case 0x48: // 2 button
strobe_play(strobe_double, LENGTH(strobe_double));
printf("strobe animation 2\n");
break;
default:
printf("unknown code\n");
break;
if (0x00f7 == code->address) { // flat LED IR remote
switch (code->command) { // choose animation depending on button
case 0x00: // UP
strobe_toggle();
printf("toggle strobe\n");
break;
case 0x80: // DOWN
printf("start flickering\n");
flicker_off = false; // let flickering happen in main loop
break;
case 0xc0: // ON
strobe_on();
printf("light on\n");
break;
case 0x40: // OFF
strobe_off();
flicker_off = true; // stop flickering
printf("light off\n");
break;
case 0x20: // red
case 0x10: // orange
case 0x30: // orange
case 0x08: // orange
case 0x28: // organe
printf("1 strobe\n");
strobe_play(strobe1, LENGTH(strobe1));
break;
case 0xa0: // green
case 0x90: // green
case 0xb0: // green
case 0x88: // green
case 0xa8: // green
printf("2 strobes\n");
strobe_play(strobe2, LENGTH(strobe2));
break;
case 0x60: // blue
case 0x50: // blue
case 0x70: // blue
case 0x48: // blue
case 0x68: // blue
printf("3 strobes\n");
strobe_play(strobe3, LENGTH(strobe3));
break;
case 0xe0: // W
case 0xd0: // flash
case 0xc8: // fade
case 0xf0: // strobe
printf("5 strobes\n");
strobe_play(strobe5, LENGTH(strobe5));
break;
case 0xe8: // smooth
printf("10 strobes\n");
strobe_play(strobe10, LENGTH(strobe10));
break;
default:
printf("unknown code\n");
break;
}
} else if (0x407f == code->address) { // iDual remote
switch (code->command) { // choose animation depending on button
case 0x08: // brightness down
strobe_toggle();
printf("toggle strobe\n");
break;
case 0x90: // brightness up
printf("start flickering\n");
flicker_off = false; // let flickering happen in main loop
break;
case 0x80: // ON
strobe_on();
printf("light on\n");
break;
case 0x40: // OFF
strobe_off();
flicker_off = true; // stop flickering
printf("light off\n");
break;
case 0x88: // left
case 0x48:
case 0xc8:
case 0x28:
printf("1 strobe\n");
strobe_play(strobe1, LENGTH(strobe1));
break;
case 0x68: // middle-left
case 0xe8:
case 0x18:
case 0x98:
printf("2 strobes\n");
strobe_play(strobe2, LENGTH(strobe2));
break;
case 0x50: // middle-right
case 0xd0:
case 0x30:
case 0xb0:
printf("3 strobes\n");
strobe_play(strobe3, LENGTH(strobe3));
break;
case 0xc0: // right
case 0x20:
case 0xa0:
case 0x60:
printf("5 strobes\n");
strobe_play(strobe5, LENGTH(strobe5));
break;
case 0x70: // circle
case 0xa8:
case 0x58:
case 0xf0:
case 0xe0:
case 0x10:
printf("10 strobes\n");
strobe_play(strobe10, LENGTH(strobe10));
break;
default:
printf("unknown code\n");
break;
}
} else {
printf("unknown remote\n");
}
}

Loading…
Cancel
Save