Example #1
0
static uint8_t m2_check_fn_get_wh(m2_rom_void_p element, uint8_t msg)
{
  m2_el_fnarg_t arg;
  arg.msg = msg;
  arg.element = element;
  arg.nav = &m2_draw_current;
  return m2_rom_get_el_fnptr(arg.element)(&arg);
}
Example #2
0
int8_t m2_el_s8_get_val(m2_el_fnarg_p fn_arg)
{
  if ( m2_rom_get_el_fnptr(fn_arg->element) == m2_el_s8numfn_fn )
  {
    m2_s8fn_fnptr fn = m2_el_s8_get_callback(fn_arg);
    return fn(fn_arg->element, M2_S8_MSG_GET_VALUE, 0);
  }
  else
  {
    return *m2_el_s8_get_val_ptr(fn_arg);
  }
}
Example #3
0
void m2_el_s8_set_val(m2_el_fnarg_p fn_arg, int8_t val)
{
  if ( m2_rom_get_el_fnptr(fn_arg->element) == m2_el_s8numfn_fn )
  {
    m2_s8fn_fnptr fn = m2_el_s8_get_callback(fn_arg);
    if ( val != fn(fn_arg->element, M2_S8_MSG_GET_VALUE, 0) )
      fn(fn_arg->element, M2_S8_MSG_SET_VALUE, val);
  }
  else
  {
    *m2_el_s8_get_val_ptr(fn_arg) =  val;
  }
}
Example #4
0
static void m2_el_u32_set_accumulator_by_parent(m2_nav_p nav)
{
  m2_rom_void_p element = m2_nav_get_parent_element(nav);
  if ( m2_rom_get_el_fnptr(element) == m2_el_u32fn_fn )
  {
    m2_u32fn_fnptr fn = (m2_u32fn_fnptr)m2_rom_get_ram_ptr(element, offsetof(m2_el_u32fn_t, u32_callback));
    m2_el_u32_accumulator = fn(element, M2_U32_MSG_GET_VALUE, 0);
  }
  else
  {
    m2_el_u32_accumulator = *(uint32_t *)m2_rom_get_ram_ptr(element, offsetof(m2_el_u32_t, val));
  }
}