/*
- Copyright (C) 2016-2019 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2016-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
#ifndef DCPOMATIC_AUDIO_RING_BUFFERS_H
#define DCPOMATIC_AUDIO_RING_BUFFERS_H
+
#include "audio_buffers.h"
#include "types.h"
#include "dcpomatic_time.h"
-#include <boost/shared_ptr.hpp>
#include <boost/thread.hpp>
#include <list>
-class AudioRingBuffers : public boost::noncopyable
+
+class AudioRingBuffers
{
public:
AudioRingBuffers ();
- void put (boost::shared_ptr<const AudioBuffers> data, DCPTime time, int frame_rate);
- boost::optional<DCPTime> get (float* out, int channels, int frames);
- boost::optional<DCPTime> peek () const;
+ AudioRingBuffers (AudioBuffers const&) = delete;
+ AudioRingBuffers& operator= (AudioBuffers const&) = delete;
+
+ void put (std::shared_ptr<const AudioBuffers> data, dcpomatic::DCPTime time, int frame_rate);
+ boost::optional<dcpomatic::DCPTime> get (float* out, int channels, int frames);
+ boost::optional<dcpomatic::DCPTime> peek () const;
void clear ();
Frame size () const;
private:
mutable boost::mutex _mutex;
- std::list<std::pair<boost::shared_ptr<const AudioBuffers>, DCPTime> > _buffers;
- int _used_in_head;
+ std::list<std::pair<std::shared_ptr<const AudioBuffers>, dcpomatic::DCPTime> > _buffers;
+ int _used_in_head = 0;
};
+
#endif