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_I_STIMULUS_BUFFER_H
#define _LIVOX_GEN1_PCLOUD_I_STIMULUS_BUFFER_H
#include <memory>
#include <user/stimulusBuffer.h>
namespace smo {
namespace stim_buff {
// Forward declaration
class StimulusProducer;
/**
* PcloudIStimulusBuffer is a specialized StimulusBuffer for intensity point cloud data.
*/
class PcloudIStimulusBuffer
: public StimulusBuffer
{
public:
explicit PcloudIStimulusBuffer(
std::shared_ptr<StimulusProducer>& producer,
const std::shared_ptr<device::DeviceAttachmentSpec>& deviceAttachmentSpec,
int histbuffMs,
const SpMcRingBuffer::InputEngineConstraints& ringBufferConstraints)
: StimulusBuffer(
producer, deviceAttachmentSpec, histbuffMs, ringBufferConstraints)
{}
~PcloudIStimulusBuffer() = default;
// Non-copyable, movable
PcloudIStimulusBuffer(const PcloudIStimulusBuffer&) = delete;
PcloudIStimulusBuffer& operator=(const PcloudIStimulusBuffer&) = delete;
PcloudIStimulusBuffer(PcloudIStimulusBuffer&&) = default;
PcloudIStimulusBuffer& operator=(PcloudIStimulusBuffer&&) = default;
};
} // namespace stim_buff
} // namespace smo
#endif // _LIVOX_GEN1_PCLOUD_I_STIMULUS_BUFFER_H