mirror of
https://github.com/opentx/opentx.git
synced 2025-07-19 06:15:10 +03:00
Fixes #2084: index changed to unsigned for Lua mixer funcitons
This commit is contained in:
parent
2b8374f418
commit
ab3114d164
1 changed files with 16 additions and 19 deletions
|
@ -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) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue