#include <FastLED.h>
#include "fx.h"

#define NUM_LEDS 25
#define MESH_LEDS NUM_LEDS * 3

CRGB leds_ring1[NUM_LEDS + 1];
CRGB leds_ring2[NUM_LEDS + 1];
CRGB leds_ring3[NUM_LEDS + 1];
CRGB leds_ring4[MESH_LEDS + 1];
CRGB meshLeds[MESH_LEDS];

FX fx(meshLeds, MESH_LEDS);

void setup() {
  Serial.begin(115200);
  FastLED.addLeds<NEOPIXEL, 3>(leds_ring1, NUM_LEDS);
  FastLED.addLeds<NEOPIXEL, 4>(leds_ring2, NUM_LEDS);
  FastLED.addLeds<NEOPIXEL, 5>(leds_ring3, NUM_LEDS);
  FastLED.addLeds<NEOPIXEL, 6>(leds_ring4, MESH_LEDS);
}

void loop()
{
  fx.spin();
  memcpy( &leds_ring1, &meshLeds[0*NUM_LEDS], sizeof(CRGB)*NUM_LEDS ); 
  memcpy( &leds_ring2, &meshLeds[1*NUM_LEDS], sizeof(CRGB)*NUM_LEDS ); 
  memcpy( &leds_ring3, &meshLeds[2*NUM_LEDS], sizeof(CRGB)*NUM_LEDS );
  memcpy( &leds_ring4, &meshLeds[0], sizeof(CRGB)*MESH_LEDS );
  FastLED.show();
}