summaryrefslogtreecommitdiff
path: root/gr-audio/lib/osx/circular_buffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'gr-audio/lib/osx/circular_buffer.h')
-rw-r--r--gr-audio/lib/osx/circular_buffer.h73
1 files changed, 42 insertions, 31 deletions
diff --git a/gr-audio/lib/osx/circular_buffer.h b/gr-audio/lib/osx/circular_buffer.h
index 4a19e3ac6c..6d48de5edf 100644
--- a/gr-audio/lib/osx/circular_buffer.h
+++ b/gr-audio/lib/osx/circular_buffer.h
@@ -11,6 +11,7 @@
#ifndef _CIRCULAR_BUFFER_H_
#define _CIRCULAR_BUFFER_H_
+#include <gnuradio/logger.h>
#include <gnuradio/thread/thread.h>
#include <iostream>
#include <stdexcept>
@@ -20,13 +21,13 @@
#endif
#if DO_DEBUG
-#define DEBUG(X) \
- do { \
- X \
+#define LOG(X) \
+ do { \
+ X \
} while (0);
#else
-#define DEBUG(X) \
- do { \
+#define LOG(X) \
+ do { \
} while (0);
#endif
@@ -66,6 +67,8 @@ private:
};
public:
+ gr::logger_ptr d_logger, d_debug_logger;
+
circular_buffer(size_t bufLen_I, bool doWriteBlock = true, bool doFullRead = false)
{
if (bufLen_I == 0)
@@ -78,10 +81,12 @@ public:
d_internal = NULL;
d_readBlock = d_writeBlock = NULL;
reset();
- DEBUG(std::cerr << "c_b(): buf len (items) = " << d_bufLen_
- << ", doWriteBlock = " << (d_doWriteBlock ? "true" : "false")
- << ", doFullRead = " << (d_doFullRead ? "true" : "false")
- << std::endl);
+ gr::configure_default_loggers(d_logger, d_debug_logger, "circular_buffer");
+ LOG(std::ostringstream msg;
+ msg << "c_b(): buf len (items) = " << d_bufLen_
+ << ", doWriteBlock = " << (d_doWriteBlock ? "true" : "false")
+ << ", doFullRead = " << (d_doFullRead ? "true" : "false");
+ GR_LOG_INFO(d_debug_logger, msg.str()););
};
~circular_buffer()
@@ -150,13 +155,16 @@ public:
int enqueue(T* buf, size_t bufLen_I)
{
- DEBUG(std::cerr << "enqueue: buf = " << (void*)buf << ", bufLen = " << bufLen_I
- << ", #av_wr = " << d_n_avail_write_I
- << ", #av_rd = " << d_n_avail_read_I << std::endl);
+ LOG(std::ostringstream msg;
+ msg << "enqueue: buf = " << (void*)buf << ", bufLen = " << bufLen_I
+ << ", #av_wr = " << d_n_avail_write_I
+ << ", #av_rd = " << d_n_avail_read_I;
+ GR_LOG_INFO(d_debug_logger, msg.str()););
if (bufLen_I > d_bufLen_I) {
- std::cerr << "ERROR: cannot add buffer longer (" << bufLen_I
- << ") than instantiated length (" << d_bufLen_I << ")."
- << std::endl;
+ std::ostringstream msg;
+ msg << "cannot add buffer longer (" << bufLen_I
+ << ") than instantiated length (" << d_bufLen_I << ").";
+ GR_LOG_INFO(d_debug_logger, msg.str());
throw std::runtime_error("circular_buffer::enqueue()");
}
@@ -174,21 +182,21 @@ public:
if (bufLen_I > d_n_avail_write_I) {
if (d_doWriteBlock) {
while (bufLen_I > d_n_avail_write_I) {
- DEBUG(std::cerr << "enqueue: #len > #a, waiting." << std::endl);
+ LOG(GR_LOG_INFO(d_debug_logger, "enqueue #len > #a, waiting"););
// wait; will automatically unlock() the internal mutex via
// the scoped lock
d_writeBlock->wait(l);
// and auto re-lock() it here.
if (d_doAbort) {
- DEBUG(std::cerr << "enqueue: #len > #a, aborting." << std::endl);
+ LOG(GR_LOG_INFO(d_debug_logger, "enqueue #len > #a, aborting"););
return (2);
}
- DEBUG(std::cerr << "enqueue: #len > #a, done waiting." << std::endl);
+ LOG(GR_LOG_INFO(d_debug_logger, "enqueue #len > #a, done waiting"););
}
} else {
d_n_avail_read_I = d_bufLen_I - bufLen_I;
d_n_avail_write_I = bufLen_I;
- DEBUG(std::cerr << "circular_buffer::enqueue: overflow" << std::endl);
+ LOG(GR_LOG_ERROR(d_logger, "enqueue overflow"););
retval = -1;
}
}
@@ -236,9 +244,11 @@ public:
int dequeue(T* buf, size_t* bufLen_I)
{
- DEBUG(std::cerr << "dequeue: buf = " << ((void*)buf) << ", *bufLen = "
- << (*bufLen_I) << ", #av_wr = " << d_n_avail_write_I
- << ", #av_rd = " << d_n_avail_read_I << std::endl);
+ LOG(std::ostringstream msg;
+ msg << "dequeue: buf = " << ((void*)buf) << ", *bufLen = " << (*bufLen_I)
+ << ", #av_wr = " << d_n_avail_write_I
+ << ", #av_rd = " << d_n_avail_read_I;
+ GR_LOG_INFO(d_debug_logger, msg.str()););
if (!bufLen_I)
throw std::runtime_error("circular_buffer::dequeue(): "
"input bufLen pointer is NULL.");
@@ -249,9 +259,10 @@ public:
if (l_bufLen_I == 0)
return (0);
if (l_bufLen_I > d_bufLen_I) {
- std::cerr << "ERROR: cannot remove buffer longer (" << l_bufLen_I
- << ") than instantiated length (" << d_bufLen_I << ")."
- << std::endl;
+ std::ostringstream msg;
+ msg << "cannot remove buffer longer (" << l_bufLen_I
+ << ") than instantiated length (" << d_bufLen_I << ").";
+ GR_LOG_ERROR(d_logger, msg.str());
throw std::runtime_error("circular_buffer::dequeue()");
}
@@ -261,29 +272,29 @@ public:
}
if (d_doFullRead) {
while (d_n_avail_read_I < l_bufLen_I) {
- DEBUG(std::cerr << "dequeue: #a < #len, waiting." << std::endl);
+ LOG(GR_LOG_INFO(d_debug_logger, "dequeue #a < #len, waiting"););
// wait; will automatically unlock() the internal mutex via
// the scoped lock
d_readBlock->wait(l);
// and re-lock() it here.
if (d_doAbort) {
- DEBUG(std::cerr << "dequeue: #a < #len, aborting." << std::endl);
+ LOG(GR_LOG_INFO(d_debug_logger, "dequeue #a < #len, aborting"););
return (2);
}
- DEBUG(std::cerr << "dequeue: #a < #len, done waiting." << std::endl);
+ LOG(GR_LOG_INFO(d_debug_logger, "dequeue #a < #len, done waiting"););
}
} else {
while (d_n_avail_read_I == 0) {
- DEBUG(std::cerr << "dequeue: #a == 0, waiting." << std::endl);
+ LOG(GR_LOG_INFO(d_debug_logger, "dequeue: #a == 0, waiting."););
// wait; will automatically unlock() the internal mutex via
// the scoped lock
d_readBlock->wait(l);
// and re-lock() it here.
if (d_doAbort) {
- DEBUG(std::cerr << "dequeue: #a == 0, aborting." << std::endl);
+ LOG(GR_LOG_INFO(d_debug_logger, "dequeue: #a == 0, aborting."););
return (2);
}
- DEBUG(std::cerr << "dequeue: #a == 0, done waiting." << std::endl);
+ LOG(GR_LOG_INFO(d_debug_logger, "dequeue: #a == 0, done waiting."););
}
}
if (l_bufLen_I > d_n_avail_read_I)