| 179 | } |
| 180 | |
| 181 | int InputSerialization::readFrame(const std::string& line, AllInputs& inputs) |
| 182 | { |
| 183 | inputs.clear(); |
| 184 | int ret = 0; |
| 185 | |
| 186 | std::istringstream input_string(line); |
| 187 | char d; |
| 188 | input_string >> d; |
| 189 | if (d != '|') |
| 190 | return -1; |
| 191 | |
| 192 | d = input_string.peek(); |
| 193 | while (d != std::char_traits<char>::eof()) { |
| 194 | switch (d) { |
| 195 | case 'E': |
| 196 | input_string >> d; |
| 197 | ret = readEventFrame(input_string, inputs); |
| 198 | break; |
| 199 | case 'K': |
| 200 | input_string >> d; |
| 201 | ret = readKeyboardFrame(input_string, inputs); |
| 202 | break; |
| 203 | case 'M': |
| 204 | input_string >> d; |
| 205 | ret = readMouseFrame(input_string, inputs); |
| 206 | break; |
| 207 | case 'C': |
| 208 | input_string >> d; |
| 209 | input_string >> d; |
| 210 | ret = readControllerFrame(input_string, inputs, d - '1'); |
| 211 | break; |
| 212 | case 'F': |
| 213 | input_string >> d; |
| 214 | ret = readFlagFrame(input_string, inputs); |
| 215 | break; |
| 216 | case 'T': |
| 217 | input_string >> d; |
| 218 | ret = readFramerateFrame(input_string, inputs); |
| 219 | break; |
| 220 | case 'D': |
| 221 | input_string >> d; |
| 222 | ret = readRealtimeFrame(input_string, inputs); |
| 223 | break; |
| 224 | default: |
| 225 | /* Following code is for old input format (1.3.5 and earlier) */ |
| 226 | ret = readKeyboardFrame(input_string, inputs); |
| 227 | if (ret < 0) |
| 228 | return ret; |
| 229 | |
| 230 | if (context->config.sc.mouse_support) { |
| 231 | ret = readMouseFrame(input_string, inputs); |
| 232 | if (ret < 0) |
| 233 | return ret; |
| 234 | } |
| 235 | |
| 236 | for (int joy=0; joy<context->config.sc.nb_controllers; joy++) { |
| 237 | ret = readControllerFrame(input_string, inputs, joy); |
| 238 | if (ret < 0) |
nothing calls this directly
no test coverage detected