From 78c71374273c95660bee88f4d1ef842b4e8d9fe5 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Fri, 3 Aug 2018 21:11:22 -0400 Subject: [PATCH] Avoids observer communication if motor status hasn't changed. --- Storage/Disk/Drive.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Storage/Disk/Drive.cpp b/Storage/Disk/Drive.cpp index cce6362b3..99fba1182 100644 --- a/Storage/Disk/Drive.cpp +++ b/Storage/Disk/Drive.cpp @@ -117,20 +117,22 @@ bool Drive::get_is_ready() { } void Drive::set_motor_on(bool motor_is_on) { - motor_is_on_ = motor_is_on; + if(motor_is_on_ != motor_is_on) { + motor_is_on_ = motor_is_on; - if(observer_) { - observer_->set_drive_motor_status(drive_name_, motor_is_on_); - if(announce_motor_led_) { - observer_->set_led_status(drive_name_, motor_is_on_); + if(observer_) { + observer_->set_drive_motor_status(drive_name_, motor_is_on_); + if(announce_motor_led_) { + observer_->set_led_status(drive_name_, motor_is_on_); + } } - } - if(!motor_is_on) { - ready_index_count_ = 0; - if(disk_) disk_->flush_tracks(); + if(!motor_is_on) { + ready_index_count_ = 0; + if(disk_) disk_->flush_tracks(); + } + update_clocking_observer(); } - update_clocking_observer(); } bool Drive::get_motor_on() {