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