led value ubf NEW

Author:
License: GPL
Github: rbrt/testing/led value ubf NEW.axo

Inlets

frac32 v0

frac32 v1

frac32 v2

frac32 v3

frac32 v4

frac32 v5

frac32 v6

frac32 v7

bool32.rising redraw

int32 row

bool32.risingfalling mute

Outlets

None

Attributes

objref LEDmaster

spinner row

combo mode0

combo mode1

combo mode2

combo mode3

combo mode4

combo mode5

combo mode6

combo mode7

Declaration
bool trig;
bool mtrig;

uint8_t prerow;
uint8_t count;

int32_t in[8];
int32_t prev[8];
uint8_t mode[8];

bool doit;
bool update;
uint8_t row;
Init
mode[0] = attr_mode0;
mode[1] = attr_mode1;
mode[2] = attr_mode2;
mode[3] = attr_mode3;
mode[4] = attr_mode4;
mode[5] = attr_mode5;
mode[6] = attr_mode6;
mode[7] = attr_mode7;
Control Rate
if (!inlet_mute && !mtrig) {
  mtrig = 1;
  update = 1;
  count = 0;
}
if (inlet_mute)
  mtrig = 0;
if (!inlet_mute) {
  in[0] = inlet_v0;
  in[1] = inlet_v1;
  in[2] = inlet_v2;
  in[3] = inlet_v3;
  in[4] = inlet_v4;
  in[5] = inlet_v5;
  in[6] = inlet_v6;
  in[7] = inlet_v7;

  row = (inlet_row + attr_row) % 4;

  if (inlet_redraw && !trig) {
    trig = 1;
    update = 1;
    count = 0;
  }
  if (!inlet_redraw)
    trig = 0;
  if (row != prerow) {
    prerow = row;
    update = 1;
    count = 0;
  }

  if ((in[count] != prev[count]) || update) {
    doit = 1;
    prev[count] = in[count];
    attr_LEDmaster.disp_cell_value(mode[count], count, row, in[count]);
  }

  if ((doit && !attr_LEDmaster.ROW) && !attr_LEDmaster.LOCKED) {
    attr_LEDmaster.ROW = row + 1;
    doit = 0;
  }
  count++;
  count = count % 8;
  if (!count)
    update = 0;
}

Privacy

© 2024 Zrna Research