AppleWin/source/linux/keyboard.cpp
Andrea Odetti 874f4be666 Single keyboard handler.
Seems to work...

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2019-12-07 11:20:37 +00:00

48 lines
553 B
C++

#include "linux/keyboard.h"
#include "StdAfx.h"
#include "Applewin.h"
#include <queue>
namespace
{
std::queue<BYTE> keys;
BYTE keycode = 0;
}
void addKeyToBuffer(BYTE key)
{
keys.push(key);
}
BYTE KeybGetKeycode()
{
return keycode;
}
BYTE KeybReadData()
{
LogFileTimeUntilFirstKeyRead();
if (keys.empty())
{
return keycode;
}
else
{
keycode = keys.front();
const BYTE result = keycode | 0x80;
return result;
}
}
BYTE KeybReadFlag()
{
if (!keys.empty())
{
keys.pop();
}
return KeybReadData();
}