summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJosh Blum2012-09-12 21:44:50 -0700
committerJosh Blum2012-09-12 21:44:50 -0700
commitc4785d122c6c0c0bd3163db1b9201eab9e286d5b (patch)
tree6a52b3e1c68fcf829d82de9ac56fca7e420782a4 /lib
parentc7720bd1b740094636b0b66e6286f4c14961d31f (diff)
downloadsandhi-c4785d122c6c0c0bd3163db1b9201eab9e286d5b.tar.gz
sandhi-c4785d122c6c0c0bd3163db1b9201eab9e286d5b.tar.bz2
sandhi-c4785d122c6c0c0bd3163db1b9201eab9e286d5b.zip
remove buffinfo struct, use sbuffer directly
Diffstat (limited to 'lib')
-rw-r--r--lib/block_task.cpp10
-rw-r--r--lib/gras_impl/input_buffer_queues.hpp22
2 files changed, 12 insertions, 20 deletions
diff --git a/lib/block_task.cpp b/lib/block_task.cpp
index d69e05d..3d9056e 100644
--- a/lib/block_task.cpp
+++ b/lib/block_task.cpp
@@ -112,13 +112,13 @@ void ElementImpl::handle_task(const tsbe::TaskInterface &task_iface)
input_tokens_count += this->input_tokens[i].use_count();
ASSERT(this->input_queues.ready(i));
- const BuffInfo info = this->input_queues.front(i);
- const size_t items = info.len/this->input_items_sizes[i];
+ const SBuffer buff = this->input_queues.front(i);
+ const size_t items = buff.length/this->input_items_sizes[i];
- this->work_io_ptr_mask |= ptrdiff_t(info.mem);
- this->input_items[i]._mem = info.mem;
+ this->work_io_ptr_mask |= ptrdiff_t(buff.get());
+ this->input_items[i]._mem = buff.get();
this->input_items[i]._len = items;
- this->work_input_items[i] = info.mem;
+ this->work_input_items[i] = buff.get();
this->work_ninput_items[i] = items;
num_input_items = std::min(num_input_items, items);
}
diff --git a/lib/gras_impl/input_buffer_queues.hpp b/lib/gras_impl/input_buffer_queues.hpp
index acde25a..44abcf1 100644
--- a/lib/gras_impl/input_buffer_queues.hpp
+++ b/lib/gras_impl/input_buffer_queues.hpp
@@ -29,13 +29,6 @@
namespace gnuradio
{
-struct BuffInfo
-{
- BuffInfo(void): mem(NULL), len(0){}
- void *mem;
- size_t len;
-};
-
struct InputBufferQueues
{
~InputBufferQueues(void)
@@ -60,7 +53,7 @@ struct InputBufferQueues
* Otherwise, resolve pointers to the input buffer,
* moving the memory and length by num history bytes.
*/
- BuffInfo front(const size_t i);
+ SBuffer front(const size_t i);
/*!
* Rules for consume:
@@ -191,7 +184,7 @@ inline void InputBufferQueues::init(
}
-inline BuffInfo InputBufferQueues::front(const size_t i)
+inline SBuffer InputBufferQueues::front(const size_t i)
{
//if (_queues[i].empty()) return BuffInfo();
@@ -200,12 +193,11 @@ inline BuffInfo InputBufferQueues::front(const size_t i)
__prepare(i);
SBuffer &front = _queues[i].front();
- BuffInfo info;
- info.mem = front.get(-_history_bytes[i]);
- info.len = front.length;
- info.len /= _multiple_bytes[i];
- info.len *= _multiple_bytes[i];
- return info;
+ SBuffer buff = front; //copy new settings
+ buff.offset -= _history_bytes[i];
+ buff.length /= _multiple_bytes[i];
+ buff.length *= _multiple_bytes[i];
+ return buff;
}
inline void InputBufferQueues::__prepare(const size_t i)