diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2022-07-24 19:31:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-24 19:31:28 +0200 |
commit | 5af06d14337a61d9ed1093079d13f68cbb1f5451 (patch) | |
tree | 88df3fada076b04c2ab2da8972d1d785f492b520 /src/core/hle/service/hid/irsensor/tera_plugin_processor.h | |
parent | Merge pull request #8545 from Kelebek1/Audio (diff) | |
parent | yuzu: Add webcam support and rebase to latest master (diff) | |
download | yuzu-5af06d14337a61d9ed1093079d13f68cbb1f5451.tar yuzu-5af06d14337a61d9ed1093079d13f68cbb1f5451.tar.gz yuzu-5af06d14337a61d9ed1093079d13f68cbb1f5451.tar.bz2 yuzu-5af06d14337a61d9ed1093079d13f68cbb1f5451.tar.lz yuzu-5af06d14337a61d9ed1093079d13f68cbb1f5451.tar.xz yuzu-5af06d14337a61d9ed1093079d13f68cbb1f5451.tar.zst yuzu-5af06d14337a61d9ed1093079d13f68cbb1f5451.zip |
Diffstat (limited to 'src/core/hle/service/hid/irsensor/tera_plugin_processor.h')
-rw-r--r-- | src/core/hle/service/hid/irsensor/tera_plugin_processor.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/irsensor/tera_plugin_processor.h b/src/core/hle/service/hid/irsensor/tera_plugin_processor.h new file mode 100644 index 000000000..bbea7ed0b --- /dev/null +++ b/src/core/hle/service/hid/irsensor/tera_plugin_processor.h @@ -0,0 +1,53 @@ +// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include "common/bit_field.h" +#include "common/common_types.h" +#include "core/hid/irs_types.h" +#include "core/hle/service/hid/irsensor/processor_base.h" + +namespace Service::IRS { +class TeraPluginProcessor final : public ProcessorBase { +public: + explicit TeraPluginProcessor(Core::IrSensor::DeviceFormat& device_format); + ~TeraPluginProcessor() override; + + // Called when the processor is initialized + void StartProcessor() override; + + // Called when the processor is suspended + void SuspendProcessor() override; + + // Called when the processor is stopped + void StopProcessor() override; + + // Sets config parameters of the camera + void SetConfig(Core::IrSensor::PackedTeraPluginProcessorConfig config); + +private: + // This is nn::irsensor::TeraPluginProcessorConfig + struct TeraPluginProcessorConfig { + u8 mode; + u8 unknown_1; + u8 unknown_2; + u8 unknown_3; + }; + static_assert(sizeof(TeraPluginProcessorConfig) == 0x4, + "TeraPluginProcessorConfig is an invalid size"); + + struct TeraPluginProcessorState { + s64 sampling_number; + u64 timestamp; + Core::IrSensor::CameraAmbientNoiseLevel ambient_noise_level; + std::array<u8, 0x12c> data; + }; + static_assert(sizeof(TeraPluginProcessorState) == 0x140, + "TeraPluginProcessorState is an invalid size"); + + TeraPluginProcessorConfig current_config{}; + Core::IrSensor::DeviceFormat& device; +}; + +} // namespace Service::IRS |