1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-19 14:25:11 +03:00

Fixes #2084: index changed to unsigned for Lua mixer funcitons

This commit is contained in:
Damjan Adamic 2015-02-18 20:25:07 +01:00
parent 2b8374f418
commit ab3114d164

View file

@ -715,7 +715,7 @@ static int luaModelGetInput(lua_State *L)
unsigned int idx = luaL_checkunsigned(L, 2); unsigned int idx = luaL_checkunsigned(L, 2);
unsigned int first = getFirstInput(chn); unsigned int first = getFirstInput(chn);
unsigned int count = getInputsCountFromFirst(chn, first); unsigned int count = getInputsCountFromFirst(chn, first);
if (count && (idx < count)) { if (idx < count) {
ExpoData * expo = expoAddress(first+idx); ExpoData * expo = expoAddress(first+idx);
lua_newtable(L); lua_newtable(L);
lua_pushtablezstring(L, "name", expo->name); lua_pushtablezstring(L, "name", expo->name);
@ -776,7 +776,7 @@ static int luaModelDeleteInput(lua_State *L)
int first = getFirstInput(chn); int first = getFirstInput(chn);
unsigned int count = getInputsCountFromFirst(chn, first); unsigned int count = getInputsCountFromFirst(chn, first);
if (count && (idx < count)) { if (idx < count) {
deleteExpoMix(1, first+idx); deleteExpoMix(1, first+idx);
} }
@ -795,9 +795,9 @@ static int luaModelDefaultInputs(lua_State *L)
return 0; return 0;
} }
static int getFirstMix(int chn) static unsigned int getFirstMix(unsigned int chn)
{ {
for (int i=0; i<MAX_MIXERS; i++) { for (unsigned int i=0; i<MAX_MIXERS; i++) {
MixData * mix = mixAddress(i); MixData * mix = mixAddress(i);
if (!mix->srcRaw || mix->destCh>=chn) { if (!mix->srcRaw || mix->destCh>=chn) {
return i; return i;
@ -806,29 +806,26 @@ static int getFirstMix(int chn)
return 0; return 0;
} }
static int getMixesCountFromFirst(int chn, int first) static unsigned int getMixesCountFromFirst(unsigned int chn, unsigned int first)
{ {
int count = 0; unsigned int count = 0;
if (first >= 0) { for (unsigned int i=first; i<MAX_MIXERS; i++) {
for (int i=first; i<MAX_MIXERS; i++) {
MixData * mix = mixAddress(i); MixData * mix = mixAddress(i);
if (!mix->srcRaw || mix->destCh!=chn) break; if (!mix->srcRaw || mix->destCh!=chn) break;
count++; count++;
} }
}
return count; return count;
} }
static int getMixesCount(int chn) static unsigned int getMixesCount(unsigned int chn)
{ {
int first = getFirstMix(chn); return getMixesCountFromFirst(chn, getFirstMix(chn));
return getMixesCountFromFirst(chn, first);
} }
static int luaModelGetMixesCount(lua_State *L) static int luaModelGetMixesCount(lua_State *L)
{ {
unsigned int chn = luaL_checkunsigned(L, 1); unsigned int chn = luaL_checkunsigned(L, 1);
int count = getMixesCount(chn); unsigned int count = getMixesCount(chn);
lua_pushinteger(L, count); lua_pushinteger(L, count);
return 1; return 1;
} }
@ -837,7 +834,7 @@ static int luaModelGetMix(lua_State *L)
{ {
unsigned int chn = luaL_checkunsigned(L, 1); unsigned int chn = luaL_checkunsigned(L, 1);
unsigned int idx = luaL_checkunsigned(L, 2); unsigned int idx = luaL_checkunsigned(L, 2);
int first = getFirstMix(chn); unsigned int first = getFirstMix(chn);
unsigned int count = getMixesCountFromFirst(chn, first); unsigned int count = getMixesCountFromFirst(chn, first);
if (idx < count) { if (idx < count) {
MixData * mix = mixAddress(first+idx); MixData * mix = mixAddress(first+idx);
@ -869,7 +866,7 @@ static int luaModelInsertMix(lua_State *L)
unsigned int chn = luaL_checkunsigned(L, 1); unsigned int chn = luaL_checkunsigned(L, 1);
unsigned int idx = luaL_checkunsigned(L, 2); unsigned int idx = luaL_checkunsigned(L, 2);
int first = getFirstMix(chn); unsigned int first = getFirstMix(chn);
unsigned int count = getMixesCountFromFirst(chn, first); unsigned int count = getMixesCountFromFirst(chn, first);
if (chn<NUM_CHNOUT && getExpoMixCount(0)<MAX_MIXERS && idx<=count) { if (chn<NUM_CHNOUT && getExpoMixCount(0)<MAX_MIXERS && idx<=count) {
@ -938,7 +935,7 @@ static int luaModelDeleteMix(lua_State *L)
unsigned int chn = luaL_checkunsigned(L, 1); unsigned int chn = luaL_checkunsigned(L, 1);
unsigned int idx = luaL_checkunsigned(L, 2); unsigned int idx = luaL_checkunsigned(L, 2);
int first = getFirstMix(chn); unsigned int first = getFirstMix(chn);
unsigned int count = getMixesCountFromFirst(chn, first); unsigned int count = getMixesCountFromFirst(chn, first);
if (idx < count) { if (idx < count) {