1 /*
2  * Copyright (C) 1998-2015 Paul Davis <paul@linuxaudiosystems.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #include <iostream>
20 #include <cstdlib>
21 
22 #include "pbd/textreceiver.h"
23 
24 using namespace std;
25 
TextReceiver(const string & n)26 TextReceiver::TextReceiver (const string &n)
27 
28 {
29 	name = n;
30 }
31 
32 void
receive(Transmitter::Channel chn,const char * str)33 TextReceiver::receive (Transmitter::Channel chn, const char *str)
34 
35 {
36 	const char *prefix = "";
37 
38 	switch (chn) {
39 	case Transmitter::Debug:
40 		return;
41 	case Transmitter::Info:
42 		prefix = ": [INFO]: ";
43 		break;
44 	case Transmitter::Warning:
45 		prefix = ": [WARNING]: ";
46 		break;
47 	case Transmitter::Error:
48 		prefix = ": [ERROR]: ";
49 		break;
50 	case Transmitter::Fatal:
51 		prefix = ": [FATAL]: ";
52 		break;
53 	case Transmitter::Throw:
54 		/* this isn't supposed to happen */
55 		abort ();
56 	}
57 
58 	/* note: iostreams are already thread-safe: no external
59 	   lock required.
60 	*/
61 
62 	cout << name << prefix << str << endl;
63 
64 	if (chn == Transmitter::Fatal) {
65 		exit (9);
66 	}
67 }
68 
69