diff options
| author | 2022-12-28 15:21:12 -0600 | |
|---|---|---|
| committer | 2023-01-19 18:05:22 -0600 | |
| commit | 459fb2b21337bae60194a2a99ce68c87aaed522d (patch) | |
| tree | a7522832fa60f283e076df34c85380c5d4bc49d3 /src/core/hle | |
| parent | yuzu: Add ring controller test button (diff) | |
| download | yuzu-459fb2b21337bae60194a2a99ce68c87aaed522d.tar.gz yuzu-459fb2b21337bae60194a2a99ce68c87aaed522d.tar.xz yuzu-459fb2b21337bae60194a2a99ce68c87aaed522d.zip | |
input_common: Implement joycon ir camera
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/hid/irs.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/irs.cpp b/src/core/hle/service/hid/irs.cpp index 6a3453457..3c1fa2274 100644 --- a/src/core/hle/service/hid/irs.cpp +++ b/src/core/hle/service/hid/irs.cpp | |||
| @@ -74,6 +74,8 @@ void IRS::DeactivateIrsensor(Kernel::HLERequestContext& ctx) { | |||
| 74 | LOG_WARNING(Service_IRS, "(STUBBED) called, applet_resource_user_id={}", | 74 | LOG_WARNING(Service_IRS, "(STUBBED) called, applet_resource_user_id={}", |
| 75 | applet_resource_user_id); | 75 | applet_resource_user_id); |
| 76 | 76 | ||
| 77 | npad_device->SetPollingMode(Common::Input::PollingMode::Active); | ||
| 78 | |||
| 77 | IPC::ResponseBuilder rb{ctx, 2}; | 79 | IPC::ResponseBuilder rb{ctx, 2}; |
| 78 | rb.Push(ResultSuccess); | 80 | rb.Push(ResultSuccess); |
| 79 | } | 81 | } |
| @@ -108,6 +110,7 @@ void IRS::StopImageProcessor(Kernel::HLERequestContext& ctx) { | |||
| 108 | auto result = IsIrCameraHandleValid(parameters.camera_handle); | 110 | auto result = IsIrCameraHandleValid(parameters.camera_handle); |
| 109 | if (result.IsSuccess()) { | 111 | if (result.IsSuccess()) { |
| 110 | // TODO: Stop Image processor | 112 | // TODO: Stop Image processor |
| 113 | npad_device->SetPollingMode(Common::Input::PollingMode::Active); | ||
| 111 | result = ResultSuccess; | 114 | result = ResultSuccess; |
| 112 | } | 115 | } |
| 113 | 116 | ||
| @@ -139,6 +142,7 @@ void IRS::RunMomentProcessor(Kernel::HLERequestContext& ctx) { | |||
| 139 | MakeProcessor<MomentProcessor>(parameters.camera_handle, device); | 142 | MakeProcessor<MomentProcessor>(parameters.camera_handle, device); |
| 140 | auto& image_transfer_processor = GetProcessor<MomentProcessor>(parameters.camera_handle); | 143 | auto& image_transfer_processor = GetProcessor<MomentProcessor>(parameters.camera_handle); |
| 141 | image_transfer_processor.SetConfig(parameters.processor_config); | 144 | image_transfer_processor.SetConfig(parameters.processor_config); |
| 145 | npad_device->SetPollingMode(Common::Input::PollingMode::IR); | ||
| 142 | } | 146 | } |
| 143 | 147 | ||
| 144 | IPC::ResponseBuilder rb{ctx, 2}; | 148 | IPC::ResponseBuilder rb{ctx, 2}; |
| @@ -170,6 +174,7 @@ void IRS::RunClusteringProcessor(Kernel::HLERequestContext& ctx) { | |||
| 170 | auto& image_transfer_processor = | 174 | auto& image_transfer_processor = |
| 171 | GetProcessor<ClusteringProcessor>(parameters.camera_handle); | 175 | GetProcessor<ClusteringProcessor>(parameters.camera_handle); |
| 172 | image_transfer_processor.SetConfig(parameters.processor_config); | 176 | image_transfer_processor.SetConfig(parameters.processor_config); |
| 177 | npad_device->SetPollingMode(Common::Input::PollingMode::IR); | ||
| 173 | } | 178 | } |
| 174 | 179 | ||
| 175 | IPC::ResponseBuilder rb{ctx, 2}; | 180 | IPC::ResponseBuilder rb{ctx, 2}; |
| @@ -219,6 +224,7 @@ void IRS::RunImageTransferProcessor(Kernel::HLERequestContext& ctx) { | |||
| 219 | GetProcessor<ImageTransferProcessor>(parameters.camera_handle); | 224 | GetProcessor<ImageTransferProcessor>(parameters.camera_handle); |
| 220 | image_transfer_processor.SetConfig(parameters.processor_config); | 225 | image_transfer_processor.SetConfig(parameters.processor_config); |
| 221 | image_transfer_processor.SetTransferMemoryPointer(transfer_memory); | 226 | image_transfer_processor.SetTransferMemoryPointer(transfer_memory); |
| 227 | npad_device->SetPollingMode(Common::Input::PollingMode::IR); | ||
| 222 | } | 228 | } |
| 223 | 229 | ||
| 224 | IPC::ResponseBuilder rb{ctx, 2}; | 230 | IPC::ResponseBuilder rb{ctx, 2}; |
| @@ -294,6 +300,7 @@ void IRS::RunTeraPluginProcessor(Kernel::HLERequestContext& ctx) { | |||
| 294 | auto& image_transfer_processor = | 300 | auto& image_transfer_processor = |
| 295 | GetProcessor<TeraPluginProcessor>(parameters.camera_handle); | 301 | GetProcessor<TeraPluginProcessor>(parameters.camera_handle); |
| 296 | image_transfer_processor.SetConfig(parameters.processor_config); | 302 | image_transfer_processor.SetConfig(parameters.processor_config); |
| 303 | npad_device->SetPollingMode(Common::Input::PollingMode::IR); | ||
| 297 | } | 304 | } |
| 298 | 305 | ||
| 299 | IPC::ResponseBuilder rb{ctx, 2}; | 306 | IPC::ResponseBuilder rb{ctx, 2}; |
| @@ -343,6 +350,7 @@ void IRS::RunPointingProcessor(Kernel::HLERequestContext& ctx) { | |||
| 343 | MakeProcessor<PointingProcessor>(camera_handle, device); | 350 | MakeProcessor<PointingProcessor>(camera_handle, device); |
| 344 | auto& image_transfer_processor = GetProcessor<PointingProcessor>(camera_handle); | 351 | auto& image_transfer_processor = GetProcessor<PointingProcessor>(camera_handle); |
| 345 | image_transfer_processor.SetConfig(processor_config); | 352 | image_transfer_processor.SetConfig(processor_config); |
| 353 | npad_device->SetPollingMode(Common::Input::PollingMode::IR); | ||
| 346 | } | 354 | } |
| 347 | 355 | ||
| 348 | IPC::ResponseBuilder rb{ctx, 2}; | 356 | IPC::ResponseBuilder rb{ctx, 2}; |
| @@ -453,6 +461,7 @@ void IRS::RunImageTransferExProcessor(Kernel::HLERequestContext& ctx) { | |||
| 453 | GetProcessor<ImageTransferProcessor>(parameters.camera_handle); | 461 | GetProcessor<ImageTransferProcessor>(parameters.camera_handle); |
| 454 | image_transfer_processor.SetConfig(parameters.processor_config); | 462 | image_transfer_processor.SetConfig(parameters.processor_config); |
| 455 | image_transfer_processor.SetTransferMemoryPointer(transfer_memory); | 463 | image_transfer_processor.SetTransferMemoryPointer(transfer_memory); |
| 464 | npad_device->SetPollingMode(Common::Input::PollingMode::IR); | ||
| 456 | } | 465 | } |
| 457 | 466 | ||
| 458 | IPC::ResponseBuilder rb{ctx, 2}; | 467 | IPC::ResponseBuilder rb{ctx, 2}; |
| @@ -479,6 +488,7 @@ void IRS::RunIrLedProcessor(Kernel::HLERequestContext& ctx) { | |||
| 479 | MakeProcessor<IrLedProcessor>(camera_handle, device); | 488 | MakeProcessor<IrLedProcessor>(camera_handle, device); |
| 480 | auto& image_transfer_processor = GetProcessor<IrLedProcessor>(camera_handle); | 489 | auto& image_transfer_processor = GetProcessor<IrLedProcessor>(camera_handle); |
| 481 | image_transfer_processor.SetConfig(processor_config); | 490 | image_transfer_processor.SetConfig(processor_config); |
| 491 | npad_device->SetPollingMode(Common::Input::PollingMode::IR); | ||
| 482 | } | 492 | } |
| 483 | 493 | ||
| 484 | IPC::ResponseBuilder rb{ctx, 2}; | 494 | IPC::ResponseBuilder rb{ctx, 2}; |
| @@ -504,6 +514,7 @@ void IRS::StopImageProcessorAsync(Kernel::HLERequestContext& ctx) { | |||
| 504 | auto result = IsIrCameraHandleValid(parameters.camera_handle); | 514 | auto result = IsIrCameraHandleValid(parameters.camera_handle); |
| 505 | if (result.IsSuccess()) { | 515 | if (result.IsSuccess()) { |
| 506 | // TODO: Stop image processor async | 516 | // TODO: Stop image processor async |
| 517 | npad_device->SetPollingMode(Common::Input::PollingMode::IR); | ||
| 507 | result = ResultSuccess; | 518 | result = ResultSuccess; |
| 508 | } | 519 | } |
| 509 | 520 | ||