|
|
|
@ -190,6 +190,11 @@ void SendParameter(Service::Interface* self) { |
|
|
|
std::shared_ptr<HLE::Applets::Applet> dest_applet = |
|
|
|
HLE::Applets::Applet::Get(static_cast<AppletId>(dst_app_id)); |
|
|
|
|
|
|
|
LOG_DEBUG(Service_APT, |
|
|
|
"called src_app_id=0x%08X, dst_app_id=0x%08X, signal_type=0x%08X," |
|
|
|
"buffer_size=0x%08X, handle=0x%08X, size=0x%08zX, in_param_buffer_ptr=0x%08X", |
|
|
|
src_app_id, dst_app_id, signal_type, buffer_size, handle, size, buffer); |
|
|
|
|
|
|
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); |
|
|
|
|
|
|
|
// A new parameter can not be sent if the previous one hasn't been consumed yet
|
|
|
|
@ -214,11 +219,6 @@ void SendParameter(Service::Interface* self) { |
|
|
|
Memory::ReadBlock(buffer, param.buffer.data(), param.buffer.size()); |
|
|
|
|
|
|
|
rb.Push(dest_applet->ReceiveParameter(param)); |
|
|
|
|
|
|
|
LOG_DEBUG(Service_APT, |
|
|
|
"called src_app_id=0x%08X, dst_app_id=0x%08X, signal_type=0x%08X," |
|
|
|
"buffer_size=0x%08X, handle=0x%08X, size=0x%08zX, in_param_buffer_ptr=0x%08X", |
|
|
|
src_app_id, dst_app_id, signal_type, buffer_size, handle, size, buffer); |
|
|
|
} |
|
|
|
|
|
|
|
void ReceiveParameter(Service::Interface* self) { |
|
|
|
@ -234,6 +234,8 @@ void ReceiveParameter(Service::Interface* self) { |
|
|
|
"buffer_size is bigger than the size in the buffer descriptor (0x%08X > 0x%08zX)", |
|
|
|
buffer_size, static_buff_size); |
|
|
|
|
|
|
|
LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size); |
|
|
|
|
|
|
|
if (!next_parameter) { |
|
|
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); |
|
|
|
rb.Push(ResultCode(ErrorDescription::NoData, ErrorModule::Applet, |
|
|
|
@ -266,7 +268,6 @@ void ReceiveParameter(Service::Interface* self) { |
|
|
|
|
|
|
|
// Clear the parameter
|
|
|
|
next_parameter = boost::none; |
|
|
|
LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size); |
|
|
|
} |
|
|
|
|
|
|
|
void GlanceParameter(Service::Interface* self) { |
|
|
|
@ -282,6 +283,8 @@ void GlanceParameter(Service::Interface* self) { |
|
|
|
"buffer_size is bigger than the size in the buffer descriptor (0x%08X > 0x%08zX)", |
|
|
|
buffer_size, static_buff_size); |
|
|
|
|
|
|
|
LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size); |
|
|
|
|
|
|
|
if (!next_parameter) { |
|
|
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); |
|
|
|
rb.Push(ResultCode(ErrorDescription::NoData, ErrorModule::Applet, |
|
|
|
@ -315,7 +318,6 @@ void GlanceParameter(Service::Interface* self) { |
|
|
|
if (next_parameter->signal == static_cast<u32>(SignalType::DspSleep) || |
|
|
|
next_parameter->signal == static_cast<u32>(SignalType::DspWakeup)) |
|
|
|
next_parameter = boost::none; |
|
|
|
LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size); |
|
|
|
} |
|
|
|
|
|
|
|
void CancelParameter(Service::Interface* self) { |
|
|
|
|