1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-21 02:17:08 +00:00

[Mostly] fixed track write-back.

This commit is contained in:
Thomas Harte
2016-12-25 19:19:22 -05:00
parent 74e98fd097
commit 1349e85d83
3 changed files with 9 additions and 12 deletions
+8 -10
View File
@@ -20,7 +20,6 @@ Controller::Controller(unsigned int clock_rate, unsigned int clock_rate_multipli
motor_is_on_(false),
is_reading_(true),
track_is_dirty_(false),
TimedEventLoop(clock_rate * clock_rate_multiplier)
{
@@ -31,13 +30,7 @@ Controller::Controller(unsigned int clock_rate, unsigned int clock_rate_multipli
void Controller::setup_track()
{
if(patched_track_)
{
drive_->set_track(patched_track_);
}
track_ = drive_->get_track();
track_is_dirty_ = false;
Time offset;
Time track_time_now = get_time_into_track();
@@ -154,7 +147,7 @@ void Controller::begin_writing()
{
is_reading_ = false;
write_segment_.length_of_a_bit = bit_length_ * rotational_multiplier_;
write_segment_.length_of_a_bit = bit_length_ / rotational_multiplier_;
write_segment_.data.clear();
write_segment_.number_of_bits = 0;
@@ -226,8 +219,8 @@ bool Controller::get_drive_is_read_only()
void Controller::step(int direction)
{
if(drive_) drive_->step(direction);
invalidate_track();
if(drive_) drive_->step(direction);
}
void Controller::set_motor_on(bool motor_on)
@@ -242,13 +235,18 @@ bool Controller::get_motor_on()
void Controller::set_drive(std::shared_ptr<Drive> drive)
{
drive_ = drive;
invalidate_track();
drive_ = drive;
}
void Controller::invalidate_track()
{
track_ = nullptr;
if(patched_track_)
{
drive_->set_track(patched_track_);
patched_track_ = nullptr;
}
}
void Controller::process_write_completed()