Use urandom / rtlgenrandom
[lsnes.git] / src / interface / controller.cpp
blob601e1903897a599fdffbdca21bf36677fa83a6a0
1 #include "interface/controller.hpp"
2 #include <algorithm>
4 namespace
6 port_index_triple t(unsigned p, unsigned c, unsigned i)
8 port_index_triple x;
9 x.valid = true;
10 x.port = p;
11 x.controller = c;
12 x.control = i;
13 return x;
16 void push_port_indices(std::vector<port_index_triple>& tab, unsigned p, port_type& pt)
18 unsigned ctrls = pt.controller_info->controllers.size();
19 for(unsigned i = 0; i < ctrls; i++)
20 for(unsigned j = 0; j < pt.controller_info->controllers[i].buttons.size(); j++)
21 tab.push_back(t(p, i, j));
25 struct port_index_map controller_set::portindex()
27 port_index_map m;
28 m.logical_map = logical_map;
29 m.pcid_map = logical_map;
30 std::sort(m.pcid_map.begin(), m.pcid_map.end());
31 for(unsigned i = 0; i < ports.size(); i++)
32 push_port_indices(m.indices, i, *ports[i]);
33 return m;