PcloudStimBuff: Add skeleton assembleAndProduceStimulusFrameReq impl
This commit is contained in:
@@ -9,6 +9,36 @@
|
||||
namespace smo {
|
||||
namespace stim_buff {
|
||||
|
||||
// Continuation class for assembleAndProduceStimulusFrameReq
|
||||
class PcloudStimulusBuffer::AssembleAndProduceStimulusFrameReq
|
||||
: public smo::PostedAsynchronousContinuation<
|
||||
assembleAndProduceStimulusFrameReqCbFn>
|
||||
{
|
||||
private:
|
||||
PcloudStimulusBuffer& stimBuff;
|
||||
|
||||
public:
|
||||
AssembleAndProduceStimulusFrameReq(
|
||||
PcloudStimulusBuffer& buffer,
|
||||
Callback<assembleAndProduceStimulusFrameReqCbFn> callback)
|
||||
: PostedAsynchronousContinuation<assembleAndProduceStimulusFrameReqCbFn>(
|
||||
buffer.device->componentThread, std::move(callback)),
|
||||
stimBuff(buffer)
|
||||
{}
|
||||
|
||||
void callOriginalCallback()
|
||||
{
|
||||
stimBuff.frameAssemblyRateLimiter.release();
|
||||
callOriginalCb(static_cast<SimultaneityStamp>(0));
|
||||
}
|
||||
|
||||
void callOriginalCallbackWithFailure()
|
||||
{
|
||||
stimBuff.frameAssemblyRateLimiter.release();
|
||||
callOriginalCb(static_cast<SimultaneityStamp>(0));
|
||||
}
|
||||
};
|
||||
|
||||
// OpenCL kernels are used to collate and produce our StimFrames.
|
||||
static SpMcRingBuffer::InputEngineConstraints openClInputConstraints(
|
||||
static_cast<size_t>(sysconf(_SC_PAGE_SIZE)), sizeof(void *));
|
||||
@@ -37,5 +67,12 @@ void PcloudStimulusBuffer::stimFrameProductionTimesliceInd()
|
||||
frameAssemblyRateLimiter.release();
|
||||
}
|
||||
|
||||
void PcloudStimulusBuffer::assembleAndProduceStimulusFrameReq(
|
||||
smo::Callback<assembleAndProduceStimulusFrameReqCbFn> callback)
|
||||
{
|
||||
// Wireframe implementation - do nothing for now
|
||||
(void)callback;
|
||||
}
|
||||
|
||||
} // namespace stim_buff
|
||||
} // namespace smo
|
||||
|
||||
Reference in New Issue
Block a user