diff options
Diffstat (limited to 'libs/canvas/test/wave_view.cc')
-rw-r--r-- | libs/canvas/test/wave_view.cc | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/libs/canvas/test/wave_view.cc b/libs/canvas/test/wave_view.cc deleted file mode 100644 index de7118b90c..0000000000 --- a/libs/canvas/test/wave_view.cc +++ /dev/null @@ -1,164 +0,0 @@ -#include <gtkmm/main.h> -#include "pbd/textreceiver.h" -#include "gtkmm2ext/utils.h" -#include "midi++/manager.h" -#include "ardour/session.h" -#include "ardour/audioengine.h" -#include "ardour/source_factory.h" -#include "ardour/audiosource.h" -#include "ardour/audiofilesource.h" -#include "ardour/region_factory.h" -#include "ardour/audioregion.h" -#include "canvas/wave_view.h" -#include "canvas/canvas.h" -#include "wave_view.h" - -using namespace std; -using namespace PBD; -using namespace ARDOUR; -using namespace ArdourCanvas; - -CPPUNIT_TEST_SUITE_REGISTRATION (WaveViewTest); - -TextReceiver text_receiver ("test"); - -void -WaveViewTest::setUp () -{ - init (false, true); - Gtkmm2ext::init (); - SessionEvent::create_per_thread_pool ("test", 512); - - Gtk::Main kit (); - Gtk::Main::init_gtkmm_internals (); - - text_receiver.listen_to (error); - text_receiver.listen_to (info); - text_receiver.listen_to (fatal); - text_receiver.listen_to (warning); - - AudioFileSource::set_build_peakfiles (true); - AudioFileSource::set_build_missing_peakfiles (true); - - AudioEngine engine ("test", ""); - MIDI::Manager::create (engine.jack ()); - CPPUNIT_ASSERT (engine.start () == 0); - - Session session (engine, "tmp_session", "tmp_session"); - engine.set_session (&session); - - char buf[256]; - getcwd (buf, sizeof (buf)); - string const path = string_compose ("%1/../../libs/canvas/test/sine.wav", buf); - - boost::shared_ptr<Source> source = SourceFactory::createReadable ( - DataType::AUDIO, session, path, 0, (Source::Flag) 0, false, true - ); - - boost::shared_ptr<AudioFileSource> audio_file_source = boost::dynamic_pointer_cast<AudioFileSource> (source); - - audio_file_source->setup_peakfile (); - - PBD::PropertyList properties; - properties.add (Properties::position, 128); - properties.add (Properties::length, audio_file_source->readable_length ()); - _region = RegionFactory::create (source, properties, false); - _audio_region = boost::dynamic_pointer_cast<AudioRegion> (_region); -} - -void -WaveViewTest::make_canvas () -{ - /* this leaks various things, but hey ho */ - - _canvas = new ImageCanvas (Duple (256, 256)); - _wave_view = new WaveView (_canvas->root(), _audio_region); - _wave_view->set_frames_per_pixel ((double) (44100 / 1000) / 64); - _wave_view->set_height (64); -} - -void -WaveViewTest::all () -{ - /* XXX: we run these all from the same method so that the setUp code only - gets called once; there are various singletons etc. in Ardour which don't - like being recreated. - */ - - render_all_at_once (); - render_in_pieces (); - cache (); -} - -void -WaveViewTest::render_all_at_once () -{ - make_canvas (); - - _canvas->render_to_image (Rect (0, 0, 256, 256)); - _canvas->write_to_png ("waveview_1.png"); - - /* XXX: doesn't check the result! */ -} - -void -WaveViewTest::render_in_pieces () -{ - make_canvas (); - - cout << "\n\n--------------> PIECES\n"; - _canvas->render_to_image (Rect (0, 0, 128, 256)); - _canvas->render_to_image (Rect (128, 0, 256, 256)); - _canvas->write_to_png ("waveview_2.png"); - cout << "\n\n<-------------- PIECES\n"; - - /* XXX: doesn't check the result! */ -} - -void -WaveViewTest::cache () -{ - make_canvas (); - - /* Whole of the render area needs caching from scratch */ - - _wave_view->invalidate_whole_cache (); - - Rect whole (0, 0, 256, 256); - _canvas->render_to_image (whole); - - CPPUNIT_ASSERT (_wave_view->_cache.size() == 1); - CPPUNIT_ASSERT (_wave_view->_cache.front()->start() == 0); - CPPUNIT_ASSERT (_wave_view->_cache.front()->end() == 256); - - _wave_view->invalidate_whole_cache (); - - /* Render a bit in the middle */ - - Rect part1 (128, 0, 196, 256); - _canvas->render_to_image (part1); - - CPPUNIT_ASSERT (_wave_view->_cache.size() == 1); - CPPUNIT_ASSERT (_wave_view->_cache.front()->start() == 128); - CPPUNIT_ASSERT (_wave_view->_cache.front()->end() == 196); - - /* Now render the whole thing and check that the cache sorts itself out */ - - _canvas->render_to_image (whole); - - CPPUNIT_ASSERT (_wave_view->_cache.size() == 3); - - list<WaveView::CacheEntry*>::iterator i = _wave_view->_cache.begin (); - - CPPUNIT_ASSERT ((*i)->start() == 0); - CPPUNIT_ASSERT ((*i)->end() == 128); - ++i; - - CPPUNIT_ASSERT ((*i)->start() == 128); - CPPUNIT_ASSERT ((*i)->end() == 196); - ++i; - - CPPUNIT_ASSERT ((*i)->start() == 196); - CPPUNIT_ASSERT ((*i)->end() == 256); - ++i; -} |