1 #include "midi++/manager.h"
2 #include "pbd/textreceiver.h"
3 #include "pbd/compose.h"
4 #include "pbd/enumwriter.h"
5 #include "ardour/session.h"
6 #include "ardour/audioengine.h"
7 #include "test_needing_session.h"
10 using namespace ARDOUR;
13 class TestReceiver : public Receiver
16 void receive (Transmitter::Channel chn, const char * str) {
17 const char *prefix = "";
20 case Transmitter::Error:
21 prefix = ": [ERROR]: ";
23 case Transmitter::Info:
26 case Transmitter::Warning:
27 prefix = ": [WARNING]: ";
29 case Transmitter::Fatal:
30 prefix = ": [FATAL]: ";
32 case Transmitter::Throw:
33 /* this isn't supposed to happen */
37 /* note: iostreams are already thread-safe: no external
41 cout << prefix << str << endl;
43 if (chn == Transmitter::Fatal) {
49 TestReceiver test_receiver;
52 TestNeedingSession::setUp ()
54 string const test_session_path = "libs/ardour/test/test_session";
55 system (string_compose ("rm -rf %1", test_session_path).c_str());
57 SessionEvent::create_per_thread_pool ("test", 512);
59 test_receiver.listen_to (error);
60 test_receiver.listen_to (info);
61 test_receiver.listen_to (fatal);
62 test_receiver.listen_to (warning);
64 /* We can't use VSTs here as we have a stub instead of the
65 required bits in gtk2_ardour.
67 Config->set_use_lxvst (false);
69 AudioEngine* engine = new AudioEngine ("test", "");
72 CPPUNIT_ASSERT (engine->start () == 0);
74 _session = new Session (*engine, test_session_path, "test_session");
75 engine->set_session (_session);
79 TestNeedingSession::tearDown ()
81 AudioEngine::instance()->remove_session ();
83 AudioEngine::instance()->stop (true);
85 MIDI::Manager::destroy ();
86 AudioEngine::destroy ();