55d54
< lastCommand(NoCommand),
60,61c59,60
< void
< PS2Mouse::recv(uint8_t data)
---
> bool
> PS2Mouse::recv(const std::vector<uint8_t> &data)
63,83c62
< if (lastCommand != NoCommand) {
< switch(lastCommand) {
< case SetResolution:
< DPRINTF(PS2, "Mouse resolution set to %d.\n", data);
< resolution = data;
< sendAck();
< lastCommand = NoCommand;
< break;
< case SampleRate:
< DPRINTF(PS2, "Mouse sample rate %d samples "
< "per second.\n", data);
< sampleRate = data;
< sendAck();
< lastCommand = NoCommand;
< break;
< default:
< panic("Not expecting data for a mouse command.\n");
< }
< return;
< }
< switch (data) {
---
> switch (data[0]) {
88c67
< break;
---
> return true;
93c72
< break;
---
> return true;
95,98c74,83
< DPRINTF(PS2, "Setting mouse resolution.\n");
< lastCommand = SetResolution;
< sendAck();
< break;
---
> if (data.size() == 1) {
> DPRINTF(PS2, "Setting mouse resolution.\n");
> sendAck();
> return false;
> } else {
> DPRINTF(PS2, "Mouse resolution set to %d.\n", data[1]);
> resolution = data[1];
> sendAck();
> return true;
> }
105c90
< break;
---
> return true;
118c103
< break;
---
> return true;
120,123c105,115
< DPRINTF(PS2, "Setting mouse sample rate.\n");
< lastCommand = SampleRate;
< sendAck();
< break;
---
> if (data.size() == 1) {
> DPRINTF(PS2, "Setting mouse sample rate.\n");
> sendAck();
> return false;
> } else {
> DPRINTF(PS2, "Mouse sample rate %d samples "
> "per second.\n", data[1]);
> sampleRate = data[1];
> sendAck();
> return true;
> }
128c120
< break;
---
> return true;
133c125
< break;
---
> return true;
141c133
< break;
---
> return true;
153c145
< break;
---
> return true;
155c147
< warn("Unknown mouse command %#02x.\n", data);
---
> warn("Unknown mouse command %#02x.\n", data[0]);
157c149
< break;
---
> return true;
166,167d157
< SERIALIZE_SCALAR(lastCommand);
<
178,179d167
< UNSERIALIZE_SCALAR(lastCommand);
<