int Process(int pos) { Payload &payload = payloadBuffer[pos]; MultipartFormDataEncoder postdata; AddSystemInfo(postdata); AddGameInfo(postdata); AddConfigInfo(postdata); AddGameplayInfo(postdata); switch (payload.type) { case RequestType::MESSAGE: postdata.Add("message", payload.string1); postdata.Add("value", payload.string2); // We tend to get corrupted data, this acts as a very primitive verification check. postdata.Add("verify", payload.string1 + payload.string2); payload.string1.clear(); payload.string2.clear(); postdata.Finish(); SendReportRequest("/report/message", postdata.ToString(), postdata.GetMimeType()); break; case RequestType::COMPAT: postdata.Add("compat", payload.string1); // We tend to get corrupted data, this acts as a very primitive verification check. postdata.Add("verify", payload.string1); postdata.Add("graphics", StringFromFormat("%d", payload.int1)); postdata.Add("speed", StringFromFormat("%d", payload.int2)); postdata.Add("gameplay", StringFromFormat("%d", payload.int3)); AddScreenshotData(postdata, payload.string2); payload.string1.clear(); payload.string2.clear(); postdata.Finish(); SendReportRequest("/report/compat", postdata.ToString(), postdata.GetMimeType()); break; case RequestType::NONE: break; } payload.type = RequestType::NONE; return 0; }
int Process(int pos) { Payload &payload = payloadBuffer[pos]; std::string gpuPrimary, gpuFull; if (gpu) gpu->GetReportingInfo(gpuPrimary, gpuFull); UrlEncoder postdata; postdata.Add("version", PPSSPP_GIT_VERSION); // TODO: Maybe ParamSFOData shouldn't include nulls in std::strings? Don't work to break savedata, though... postdata.Add("game", StripTrailingNull(g_paramSFO.GetValueString("DISC_ID")) + "_" + StripTrailingNull(g_paramSFO.GetValueString("DISC_VERSION"))); postdata.Add("game_title", StripTrailingNull(g_paramSFO.GetValueString("TITLE"))); postdata.Add("gpu", gpuPrimary); postdata.Add("gpu_full", gpuFull); postdata.Add("cpu", cpu_info.Summarize()); postdata.Add("platform", GetPlatformIdentifer()); postdata.Add("sdkver", sceKernelGetCompiledSdkVersion()); postdata.Add("pixel_width", PSP_CoreParameter().pixelWidth); postdata.Add("pixel_height", PSP_CoreParameter().pixelHeight); postdata.Add("ticks", (const uint64_t)CoreTiming::GetTicks()); if (g_Config.iShowFPSCounter) { float vps, fps; __DisplayGetAveragedFPS(&vps, &fps); postdata.Add("vps", vps); postdata.Add("fps", fps); } // TODO: Settings, savestate/savedata status, some measure of speed/fps? switch (payload.type) { case MESSAGE: postdata.Add("message", payload.string1); postdata.Add("value", payload.string2); payload.string1.clear(); payload.string2.clear(); SendReportRequest("/report/message", postdata.ToString()); break; } return 0; }
int Process(int pos) { Payload &payload = payloadBuffer[pos]; UrlEncoder postdata; AddSystemInfo(postdata); AddGameInfo(postdata); AddConfigInfo(postdata); AddGameplayInfo(postdata); switch (payload.type) { case MESSAGE: postdata.Add("message", payload.string1); postdata.Add("value", payload.string2); payload.string1.clear(); payload.string2.clear(); SendReportRequest("/report/message", postdata.ToString()); break; } return 0; }
int Process(int pos) { setCurrentThreadName("Report"); Payload &payload = payloadBuffer[pos]; Buffer output; MultipartFormDataEncoder postdata; AddSystemInfo(postdata); AddGameInfo(postdata); AddConfigInfo(postdata); AddGameplayInfo(postdata); switch (payload.type) { case RequestType::MESSAGE: // TODO: Add CRC? postdata.Add("message", payload.string1); postdata.Add("value", payload.string2); // We tend to get corrupted data, this acts as a very primitive verification check. postdata.Add("verify", payload.string1 + payload.string2); payload.string1.clear(); payload.string2.clear(); postdata.Finish(); serverWorking = true; if (!SendReportRequest("/report/message", postdata.ToString(), postdata.GetMimeType())) serverWorking = false; break; case RequestType::COMPAT: postdata.Add("compat", payload.string1); // We tend to get corrupted data, this acts as a very primitive verification check. postdata.Add("verify", payload.string1); postdata.Add("graphics", StringFromFormat("%d", payload.int1)); postdata.Add("speed", StringFromFormat("%d", payload.int2)); postdata.Add("gameplay", StringFromFormat("%d", payload.int3)); postdata.Add("crc", StringFromFormat("%08x", Core_GetPowerSaving() ? 0 : RetrieveCRC())); AddScreenshotData(postdata, payload.string2); payload.string1.clear(); payload.string2.clear(); postdata.Finish(); serverWorking = true; if (!SendReportRequest("/report/compat", postdata.ToString(), postdata.GetMimeType(), &output)) { serverWorking = false; } else { char res = 0; if (!output.empty()) { output.Take(1, &res); } if (res == 0) serverWorking = false; } break; case RequestType::NONE: break; } payload.type = RequestType::NONE; return 0; }