Example #1
0
void handle_key_3(s32 val) {
    // alt mode
    altMode = (val > 0);
    if(altMode) {
        if(inPresetSelect) {
            // load selected preset
            print_dbg("\r\n recalling preset from ins page, idx:");
            print_dbg_ulong(preset_get_select());
            preset_recall(preset_get_select());
            inPresetSelect = 0;
            redraw_outs();
        }
    }
    show_foot();
}
Example #2
0
// function key handlers
void handle_key_0(s32 val) {
    if(val == 0) {
        return;
    }
    if(altMode) {
        ///// follow
        // select target on ins page
        tmpTarget = net_get_target(*pageSelect);
        if(tmpTarget >= 0) {
            pages[ePageIns].select = tmpTarget;
            set_page(ePageIns);
            redraw_ins();
        }
    } else {
        // store
        // show selected preset name
        draw_preset_name();
        if(check_key(0)) {
            // store in preset
            net_set_out_preset(*pageSelect, 1);
            preset_store_out(preset_get_select(), *pageSelect);
            // redraw selected line
            render_line(*pageSelect, 0xa);
            render_scroll_apply_hl(SCROLL_CENTER_LINE, 1);
            // TODO: store directly in scene?
        }
    }
    show_foot();
}
Example #3
0
// toggle preset inclusion for output
u8 net_toggle_out_preset(u32 id) {
  u8 tmp = preset_out_enabled(preset_get_select(), id) ^ 1;
  //  net->outs[id].preset ^= 1;
  //  return net->outs[id].preset;
  print_dbg("\r\n toggled output-preset_enable");
  print_dbg(", out: ");
  print_dbg_ulong(id);
  print_dbg(", flag: ");
  print_dbg_ulong(tmp);
  preset_get_selected()->outs[id].enabled = tmp;
  return tmp;
}
Example #4
0
//------------------------
//-- handlers
// function keys
void handle_key_0(s32 val) {
  if(val == 0) { return; }

  if(altMode) {
    // gather
    /// TODO
  } else {
    // show selected preset name
    draw_preset_name();
    if(check_key(0)) {
      // store in preset
      net_set_in_preset(*pageSelect, 1);
      preset_store_in(preset_get_select(), *pageSelect);
      // redraw selected line
      render_line(*pageSelect, 0xf);
      render_to_scroll_line(SCROLL_CENTER_LINE, 1);
    }
  }
  show_foot();
}
Example #5
0
// redraw based on provisional preset seleciton
void redraw_outs_preset (void) {
  //  s32 max = net_num_outs() - 1;
  u8 i=0;
  u8 idx = *pageSelect - 3;
  u8 fg;
  u8 enabled;
  s16 target;
  s16 targetOpIdx = -1;
  s16 srcOpIdx; 
  s32 preSel = preset_get_select();
  //  print_dbg("\r\n redraw_outs_preset()");

  while(i<8) {
    region_fill(lineRegion, 0x0);
    if(idx >= net_num_outs() ) { return; }

    enabled = preset_out_enabled(preSel, idx);
    if(enabled) {
      // if it's enabled, show the preset's target (including if blank)
      target = preset_get_selected()->outs[idx].target;
      srcOpIdx = net_out_op_idx(idx);
      targetOpIdx = net_in_op_idx(target);
      if(target >= 0) {
	//// output has target
	// the network doesn't actually execute connections from an op to itself.
	// reflect this in UI by dimming this line
	if(targetOpIdx == srcOpIdx) { fg = 0x5; }
	// render output
	clearln();
	appendln_idx_lj(srcOpIdx);
	appendln_char('.');
	appendln( net_op_name(srcOpIdx));
	appendln_char('/');
	appendln( net_out_name(idx) );
	endln();
	font_string_region_clip(lineRegion, lineBuf, 2, 0, fg, 0);
	// render target
	targetOpIdx = net_in_op_idx(target);
	clearln();
	appendln("-> ");
	if(targetOpIdx >= 0) {
	  // target is operator input
	  appendln_idx_lj(net_in_op_idx(target));
	  appendln_char('.');
	  appendln( net_op_name(net_in_op_idx(target)) );
	  appendln_char('/');
	  appendln( net_in_name(target) );
	} else {
	  // target is parameter input
	  appendln_idx_lj( (int)net_param_idx(target)); 
	  appendln_char('.');
	  appendln( net_in_name(target)); 
	}
	endln();
	font_string_region_clip(lineRegion, lineBuf, 60, 0, fg, 0);
	clearln();
      } else {
	//// no target
	// render output
	clearln();
	appendln_idx_lj(net_out_op_idx(idx));
	appendln_char('.');
	appendln( net_op_name(net_out_op_idx(idx)));
	appendln_char('/');
	appendln( net_out_name(idx) );
	endln();
	font_string_region_clip(lineRegion, lineBuf, 2, 0, fg, 0);
      }
      // draw something to indicate preset inclusion
      if(net_get_out_preset(idx)) {
	font_string_region_clip(lineRegion, ".", 126, 0, fg, 0);
      }
    
    } else {
      // not enabled, draw as normal with dim coloring
      render_line(idx, 0x5);
    }

    render_to_scroll_line(i, 0);
    ++i;
    ++idx;
  }
  draw_preset_name();
}
Example #6
0
// draw preset name in header
void draw_preset_name(void) {
  font_string_region_clip(headRegion, "                  ", 64, 0, 0, 0);
  font_string_region_clip(headRegion, preset_name((u8)preset_get_select()), 64, 0, 0x5, 0);
  headRegion->dirty = 1;
}
Example #7
0
// toggle preset inclusion for output
u8 net_toggle_out_preset(u32 id) {
  u8 tmp = preset_out_enabled(preset_get_select(), id) ^ 1;
  preset_get_selected()->outs[id].enabled = tmp;
  return tmp;
}