- Effect *effect1 = get_effect(L, 2);
- if (luaL_testudata(L, 3, "LiveInputWrapper")) {
- LiveInputWrapper *effect2 = (LiveInputWrapper *)lua_touserdata(L, 3);
- chain->add_effect(effect1, effect2->get_input());
- } else {
- Effect *effect2 = get_effect(L, 3);
- chain->add_effect(effect1, effect2);
+ Effect *effect = get_effect(L, 2);
+ vector<Effect *> inputs;
+ for (int idx = 3; idx <= lua_gettop(L); ++idx) {
+ if (luaL_testudata(L, idx, "LiveInputWrapper")) {
+ LiveInputWrapper *input = (LiveInputWrapper *)lua_touserdata(L, idx);
+ inputs.push_back(input->get_input());
+ } else {
+ inputs.push_back(get_effect(L, idx));
+ }