diff --git a/include/services/y2r.hpp b/include/services/y2r.hpp index 963199fc..fc21fc12 100644 --- a/include/services/y2r.hpp +++ b/include/services/y2r.hpp @@ -75,6 +75,7 @@ class Y2RService { void setInputLineWidth(u32 messagePointer); void setInputLines(u32 messagePointer); void setOutputFormat(u32 messagePointer); + void setPackageParameter(u32 messagePointer); void setReceiving(u32 messagePointer); void setRotation(u32 messagePointer); void setSendingY(u32 messagePointer); diff --git a/src/core/services/y2r.cpp b/src/core/services/y2r.cpp index 44b7c6ea..7d6e4c41 100644 --- a/src/core/services/y2r.cpp +++ b/src/core/services/y2r.cpp @@ -23,6 +23,7 @@ namespace Y2RCommands { StartConversion = 0x00260000, StopConversion = 0x00270000, IsBusyConversion = 0x00280000, + SetPackageParameter = 0x002901C0, PingProcess = 0x002A0000, DriverInitialize = 0x002B0000, DriverFinalize = 0x002C0000 @@ -60,6 +61,7 @@ void Y2RService::handleSyncRequest(u32 messagePointer) { case Y2RCommands::SetInputLineWidth: setInputLineWidth(messagePointer); break; case Y2RCommands::SetInputLines: setInputLines(messagePointer); break; case Y2RCommands::SetOutputFormat: setOutputFormat(messagePointer); break; + case Y2RCommands::SetPackageParameter: setPackageParameter(messagePointer); break; case Y2RCommands::SetReceiving: setReceiving(messagePointer); break; case Y2RCommands::SetRotation: setRotation(messagePointer); break; case Y2RCommands::SetSendingY: setSendingY(messagePointer); break; @@ -176,6 +178,17 @@ void Y2RService::setOutputFormat(u32 messagePointer) { mem.write32(messagePointer + 4, Result::Success); } +void Y2RService::setPackageParameter(u32 messagePointer) { + // Package parameter is 3 words + const u32 word1 = mem.read32(messagePointer + 4); + const u32 word2 = mem.read32(messagePointer + 8); + const u32 word3 = mem.read32(messagePointer + 12); + Helpers::warn("Y2R::SetPackageParameter\n"); + + mem.write32(messagePointer, IPC::responseHeader(0x29, 1, 0)); + mem.write32(messagePointer + 4, Result::Success); +} + void Y2RService::setRotation(u32 messagePointer) { const u32 rot = mem.read32(messagePointer + 4); log("Y2R::SetRotation (format = %d)\n", rot);