diff --git a/ECTrainer2/BitalMonitor.cpp b/ECTrainer2/BitalMonitor.cpp index f536e0b..cd16194 100644 --- a/ECTrainer2/BitalMonitor.cpp +++ b/ECTrainer2/BitalMonitor.cpp @@ -6,7 +6,7 @@ // �R���X�g���N�^ BitalMonitor::BitalMonitor(ECTrainer* pEct) :BaseProcess(pEct) - , _rrInterval(ECTrainer::RINGBUFSIZE) + , _rrInterval(ECTrainer::RINGBUFSIZE, 0) { } diff --git a/ECTrainer2/RingBuffer.h b/ECTrainer2/RingBuffer.h index 15f1ca0..fdc74b5 100644 --- a/ECTrainer2/RingBuffer.h +++ b/ECTrainer2/RingBuffer.h @@ -15,6 +15,7 @@ bool _update; public: RingBuffer(int size); + RingBuffer(int size, T initial); ~RingBuffer(); void Put(T value); T Get(int past = 0); @@ -34,6 +35,18 @@ } template +RingBuffer::RingBuffer(int size, T initial) + : _data(NULL) + , _write(0) + , _read(0) + , _update(false) { + _size = size; + _data = new T[_size]; + for (int i = 0; i < _size; i++) _data[i] = initial; + _mtxData = new std::mutex[_size]; +} + +template RingBuffer::~RingBuffer() { delete[] _data; delete[] _mtxData;