summaryrefslogtreecommitdiff
path: root/libs/evoral/evoral
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-11-30 18:51:24 -0500
committerDavid Robillard <d@drobilla.net>2014-11-30 23:56:19 -0500
commit1693e57e0ee37c6cd74f2feadb3af6249ac6c29d (patch)
tree6ad6ff0ec362b27ae4b8f8f84677f070d906c2cc /libs/evoral/evoral
parentcf537b97f5d015074578c809a15a38b8d3858d00 (diff)
Move EventRingBuffer to libardour.
This is not used anywhere in Evoral and is just a wrapper around the PBD RingBuffer anyway. Towards a (once again?) independently buildable/testable Evoral and fewer cross-dependencies.
Diffstat (limited to 'libs/evoral/evoral')
-rw-r--r--libs/evoral/evoral/EventRingBuffer.hpp135
-rw-r--r--libs/evoral/evoral/OldSMF.hpp2
2 files changed, 0 insertions, 137 deletions
diff --git a/libs/evoral/evoral/EventRingBuffer.hpp b/libs/evoral/evoral/EventRingBuffer.hpp
deleted file mode 100644
index df9e6aa9ee..0000000000
--- a/libs/evoral/evoral/EventRingBuffer.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/* This file is part of Evoral.
- * Copyright (C) 2008 David Robillard <http://drobilla.net>
- *
- * Evoral is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option) any later
- * version.
- *
- * Evoral is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef EVORAL_EVENT_RING_BUFFER_HPP
-#define EVORAL_EVENT_RING_BUFFER_HPP
-
-#include <iostream>
-
-#include "pbd/ringbufferNPT.h"
-
-#include "evoral/visibility.h"
-#include "evoral/EventSink.hpp"
-#include "evoral/types.hpp"
-
-using namespace std;
-
-namespace Evoral {
-
-/** A RingBuffer of events (generic time-stamped binary "blobs").
- *
- * This packs a timestamp, size, and size bytes of data flat into the buffer.
- * Useful for MIDI events, OSC messages, etc.
- *
- * Note: the uint8_t template argument to RingBufferNPT<> indicates "byte
- * oriented data", not anything particular linked to MIDI or any other
- * possible interpretation of uint8_t.
- */
-template<typename Time>
-class /*LIBEVORAL_API*/ EventRingBuffer : public PBD::RingBufferNPT<uint8_t>, public Evoral::EventSink<Time> {
-public:
-
- /** @param capacity Ringbuffer capacity in bytes.
- */
- EventRingBuffer(size_t capacity) : PBD::RingBufferNPT<uint8_t>(capacity)
- {}
-
- inline size_t capacity() const { return bufsize(); }
-
- /** Peek at the ringbuffer (read w/o advancing read pointer).
- * @return how much has been peeked (wraps around if read exceeds
- * the end of the buffer):
- * <pre>
- * |===========--------------R=============================|
- * read-pointer---^
- * </pre>
- */
- inline bool peek (uint8_t*, size_t size);
-
- inline uint32_t write(Time time, EventType type, uint32_t size, const uint8_t* buf);
- inline bool read (Time* time, EventType* type, uint32_t* size, uint8_t* buf);
-};
-
-template<typename Time>
-inline bool
-EventRingBuffer<Time>::peek (uint8_t* buf, size_t size)
-{
- PBD::RingBufferNPT<uint8_t>::rw_vector vec;
-
- get_read_vector (&vec);
-
- if (vec.len[0] + vec.len[1] < size) {
- return false;
- }
-
- if (vec.len[0] > 0) {
- memcpy (buf, vec.buf[0], min (vec.len[0], size));
- }
-
- if (vec.len[0] < size) {
- if (vec.len[1]) {
- memcpy (buf + vec.len[0], vec.buf[1], size - vec.len[0]);
- }
- }
-
- return true;
-}
-
-template<typename Time>
-inline bool
-EventRingBuffer<Time>::read(Time* time, EventType* type, uint32_t* size, uint8_t* buf)
-{
- if (PBD::RingBufferNPT<uint8_t>::read ((uint8_t*)time, sizeof (Time)) != sizeof (Time)) {
- return false;
- }
-
- if (PBD::RingBufferNPT<uint8_t>::read ((uint8_t*)type, sizeof(EventType)) != sizeof (EventType)) {
- return false;
- }
-
- if (PBD::RingBufferNPT<uint8_t>::read ((uint8_t*)size, sizeof(uint32_t)) != sizeof (uint32_t)) {
- return false;
- }
-
- if (PBD::RingBufferNPT<uint8_t>::read (buf, *size) != *size) {
- return false;
- }
-
- return true;
-}
-
-
-template<typename Time>
-inline uint32_t
-EventRingBuffer<Time>::write(Time time, EventType type, uint32_t size, const uint8_t* buf)
-{
- if (!buf || write_space() < (sizeof(Time) + sizeof(EventType) + sizeof(uint32_t) + size)) {
- return 0;
- } else {
- PBD::RingBufferNPT<uint8_t>::write ((uint8_t*)&time, sizeof(Time));
- PBD::RingBufferNPT<uint8_t>::write ((uint8_t*)&type, sizeof(EventType));
- PBD::RingBufferNPT<uint8_t>::write ((uint8_t*)&size, sizeof(uint32_t));
- PBD::RingBufferNPT<uint8_t>::write (buf, size);
- return size;
- }
-}
-
-
-} // namespace Evoral
-
-#endif // EVORAL_EVENT_RING_BUFFER_HPP
-
diff --git a/libs/evoral/evoral/OldSMF.hpp b/libs/evoral/evoral/OldSMF.hpp
index ef1c751d04..814f2a06c9 100644
--- a/libs/evoral/evoral/OldSMF.hpp
+++ b/libs/evoral/evoral/OldSMF.hpp
@@ -24,8 +24,6 @@
namespace Evoral {
template<typename Time> class Event;
-template<typename Time> class EventRingBuffer;
-
/** Standard Midi File (Type 0)
*/