backend-infra-engineer: fix release build failures
This commit is contained in:
@@ -207,9 +207,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Shift+P",
|
||||
.visibility_flag = &show_control_panel_,
|
||||
.priority = 10,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 10});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.ow_main",
|
||||
.display_name = "Overworld Main",
|
||||
@@ -218,9 +218,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+1",
|
||||
.visibility_flag = &show_ow_main_panel_,
|
||||
.priority = 20,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 20});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.ow_animated",
|
||||
.display_name = "Overworld Animated",
|
||||
@@ -229,9 +229,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+2",
|
||||
.visibility_flag = &show_ow_animated_panel_,
|
||||
.priority = 30,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 30});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.dungeon_main",
|
||||
.display_name = "Dungeon Main",
|
||||
@@ -240,9 +240,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+3",
|
||||
.visibility_flag = &show_dungeon_main_panel_,
|
||||
.priority = 40,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 40});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.sprites",
|
||||
.display_name = "Global Sprite Palettes",
|
||||
@@ -251,9 +251,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+4",
|
||||
.visibility_flag = &show_sprite_panel_,
|
||||
.priority = 50,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 50});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.sprites_aux1",
|
||||
.display_name = "Sprites Aux 1",
|
||||
@@ -262,9 +262,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+7",
|
||||
.visibility_flag = &show_sprites_aux1_panel_,
|
||||
.priority = 51,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 51});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.sprites_aux2",
|
||||
.display_name = "Sprites Aux 2",
|
||||
@@ -273,9 +273,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+8",
|
||||
.visibility_flag = &show_sprites_aux2_panel_,
|
||||
.priority = 52,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 52});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.sprites_aux3",
|
||||
.display_name = "Sprites Aux 3",
|
||||
@@ -284,9 +284,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+9",
|
||||
.visibility_flag = &show_sprites_aux3_panel_,
|
||||
.priority = 53,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 53});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.equipment",
|
||||
.display_name = "Equipment Palettes",
|
||||
@@ -295,9 +295,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+5",
|
||||
.visibility_flag = &show_equipment_panel_,
|
||||
.priority = 60,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 60});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.quick_access",
|
||||
.display_name = "Quick Access",
|
||||
@@ -306,9 +306,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+Q",
|
||||
.visibility_flag = &show_quick_access_,
|
||||
.priority = 70,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 70});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
panel_manager->RegisterPanel({.card_id = "palette.custom",
|
||||
.display_name = "Custom Palette",
|
||||
@@ -317,9 +317,9 @@ void PaletteEditor::Initialize() {
|
||||
.category = "Palette",
|
||||
.shortcut_hint = "Ctrl+Alt+C",
|
||||
.visibility_flag = &show_custom_palette_,
|
||||
.priority = 80,
|
||||
.enabled_condition = [this]() { return rom_ && rom_->is_loaded(); },
|
||||
.disabled_tooltip = "Load a ROM first",
|
||||
.priority = 80});
|
||||
.disabled_tooltip = "Load a ROM first"});
|
||||
|
||||
// Show control panel by default when Palette Editor is activated
|
||||
panel_manager->ShowPanel(session_id, "palette.control_panel");
|
||||
|
||||
@@ -86,9 +86,10 @@ absl::Status EmulatorResetCommandHandler::Execute(
|
||||
Rom* rom, const resources::ArgumentParser& parser,
|
||||
resources::OutputFormatter& formatter) {
|
||||
EmulatorClient client;
|
||||
agent::Empty request;
|
||||
agent::ControlRequest request;
|
||||
request.set_action("reset");
|
||||
auto response_or =
|
||||
client.CallRpc(&agent::EmulatorService::Stub::Reset, request);
|
||||
client.CallRpc(&agent::EmulatorService::Stub::ControlEmulator, request);
|
||||
if (!response_or.ok()) {
|
||||
return response_or.status();
|
||||
}
|
||||
|
||||
@@ -44,8 +44,13 @@ const TestSuite kTestSuites[] = {
|
||||
std::string ExecuteCommand(const std::string& cmd) {
|
||||
std::array<char, 256> buffer;
|
||||
std::string result;
|
||||
#ifdef _WIN32
|
||||
std::unique_ptr<FILE, decltype(&_pclose)> pipe(_popen(cmd.c_str(), "r"),
|
||||
_pclose);
|
||||
#else
|
||||
std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd.c_str(), "r"),
|
||||
pclose);
|
||||
pclose);
|
||||
#endif
|
||||
if (!pipe) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -211,6 +211,18 @@ grpc::Status EmulatorServiceImpl::PressButtons(grpc::ServerContext* context,
|
||||
return grpc::Status::OK;
|
||||
}
|
||||
|
||||
grpc::Status EmulatorServiceImpl::ReleaseButtons(grpc::ServerContext* context,
|
||||
const agent::ButtonRequest* request,
|
||||
agent::CommandResponse* response) {
|
||||
if (!emulator_) return grpc::Status(grpc::StatusCode::UNAVAILABLE, "Emulator not initialized.");
|
||||
auto& input_manager = emulator_->input_manager();
|
||||
for (int i = 0; i < request->buttons_size(); i++) {
|
||||
input_manager.ReleaseButton(ToSnesButton(static_cast<agent::Button>(request->buttons(i))));
|
||||
}
|
||||
response->set_success(true);
|
||||
return grpc::Status::OK;
|
||||
}
|
||||
|
||||
grpc::Status EmulatorServiceImpl::HoldButtons(grpc::ServerContext* context,
|
||||
const agent::ButtonHoldRequest* request,
|
||||
agent::CommandResponse* response) {
|
||||
@@ -451,4 +463,4 @@ void EmulatorServiceImpl::InitializeStepController() {
|
||||
step_controller_.SetPcGetter([&cpu]() -> uint32_t { return (cpu.PB << 16) | cpu.PC; });
|
||||
}
|
||||
|
||||
} // namespace yaze::net
|
||||
} // namespace yaze::net
|
||||
|
||||
@@ -38,6 +38,9 @@ class EmulatorServiceImpl final : public agent::EmulatorService::Service {
|
||||
grpc::Status PressButtons(grpc::ServerContext* context,
|
||||
const agent::ButtonRequest* request,
|
||||
agent::CommandResponse* response) override;
|
||||
grpc::Status ReleaseButtons(grpc::ServerContext* context,
|
||||
const agent::ButtonRequest* request,
|
||||
agent::CommandResponse* response) override;
|
||||
grpc::Status HoldButtons(grpc::ServerContext* context,
|
||||
const agent::ButtonHoldRequest* request,
|
||||
agent::CommandResponse* response) override;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "core/asar_wrapper.h"
|
||||
|
||||
#include <chrono>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <filesystem>
|
||||
#include <fstream>
|
||||
@@ -411,7 +412,11 @@ absl::StatusOr<AsarPatchResult> AsarWrapper::ApplyPatchWithBinary(
|
||||
// Execute using popen to capture output
|
||||
std::array<char, 128> buffer;
|
||||
std::string output;
|
||||
#ifdef _WIN32
|
||||
FILE* pipe = _popen(cmd.str().c_str(), "r");
|
||||
#else
|
||||
FILE* pipe = popen(cmd.str().c_str(), "r");
|
||||
#endif
|
||||
if (!pipe) {
|
||||
fs::remove(temp_rom, ec);
|
||||
fs::remove(temp_symbols, ec);
|
||||
@@ -421,9 +426,9 @@ absl::StatusOr<AsarPatchResult> AsarWrapper::ApplyPatchWithBinary(
|
||||
while (fgets(buffer.data(), buffer.size(), pipe) != nullptr) {
|
||||
output += buffer.data();
|
||||
}
|
||||
#ifndef _WIN32
|
||||
int exit_status = pclose(pipe);
|
||||
int exit_code = exit_status;
|
||||
#ifndef _WIN32
|
||||
if (exit_status != -1) {
|
||||
if (WIFEXITED(exit_status)) {
|
||||
exit_code = WEXITSTATUS(exit_status);
|
||||
@@ -431,6 +436,8 @@ absl::StatusOr<AsarPatchResult> AsarWrapper::ApplyPatchWithBinary(
|
||||
exit_code = 128 + WTERMSIG(exit_status);
|
||||
}
|
||||
}
|
||||
#else
|
||||
int exit_code = _pclose(pipe);
|
||||
#endif
|
||||
|
||||
if (!patch_dir.empty()) {
|
||||
|
||||
@@ -221,7 +221,13 @@ absl::StatusOr<std::string> VersionManager::RunCommandOutput(const std::string&
|
||||
|
||||
std::array<char, 128> buffer;
|
||||
std::string result;
|
||||
std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(full_cmd.c_str(), "r"), pclose);
|
||||
#ifdef _WIN32
|
||||
std::unique_ptr<FILE, decltype(&_pclose)> pipe(_popen(full_cmd.c_str(), "r"),
|
||||
_pclose);
|
||||
#else
|
||||
std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(full_cmd.c_str(), "r"),
|
||||
pclose);
|
||||
#endif
|
||||
if (!pipe) {
|
||||
return absl::InternalError("popen() failed!");
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ service EmulatorService {
|
||||
|
||||
// --- Input & State ---
|
||||
rpc PressButtons(ButtonRequest) returns (CommandResponse);
|
||||
rpc ReleaseButtons(ButtonRequest) returns (CommandResponse);
|
||||
rpc HoldButtons(ButtonHoldRequest) returns (CommandResponse);
|
||||
rpc GetGameState(GameStateRequest) returns (GameStateResponse);
|
||||
rpc ReadMemory(MemoryRequest) returns (MemoryResponse);
|
||||
@@ -263,4 +264,4 @@ message TestRunResponse {
|
||||
string message = 2;
|
||||
CPUState final_cpu_state = 3;
|
||||
bool crashed = 4;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user