From 20bad38d4260bed627c0d8815ea541f8b1a44b47 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Wed, 6 Oct 2021 04:54:40 -0700 Subject: [PATCH] Add drive activity lights. --- Machines/Amiga/Chipset.cpp | 6 ++++++ Machines/Amiga/Chipset.hpp | 2 ++ 2 files changed, 8 insertions(+) diff --git a/Machines/Amiga/Chipset.cpp b/Machines/Amiga/Chipset.cpp index 39aed7c8f..aa4e27b0f 100644 --- a/Machines/Amiga/Chipset.cpp +++ b/Machines/Amiga/Chipset.cpp @@ -1126,6 +1126,12 @@ uint8_t Chipset::DiskController::get_rdy_trk0_wpro_chng() { return 0xff & ~active_high; } +void Chipset::DiskController::set_activity_observer(Activity::Observer *observer) { + for_all_drives([observer] (Storage::Disk::Drive &drive, size_t index) { + drive.set_activity_observer(observer, "Drive " + std::to_string(index+1), true); + }); +} + bool Chipset::DiskController::insert(const std::shared_ptr &disk, size_t drive) { if(drive >= 4) return false; get_drive(drive).set_disk(disk); diff --git a/Machines/Amiga/Chipset.hpp b/Machines/Amiga/Chipset.hpp index a8bbc9eb1..ba3190771 100644 --- a/Machines/Amiga/Chipset.hpp +++ b/Machines/Amiga/Chipset.hpp @@ -104,6 +104,7 @@ class Chipset: private ClockingHint::Observer { // Activity observation. void set_activity_observer(Activity::Observer *observer) { cia_a_handler_.set_activity_observer(observer); + disk_controller_.set_activity_observer(observer); } private: @@ -235,6 +236,7 @@ class Chipset: private ClockingHint::Observer { } bool insert(const std::shared_ptr &disk, size_t drive); + void set_activity_observer(Activity::Observer *); private: void process_input_bit(int value) final;