Ejemplo n.º 1
0
bool isInputSourceAvailable(int source)
{
#if defined(PCBTARANIS) && !defined(REVPLUS)
  if (source == MIXSRC_POT3)
    return false;
#endif

  if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
    return true;

  if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
    return true;

  if (source>=MIXSRC_TrimRud && source<MIXSRC_SW1)
    return true;

  if (source>=MIXSRC_FIRST_CH && source<=MIXSRC_LAST_CH)
    return true;

  if (source>=MIXSRC_FIRST_TRAINER && source<=MIXSRC_LAST_TRAINER)
    return true;

  if (source>=MIXSRC_FIRST_TELEM && source<=MIXSRC_LAST_TELEM)
    return isTelemetrySourceAvailable(source-MIXSRC_FIRST_TELEM+1);

  return false;
}
Ejemplo n.º 2
0
bool isSourceAvailable(int source)
{
#if defined(PCBTARANIS)
    if (source>=MIXSRC_FIRST_INPUT && source<=MIXSRC_LAST_INPUT) {
        return isInputAvailable(source - MIXSRC_FIRST_INPUT);
    }
#endif

#if defined(LUA_MODEL_SCRIPTS)
    if (source>=MIXSRC_FIRST_LUA && source<=MIXSRC_LAST_LUA) {
        div_t qr = div(source-MIXSRC_FIRST_LUA, MAX_SCRIPT_OUTPUTS);
        return (qr.rem<scriptInputsOutputs[qr.quot].outputsCount);
    }
#elif defined(PCBTARANIS)
    if (source>=MIXSRC_FIRST_LUA && source<=MIXSRC_LAST_LUA)
        return false;
#endif

#if defined(PCBTARANIS)
    if (source>=MIXSRC_FIRST_POT && source<=MIXSRC_LAST_POT) {
        return IS_POT_AVAILABLE(POT1+source-MIXSRC_FIRST_POT);
    }
#endif

#if !defined(HELI)
    if (source>=MIXSRC_CYC1 && source<=MIXSRC_CYC3)
        return false;
#endif

    if (source>=MIXSRC_CH1 && source<=MIXSRC_LAST_CH) {
        uint8_t destCh = source-MIXSRC_CH1;
        for (uint8_t i = 0; i < MAX_MIXERS; i++) {
            MixData *md = mixAddress(i);
            if (md->srcRaw == 0) return false;
            if (md->destCh==destCh) return true;
        }
        return false;
    }

    if (source>=MIXSRC_SW1 && source<=MIXSRC_LAST_LOGICAL_SWITCH) {
        LogicalSwitchData * cs = lswAddress(source-MIXSRC_SW1);
        return (cs->func != LS_FUNC_NONE);
    }

#if !defined(GVARS)
    if (source>=MIXSRC_GVAR1 && source<=MIXSRC_LAST_GVAR)
        return false;
#endif

    if (source>=MIXSRC_FIRST_TELEM && source<=MIXSRC_LAST_TELEM)
        return isTelemetrySourceAvailable(source-MIXSRC_FIRST_TELEM+1);

    return true;
}
Ejemplo n.º 3
0
bool isInputSourceAvailable(int source)
{
    if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
        return true;

    if (source>=MIXSRC_TrimRud && source<MIXSRC_SW1)
        return true;

    if (source>=MIXSRC_FIRST_CH && source<=MIXSRC_LAST_CH)
        return true;

    if (source>=MIXSRC_FIRST_TRAINER && source<=MIXSRC_LAST_TRAINER)
        return true;

    if (source>=MIXSRC_FIRST_TELEM && source<=MIXSRC_LAST_TELEM)
        return isTelemetrySourceAvailable(source-MIXSRC_FIRST_TELEM+1);

    return false;
}