Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/snes/controller/gamepad/gamepad.cpp
2 views
1
#ifdef CONTROLLER_CPP
2
3
uint2 Gamepad::data() {
4
if(counter >= 16) return 1;
5
uint2 result = interface()->inputPoll(port, Input::Device::Joypad, 0, counter);
6
if(latched == 0) counter++;
7
return result;
8
}
9
10
void Gamepad::latch(bool data) {
11
if(latched == data) return;
12
latched = data;
13
counter = 0;
14
}
15
16
void Gamepad::serialize(serializer& s) {
17
Processor::serialize(s);
18
//Save block.
19
unsigned char block[Controller::SaveSize] = {0};
20
block[0] = latched ? 1 : 0;
21
block[1] = counter;
22
s.array(block, Controller::SaveSize);
23
if(s.mode() == nall::serializer::Load) {
24
latched = (block[0] != 0);
25
counter = block[1];
26
}
27
}
28
29
Gamepad::Gamepad(bool port) : Controller(port) {
30
latched = 0;
31
counter = 0;
32
}
33
34
#endif
35
36