diff options
author | David Robillard <d@drobilla.net> | 2008-02-16 23:48:51 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-02-16 23:48:51 +0000 |
commit | dca60d3035d69b2e557d1109c817b736b6067cff (patch) | |
tree | 11dfd4c49fc31e9d01c48aea3d76cc236b2b3fb5 /src | |
parent | b31244ce2606961195b53a8ede61238abcefa69b (diff) | |
download | ingen-dca60d3035d69b2e557d1109c817b736b6067cff.tar.gz ingen-dca60d3035d69b2e557d1109c817b736b6067cff.tar.bz2 ingen-dca60d3035d69b2e557d1109c817b736b6067cff.zip |
Work towards generic event stuff.
git-svn-id: http://svn.drobilla.net/lad/ingen@1144 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/engine/OSCBuffer.cpp | 100 | ||||
-rw-r--r-- | src/libs/engine/OSCBuffer.hpp | 65 | ||||
-rw-r--r-- | src/libs/engine/OSCDriver.hpp | 1 |
3 files changed, 0 insertions, 166 deletions
diff --git a/src/libs/engine/OSCBuffer.cpp b/src/libs/engine/OSCBuffer.cpp deleted file mode 100644 index f16bcfbf..00000000 --- a/src/libs/engine/OSCBuffer.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* This file is part of Ingen. - * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * - * Ingen 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. - * - * Ingen 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 - */ - -#include <iostream> -#include "OSCBuffer.hpp" - -using namespace std; - -namespace Ingen { - -OSCBuffer::OSCBuffer(size_t capacity) - : Buffer(DataType(DataType::OSC), capacity) - , _buf(lv2_osc_buffer_new((uint32_t)capacity)) - , _joined_buf(NULL) -{ - /*_local_state.midi = _buf; - _state = &_local_state; - assert(_local_state.midi); - reset(0); - clear(); - assert(_local_state.midi == _buf); -*/ - //cerr << "Creating OSC Buffer " << _buf << ", capacity = " << _buf->capacity << endl; -} - - - -/** Use another buffer's data instead of the local one. - * - * This buffer will essentially be identical to @a buf after this call. - */ -bool -OSCBuffer::join(Buffer* buf) -{ - OSCBuffer* obuf = dynamic_cast<OSCBuffer*>(buf); - if (!obuf) - return false; - - //assert(mbuf->size() == _size); - - _joined_buf = obuf; - - //cerr << "OSC buffer joined" << endl; - - //_state = mbuf->_state; - - return true; -} - - -void -OSCBuffer::unjoin() -{ - _joined_buf = NULL; - //_state = &_local_state; - //_state->midi = _buf; - - reset(_this_nframes); -} - - -void -OSCBuffer::prepare_read(SampleCount nframes) -{ - rewind(); - _this_nframes = nframes; -} - - -void -OSCBuffer::prepare_write(SampleCount nframes) -{ - reset(nframes); -} - - -void -OSCBuffer::copy(const Buffer* src, size_t start_sample, size_t end_sample) -{ - // FIXME - //cerr << "WARNING: OSC buffer copying not implemented, data dropped." << endl; -} - - - -} // namespace Ingen diff --git a/src/libs/engine/OSCBuffer.hpp b/src/libs/engine/OSCBuffer.hpp deleted file mode 100644 index 701cc57f..00000000 --- a/src/libs/engine/OSCBuffer.hpp +++ /dev/null @@ -1,65 +0,0 @@ -/* This file is part of Ingen. - * Copyright (C) 2007 Dave Robillard <http://drobilla.net> - * - * Ingen 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. - * - * Ingen 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 OSCBUFFER_H -#define OSCBUFFER_H - -#include "Buffer.hpp" -#include "interface/DataType.hpp" -#include "lv2/osc/lv2_osc.h" - -namespace Ingen { - - -class OSCBuffer : public Buffer { -public: - OSCBuffer(size_t capacity); - - ~OSCBuffer() { } - - void clear() { lv2_osc_buffer_clear(_buf); } - void reset(SampleCount nframes) { clear(); _this_nframes = nframes; } - void rewind() const {} - - void prepare_read(SampleCount nframes); - void prepare_write(SampleCount nframes); - - bool join(Buffer* buf); - void unjoin(); - - void copy(const Buffer* src, size_t start_sample, size_t end_sample); - - uint32_t this_nframes() const { return _this_nframes; } - uint32_t event_count() const { return _buf->message_count; } - - inline void* raw_data() { return _buf; } - inline const void* raw_data() const { return _buf; } - inline LV2OSCBuffer* data() { return _buf; } - inline const LV2OSCBuffer* data() const { return _buf; } - -private: - LV2OSCBuffer* const _buf; - - OSCBuffer* _joined_buf; ///< Buffer to mirror, if joined - - uint32_t _this_nframes; -}; - - -} // namespace Ingen - -#endif // OSCBUFFER_H diff --git a/src/libs/engine/OSCDriver.hpp b/src/libs/engine/OSCDriver.hpp index c72952de..06125217 100644 --- a/src/libs/engine/OSCDriver.hpp +++ b/src/libs/engine/OSCDriver.hpp @@ -21,7 +21,6 @@ #include "types.hpp" #include "Driver.hpp" #include <iostream> -#include "OSCBuffer.hpp" namespace Ingen { |