22 lines
794 B
C++
22 lines
794 B
C++
#include "user/event/KeyEventManager.h"
|
|
#include "kernel/Globals.h"
|
|
|
|
void KeyEventManager::subscribe(KeyEventListener& listener) {
|
|
log << DEBUG << "Subscribe, Thread ID: " << dec << listener.thread.tid << endl;
|
|
this->listeners.insert_last(&listener);
|
|
}
|
|
|
|
void KeyEventManager::unsubscribe(KeyEventListener& listener) {
|
|
log << DEBUG << "Unsubscribe, Thread ID: " << dec << listener.thread.tid << endl;
|
|
this->listeners.remove(&listener);
|
|
}
|
|
|
|
void KeyEventManager::broadcast(char c) {
|
|
log << TRACE << "Beginning Broadcast" << endl;
|
|
for (KeyEventListener* listener : this->listeners) {
|
|
log << TRACE << "Broadcasting " << c << " to Thread ID: " << dec << listener->thread.tid << endl;
|
|
listener->trigger(c);
|
|
scheduler.deblock(&listener->thread);
|
|
}
|
|
}
|