livoxGen1: Add StimBuffs to PcloudStimProd

* PcloudStimulusProducer now has member sh_ptr<StimulusBuffer>s.
* StimulusProducer now has a vector<sh_ptr<StimulusBuffer>s.

Created new stimbuff-type-specific
Pcloud[Xyz|I|Ambience]StimulusBuffer classes for representing each
stim feature exposed by livoxGen1's PcloudStimulusProducer.
This commit is contained in:
2025-11-14 23:19:32 -04:00
parent 8a7dc10892
commit 98a493a8a1
7 changed files with 159 additions and 2 deletions
@@ -0,0 +1,41 @@
#ifndef _LIVOX_GEN1_PCLOUD_XYZ_STIMULUS_BUFFER_H
#define _LIVOX_GEN1_PCLOUD_XYZ_STIMULUS_BUFFER_H
#include <memory>
#include <user/stimulusBuffer.h>
namespace smo {
namespace stim_buff {
// Forward declaration
class StimulusProducer;
/**
* PcloudXyzStimulusBuffer is a specialized StimulusBuffer for XYZ point cloud data.
*/
class PcloudXyzStimulusBuffer
: public StimulusBuffer
{
public:
explicit PcloudXyzStimulusBuffer(
std::shared_ptr<StimulusProducer>& producer,
const std::shared_ptr<device::DeviceAttachmentSpec>& deviceAttachmentSpec,
int histbuffMs,
const SpMcRingBuffer::InputEngineConstraints& ringBufferConstraints)
: StimulusBuffer(
producer, deviceAttachmentSpec, histbuffMs, ringBufferConstraints)
{}
~PcloudXyzStimulusBuffer() = default;
// Non-copyable, movable
PcloudXyzStimulusBuffer(const PcloudXyzStimulusBuffer&) = delete;
PcloudXyzStimulusBuffer& operator=(const PcloudXyzStimulusBuffer&) = delete;
PcloudXyzStimulusBuffer(PcloudXyzStimulusBuffer&&) = default;
PcloudXyzStimulusBuffer& operator=(PcloudXyzStimulusBuffer&&) = default;
};
} // namespace stim_buff
} // namespace smo
#endif // _LIVOX_GEN1_PCLOUD_XYZ_STIMULUS_BUFFER_H