mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-20 22:30:30 +01:00
49 lines
1.0 KiB
C++
49 lines
1.0 KiB
C++
#include <ion/events.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <layout_events.h>
|
|
#include "display.h"
|
|
|
|
namespace Ion {
|
|
namespace Events {
|
|
|
|
static int sLogAfterNumberOfEvents = -1;
|
|
static int sEventCount = 0;
|
|
|
|
Event getEvent(int * timeout) {
|
|
Ion::Events::Event event = Ion::Events::None;
|
|
while (!(event.isDefined() && event.isKeyboardEvent())) {
|
|
int c = getchar();
|
|
if (c == EOF) {
|
|
printf("Finished processing %d events\n", sEventCount);
|
|
event = Ion::Events::Termination;
|
|
break;
|
|
}
|
|
event = Ion::Events::Event(c);
|
|
}
|
|
if (sEventCount++ > sLogAfterNumberOfEvents && sLogAfterNumberOfEvents >= 0) {
|
|
char filename[32];
|
|
sprintf(filename, "event%d.png", sEventCount);
|
|
Ion::Display::Blackbox::writeFrameBufferToFile(filename);
|
|
#if DEBUG
|
|
printf("Event %d is %s\n", sEventCount, event.name());
|
|
#endif
|
|
}
|
|
return event;
|
|
}
|
|
|
|
namespace Blackbox {
|
|
|
|
void dumpEventCount(int i) {
|
|
printf("Current event index: %d\n", sEventCount);
|
|
}
|
|
|
|
void logAfter(int numberOfEvents) {
|
|
sLogAfterNumberOfEvents = numberOfEvents;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|