| 980 | } |
| 981 | |
| 982 | NetworkGroup* NetworkBase::AddGroup() |
| 983 | { |
| 984 | NetworkGroup* addedgroup = nullptr; |
| 985 | int32_t newid = -1; |
| 986 | // Find first unused group id |
| 987 | for (int32_t id = 0; id < 255; id++) |
| 988 | { |
| 989 | if (std::find_if( |
| 990 | group_list.begin(), group_list.end(), |
| 991 | [&id](std::unique_ptr<NetworkGroup> const& group) { return group->id == id; }) |
| 992 | == group_list.end()) |
| 993 | { |
| 994 | newid = id; |
| 995 | break; |
| 996 | } |
| 997 | } |
| 998 | if (newid != -1) |
| 999 | { |
| 1000 | auto group = std::make_unique<NetworkGroup>(); |
| 1001 | group->id = newid; |
| 1002 | group->setName("Group #" + std::to_string(newid)); |
| 1003 | addedgroup = group.get(); |
| 1004 | group_list.push_back(std::move(group)); |
| 1005 | } |
| 1006 | return addedgroup; |
| 1007 | } |
| 1008 | |
| 1009 | void NetworkBase::RemoveGroup(uint8_t id) |
| 1010 | { |