Fix build of evoral tests
[ardour.git] / libs / ardour / test / midi_clock_slave_test.h
index 1709962512684a5eb009281d7d41cc4b30c9d52f..56bda2ba58a91ee8bbb1e4750fbc2c51e44811cf 100644 (file)
@@ -28,73 +28,69 @@ namespace ARDOUR {
 
 class TestSlaveSessionProxy : public ISlaveSessionProxy {
   #define FRAME_RATE 44100
-  nframes64_t _period_size;
+  framecnt_t _period_size;
 
   double       transport_speed;
-  nframes64_t _transport_frame;
-  nframes64_t _frame_time;
-  TempoMap    _tempo_map;
+  framepos_t _transport_frame;
+  framepos_t _frame_time;
+  TempoMap    *_tempo_map;
 
   Tempo     tempo;
   Meter     meter;
-  BBT_Time  zero;
 
   public:
         TestSlaveSessionProxy() : 
            transport_speed  (1.0), 
           _transport_frame  (0), 
           _frame_time       (1000000),
-          _tempo_map        (FRAME_RATE),
+          _tempo_map        (0),
           tempo             (120),
           meter             (4.0, 4.0)
         {
-          _tempo_map.add_tempo (tempo, zero);
-          _tempo_map.add_meter (meter, zero);          
+          _tempo_map = new TempoMap (FRAME_RATE);
+          _tempo_map->add_tempo (tempo, Timecode::BBT_Time(1, 1, 0));
+          _tempo_map->add_meter (meter, Timecode::BBT_Time(1, 1, 0));          
         }
 
         // Controlling the mock object
-        void set_period_size (nframes64_t a_size) { _period_size = a_size; }
+        void        set_period_size (framecnt_t a_size) { _period_size = a_size; }
+        framecnt_t period_size () const                 { return _period_size; }
         void next_period ()                       { 
-          _transport_frame += _period_size
+          _transport_frame += double(_period_size) * double(transport_speed)
           _frame_time += _period_size;
         }
 
         // Implementation
-       TempoMap&   tempo_map ()                { return _tempo_map; }
-       nframes_t   frame_rate ()               const { return FRAME_RATE; }
-       nframes64_t audible_frame ()            const { return _transport_frame; }
-       nframes64_t transport_frame ()          const { return _transport_frame; }
-       nframes_t   frames_since_cycle_start () const { return 0; }
-       nframes64_t frame_time ()               const { return _frame_time; }
+       TempoMap&  tempo_map ()                const { return *_tempo_map; }
+       framecnt_t frame_rate ()               const { return FRAME_RATE; }
+       framepos_t audible_frame ()            const { return _transport_frame; }
+       framepos_t transport_frame ()          const { return _transport_frame; }
+       pframes_t  frames_since_cycle_start () const { return 0; }
+       framepos_t frame_time ()               const { return _frame_time; }
 
-       void request_locate (nframes64_t frame, bool with_roll = false) { 
+       void request_locate (framepos_t frame, bool with_roll = false) { 
           _transport_frame = frame; 
         }
 
         void request_transport_speed (const double speed) { transport_speed = speed; }
 };
 
-class MIDIClock_SlaveTest : public CppUnit::TestFixture
+class MIDIClock_SlaveTest : public CppUnit::TestFixture, ARDOUR::MIDIClock_Slave
 {
     CPPUNIT_TEST_SUITE(MIDIClock_SlaveTest);
     CPPUNIT_TEST(testStepResponse);
     CPPUNIT_TEST_SUITE_END();
-    
-    ISlaveSessionProxy *session_proxy;
-    MIDIClock_Slave    *slave;
-    
+
     public:
+       MIDIClock_SlaveTest () : MIDIClock_Slave (new TestSlaveSessionProxy) {}
                
         void setUp() {
-          session_proxy = new TestSlaveSessionProxy ();
-          slave = new MIDIClock_Slave (session_proxy);
         }
         
         void tearDown() {
         }
 
         void testStepResponse();
-
 };
 
 } // namespace ARDOUR