Problema con toma de decisiones

buenas tardes compañeros, estoy trabajando en una automatizacion de un natatorio con Arduino uno, Control remoto y receptor infrarrojo.
Como ven, si apreto un botón leeria el estado de la variable "luces" por ejemplo y si es LOW a través de un else lo cambiaria a HIGH y enviaria el msj por Serial.println ("<1>") y ("<\t>") (porque lo leo desde un programa en vb 6.0).

*El problema esta en que yo quiero comprobar el estado, si es LOW que cambie a HIGH y que mande por monitor serial ("<1>") y ("<\t>")

y si es HIGH que cambie a LOW y que mande por monitor serial ("<11>") y ("<\t>")

Aclaro: utilizo CASE porque quiero agregar mas botones del control remoto para otras salidas.
trate de simplificar el codigo para el ejemplo.

Acá dejo el codigo para alguna ayuda.

Muchas gracias.

#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>

#include <IRremote.h>
int receptor = 11;
int luces = 0;



IRrecv irrecv(receptor);
decode_results codigo; 
 
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); 
  pinMode(luces, OUTPUT);
  
}
 
void loop()

{
 delay(100);
 if (irrecv.decode(&codigo))
 {

  
 switch (codigo.value)
 {
  case 0xFF30CF: 
 
 if (digitalRead(luces))
 digitalWrite(luces, LOW);
 else
 digitalWrite(luces, HIGH);
 Serial.print ("<1>");
 Serial.println ("\t");
 delay(100);
break;
 // ACÁ DEBERIA COMPROBAR SI AL MOMENTO DE APRETAR EL BOTON EL DIGITALWRITE ES (LUCES,HIGH) ENTONCES DEBERIA SER ASI
digitalWrite(luces, LOW);
 Serial.print ("<11>");
 Serial.println ("\t");
 }
 }
}

Edita el titulo :
Tu problema no es el switch case sino esto
> // ACÁ DEBERIA COMPROBAR SI AL MOMENTO DE APRETAR EL BOTON EL DIGITALWRITE ES (LUCES,HIGH) ENTONCES DEBERIA SER ASI
Porque pones de titulo Problema con Switch Case si tu problema es leer el estado del boton?

Si lo que quieres es saber el estado entonces se hace asi

digitalWrite(luces, digitalRead(luces)?LOW :HIGH);

este instrucción es la que hace la magia.
Primero digitalRead(pin) que te dira el estado del pin luces

Y luego con ese estado usas esto

variable ? accion_si_es_VERDADEO : acción_si_FALSO

hay un ? y un : que separan una de otra

prueba a ver

Gracias por la ayuda compañero, la verdad que estoy muy agradecido y contento por las respuestas que me dieron, pero no logro comprender. (aclaro que soy nuevo en esto de la programacion y nunca habia programado en C, solo algunas tonterias en visual basic 6. Es mucho pedir si a mi codigo le agregaras

lo siguiente dentro del case, para que actue segun el estado a la hora de apretar el boton?
he usado IF ELSE NOT IF {} de todo lo que se me ocurrio y he logrado que mande por Serial.println ambos msj a la vez "<1>" y "<11>".. pero yo necesito que envie uno u otro dependiendo si es HIGH o LOW.

digitalWrite(luces, LOW);
 Serial.print ("<11>");
 Serial.println ("\t");