diff options
-rw-r--r-- | raul/Process.hpp | 4 | ||||
-rw-r--r-- | raul/fmt.hpp | 28 | ||||
-rw-r--r-- | raul/log.hpp | 105 | ||||
-rw-r--r-- | src/log.cpp | 83 | ||||
-rw-r--r-- | wscript | 1 |
5 files changed, 28 insertions, 193 deletions
diff --git a/raul/Process.hpp b/raul/Process.hpp index 238e8c0..96ac831 100644 --- a/raul/Process.hpp +++ b/raul/Process.hpp @@ -24,7 +24,6 @@ #include <string> #include "raul/Noncopyable.hpp" -#include "raul/log.hpp" namespace Raul { @@ -47,9 +46,6 @@ public: const std::string arguments = command.substr((command.find(" ") + 1)); - info << "Launching child process '" << executable << "' with arguments '" - << arguments << "'" << std::endl; - // Use the same double fork() trick as JACK to prevent zombie children const int err = fork(); diff --git a/raul/fmt.hpp b/raul/fmt.hpp new file mode 100644 index 0000000..8af82f0 --- /dev/null +++ b/raul/fmt.hpp @@ -0,0 +1,28 @@ +/* + This file is part of Raul. + Copyright 2007-2012 David Robillard <http://drobilla.net> + + Raul 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 3 of the License, or any later version. + + Raul 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 more details. + + You should have received a copy of the GNU General Public License + along with Raul. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef RAUL_FMT_HPP +#define RAUL_FMT_HPP + +#include <boost/format.hpp> + +namespace Raul { + +typedef boost::basic_format<char> fmt; + +} // namespace Raul + +#endif // RAUL_FMT_HPP diff --git a/raul/log.hpp b/raul/log.hpp deleted file mode 100644 index 5c0908c..0000000 --- a/raul/log.hpp +++ /dev/null @@ -1,105 +0,0 @@ -/* - This file is part of Raul. - Copyright 2007-2012 David Robillard <http://drobilla.net> - - Raul 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 3 of the License, or any later version. - - Raul 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 more details. - - You should have received a copy of the GNU General Public License - along with Raul. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef RAUL_LOG_HPP -#define RAUL_LOG_HPP - -#include <boost/format.hpp> -#include <iostream> -#include <string> - -namespace Raul { - -typedef boost::basic_format<char> fmt; - -/** Buffer for (possibly coloured) log printing. - * \ingroup raul - */ -class LogBuffer : public std::streambuf -{ -public: - enum Colour { - DEFAULT = 0, - RED = 31, - GREEN, - YELLOW, - BLUE, - MAGENTA, - CYAN, - WHITE - }; - - LogBuffer(const char* prefix="", Colour colour=DEFAULT) - : _prefix(prefix) - , _out(std::cout) - , _colour(colour) - {} - - /** Change the colour of the output, e.g. out << colour(RED) << "red" << endl; */ - std::string colour(Colour c); - - /** Reset the colour of the output, e.g. out << plain() << "plain" << endl; */ - std::string plain(); - -protected: - int_type overflow(int_type c) { - if (c == '\n') - emit(); - else if (c != traits_type::eof()) - _line += c; - - return c; - } - - int sync() { - if (!_line.empty()) - emit(); - return 0; - } - -private: - void emit(); - - std::string _prefix; - std::string _line; - std::ostream& _out; - Colour _colour; -}; - -class NullBuffer : public std::streambuf -{ -protected: - int_type overflow(int_type c) { return c; } - int sync() { return 0; } -}; - -class Log : public std::ostream { -public: - explicit Log(std::streambuf* buf) : std::ostream(buf) {} - template<typename T> Log& operator()(const T& o) { - *this << o; - return *this; - } -}; - -extern Raul::Log info; -extern Raul::Log warn; -extern Raul::Log error; -extern Raul::Log debug; - -} // namespace Raul - -#endif // RAUL_LOG_HPP diff --git a/src/log.cpp b/src/log.cpp deleted file mode 100644 index 975dece..0000000 --- a/src/log.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - This file is part of Raul. - Copyright 2007-2012 David Robillard <http://drobilla.net> - - Raul 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 3 of the License, or any later version. - - Raul 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 more details. - - You should have received a copy of the GNU General Public License - along with Raul. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include <sstream> -#include <string> - -#include "raul/log.hpp" -#include "raul_config.h" - -namespace Raul { - -#ifdef RAUL_LOG_COLOUR - -LogBuffer info_buffer("", LogBuffer::GREEN); -LogBuffer warn_buffer("", LogBuffer::YELLOW); -LogBuffer error_buffer("", LogBuffer::RED); -#ifdef RAUL_LOG_DEBUG -LogBuffer debug_buffer("", LogBuffer::CYAN); -#else -NullBuffer debug_buffer; -#endif - -#else // !RAUL_LOG_COLOUR - -LogBuffer info_buffer("INFO: "); -LogBuffer warn_buffer("WARNING: "); -LogBuffer error_buffer("ERROR: "); -#ifdef RAUL_LOG_DEBUG -LogBuffer debug_buffer("DEBUG: "); -#else -NullBuffer debug_buffer; -#endif - -#endif // RAUL_LOG_COLOUR - -Raul::Log info(&info_buffer); -Raul::Log warn(&warn_buffer); -Raul::Log error(&error_buffer); -Raul::Log debug(&debug_buffer); - -std::string -Raul::LogBuffer::colour(Colour c) -{ - std::stringstream ss; - ss << "\033[0;" << _colour << "m"; - return ss.str(); -} - -std::string -Raul::LogBuffer::plain() -{ - return "\033[0m"; -} - -void -Raul::LogBuffer::emit() -{ - if (_colour != DEFAULT) - _out << std::string(colour(_colour)); - - _out << _prefix << _line; - - if (_colour != DEFAULT) - _out << plain(); - - _out << std::endl; - _line.clear(); -} - -} // namespace Raul @@ -111,7 +111,6 @@ def build(bld): lib_source = ''' src/Configuration.cpp src/Thread.cpp - src/log.cpp ''' framework = '' |