4 #ifndef _ArnoldMemoryFRAMEMANAGER_H_
5 #define _ArnoldMemoryFRAMEMANAGER_H_
9 #include "LumiverseCoreConfig.h"
12 #include "../lib/libjson/libjson.h"
30 bool operator<(FrameData other)
const {
31 return time < other.time;
42 class ArnoldMemoryFrameManager :
public ArnoldFrameManager
48 ArnoldMemoryFrameManager(
int fps = 24) :
49 ArnoldFrameManager(fps), m_bufferSet([](FrameData l, FrameData r) {
return l < r; }) { }
54 virtual ~ArnoldMemoryFrameManager();
60 virtual void dump(time_t time,
float *frame,
size_t width,
size_t height);
69 virtual float *getCurrentFrameBuffer();
78 virtual time_t getCurrentTime()
const;
86 virtual time_t getNextTime()
const;
93 virtual bool hasNext()
const;
99 virtual bool isEmpty()
const {
return m_bufferSet.size() == 0; }
106 virtual size_t getFrameNum()
const {
return m_bufferSet.size(); }
113 virtual void clear();
120 virtual std::string getType() {
return "ArnoldMemoryFrameManager"; }
124 std::set<FrameData, std::function<bool(FrameData, FrameData)>> m_bufferSet;
Contains all core Lumiverse functions and variables.
Definition: Device.cpp:2
The superclass for all implementation of frame managers.