Possible to repeat IR signal without decoding?

Ive messed with a couple of IR libraries and they all seem to handle IR "repeating" by first decoding the signal, then sending it back out after its been decoded, but here is what I would like to do:

  1. When a signal comes in, check it for a hand full of known codes.

  2. If it does not match any of the known codes, then simply repeat the signal in its raw form through two different IR LEDs which will be attached to different devices.

I want to intercept certain codes and prevent them from getting to the devices, but all other codes will be fine including codes unknown...

I'm thinking of some kind of function that somehow reads the pulses from the ir remote then does like a "catch and release" kind of thing without caring at all what those pulses might mean ... but Ive never coded in this space before (microsecond precision and time based signaling) so I need some pointers or advice on how to handle this.

Thank you,


I think I solved this and it seems quite simple. I haven't tested it on any devices yet but when I use a regular LED, I can see the signal being bounced through. Here's a simple sketch showing the solution and it uses the IRRemote library

#include <IRremote.h>

int RECV_PIN = 2;

IRrecv irrecv(RECV_PIN);
IRsend irsend; //Library defaults to pin 3 ... just go with it...

decode_results results;

void setup()
    irrecv.enableIRIn(); // Start the receiver

void loop() {
    if (irrecv.decode(&results)) {
        irsend.sendRaw((unsigned int *) results.rawbuf, results.rawlen, 38);
        irrecv.enableIRIn(); // IRSend disables the receiver so you need to re-enable it.
        irrecv.resume(); //Not sure if this is necessary since it was just enabled.