2023-01-15 17:01:27 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <JuceHeader.h>
|
|
|
|
#include "FrameSource.h"
|
|
|
|
#include "FrameConsumer.h"
|
|
|
|
|
|
|
|
class FrameProducer : public juce::Thread {
|
|
|
|
public:
|
2023-03-30 16:28:47 +00:00
|
|
|
FrameProducer(FrameConsumer&, std::shared_ptr<FrameSource>);
|
2023-01-15 17:01:27 +00:00
|
|
|
~FrameProducer() override;
|
|
|
|
|
|
|
|
void run() override;
|
2023-03-30 20:09:53 +00:00
|
|
|
void setSource(std::shared_ptr<FrameSource>, int fileIndex);
|
2023-01-15 17:01:27 +00:00
|
|
|
private:
|
2023-07-11 21:28:54 +00:00
|
|
|
juce::SpinLock lock;
|
2023-01-15 17:01:27 +00:00
|
|
|
FrameConsumer& frameConsumer;
|
2023-03-30 16:28:47 +00:00
|
|
|
std::shared_ptr<FrameSource> frameSource;
|
2023-07-02 12:09:24 +00:00
|
|
|
int sourceFileIndex = -1;
|
2023-01-15 17:01:27 +00:00
|
|
|
};
|