Duda con receptor infrarrojos

Buenas compañeros!

Le he dado muchas vueltas a un programilla que estoy haciendo y no consigo encontrar la solución, seguramente sea sencilla, pero mis conocimientos no me llegan, pues estoy en fase de auto-aprendizaje.

Es la siguiente:

¿Cómo puedo hacer que el programa "espere" hasta recibir una señal del mando a distancia? (usando la librería IRremote).

Ejemplo:
instruccion 1;
instruccion 2;
recoge señal infrarroja; (espera hasta que le llega alguna)
instruccion 3;

Lo que hace mi programa es que se salta esa espera y por lo tanto no entra a la instrucción 3.
(Si pongo la condición: if (irrecv.decode(&results)) el programa no "espera")

Muchas gracias, ya estoy algo desesperado con esta cuestión.

¿Has pensado con un bucle while con una condición que no salga haste que tengas algun resultado en el receptor?

Te dejo algo de info

void loop() {
  if (irrecv.decode(&results)) {
    unsigned long hash = decodeHash(&results);
    switch (hash) {
    case 0x322ddc47: // Codigo tecla 0
      blink(); 
    case 0xdb78c103: // // Codigo tecla 1
      blink();
      break;
    default:
      Serial.print("Unknown ");
      Serial.println(hash, HEX);    
    }
    irrecv.resume(); // Resume decoding (necessary!)
  }
}

http://arduino.cc/es/Reference/SwitchCase