improved disk
This commit is contained in:
parent
6b3f0760ca
commit
335992a338
@ -1,13 +1,36 @@
|
||||
package kernel.peripherals;
|
||||
|
||||
import kernel.net.Package;
|
||||
using tink.CoreApi;
|
||||
|
||||
class Drive implements IPeripheral {
|
||||
public final onDiskInsert:Signal<Noise>;
|
||||
public final onDiskEject:Signal<Noise>;
|
||||
|
||||
private final addr:String;
|
||||
private final native:cc.periphs.Disk;
|
||||
private final onDiskInsertTrigger:SignalTrigger<Noise> = Signal.trigger();
|
||||
private final onDiskEjectTrigger:SignalTrigger<Noise> = Signal.trigger();
|
||||
|
||||
@:allow(kernel.peripherals)
|
||||
private function new(native: cc.periphs.Disk,addr: String) {
|
||||
this.addr = addr;
|
||||
this.native = native;
|
||||
|
||||
this.onDiskInsert = this.onDiskInsertTrigger.asSignal();
|
||||
this.onDiskEject = this.onDiskEjectTrigger.asSignal();
|
||||
|
||||
KernelEvents.instance.onDisk.handle((addr) ->{
|
||||
if (addr == this.addr){
|
||||
this.onDiskInsertTrigger.trigger(null);
|
||||
}
|
||||
});
|
||||
|
||||
KernelEvents.instance.onDiskEject.handle((addr)->{
|
||||
if (addr == this.addr){
|
||||
this.onDiskEjectTrigger.trigger(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public function getAddr():String {
|
||||
|
@ -30,6 +30,7 @@ class Peripheral {
|
||||
private function updatePeripherals() {
|
||||
findScreens();
|
||||
findModems();
|
||||
findDrives();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user