Clean up folders

This commit is contained in:
Fergal Moran
2020-06-09 00:49:30 +01:00
parent 4bbb3c6d1d
commit 2a31559cd9
25 changed files with 207 additions and 153 deletions

View File

@@ -0,0 +1,20 @@
#ifndef __FERGLOS_DRIVERS_BLOCKMOUSEHANDLER_H
#define __FERGLOS_DRIVERS_BLOCKMOUSEHANDLER_H
#include <common/stdio.h>
#include <drivers/mouse.h>
using namespace ferglos::common;
namespace ferglos {
namespace drivers {
class BlockMouseHandler : public MouseEventHandler {
private:
int8_t _screenX, _screenY;
public:
BlockMouseHandler();
virtual void OnMouseMove(int xoffset, int yoffset);
};
} // namespace drivers
} // namespace ferglos
#endif

29
include/drivers/driver.h Normal file
View File

@@ -0,0 +1,29 @@
#ifndef __FERGLOS_DRIVERS_DRIVER_H
#define __FERGLOS_DRIVERS_DRIVER_H
namespace ferglos {
namespace drivers {
class Driver {
public:
Driver();
~Driver();
virtual void Activate();
virtual int Reset();
virtual void Deactivate();
};
class DriverManager {
private:
Driver* _drivers[32]; // hard code size for now until we have memory management sorted
int _numDrivers;
public:
DriverManager();
~DriverManager();
void AddDriver(Driver*);
void ActivateAll();
};
} // namespace drivers
} // namespace ferglos
#endif

View File

@@ -0,0 +1,15 @@
#ifndef __FERGLOS_DRIVERS_ECHOKEYBOARDHANDLER_H
#define __FERGLOS_DRIVERS_ECHOKEYBOARDHANDLER_H
#include <common/stdio.h>
#include <drivers/keyboard.h>
namespace ferglos {
namespace drivers {
class EchoKeyboardHandler : public KeyboardEventHandler {
public:
virtual void OnKeyDown(const wchar_t* key);
};
} // namespace drivers
} // namespace ferglos
#endif

View File

@@ -0,0 +1,38 @@
#ifndef __FERGLOS_DRIVERS_KEYBOARD_H
#define __FERGLOS_DRIVERS_KEYBOARD_H
#include <common/stdio.h>
#include <common/types.h>
#include <drivers/driver.h>
#include <hardware/interrupts.h>
#include <hardware/port.h>
using namespace ferglos::common;
using namespace ferglos::hardware;
namespace ferglos {
namespace drivers {
class KeyboardEventHandler {
public:
KeyboardEventHandler();
virtual void OnKeyDown(const wchar_t* key);
virtual void OnKeyUp(const wchar_t* key);
};
class KeyboardDriver : public InterruptHandler, public Driver {
private:
Port8Bit _dataport;
Port8Bit _commandport;
KeyboardEventHandler* _handler;
public:
KeyboardDriver(InterruptManager* manager, KeyboardEventHandler* handler);
~KeyboardDriver();
virtual uint32_t HandleInterrupt(uint32_t esp);
virtual void Activate();
};
} // namespace drivers
} // namespace ferglos
#endif

44
include/drivers/mouse.h Normal file
View File

@@ -0,0 +1,44 @@
#ifndef __FERGLOS_DRIVERS_MOUSE_H
#define __FERGLOS_DRIVERS_MOUSE_H
#include <common/types.h>
#include <drivers/driver.h>
#include <hardware/interrupts.h>
#include <hardware/port.h>
using namespace ferglos::common;
using namespace ferglos::hardware;
namespace ferglos {
namespace drivers {
class MouseEventHandler {
private:
public:
MouseEventHandler();
virtual void OnActivate();
virtual void OnMouseDown(uint8_t button);
virtual void OnMouseUp(uint8_t button);
virtual void OnMouseMove(int x, int y);
};
class MouseDriver : public InterruptHandler, public Driver {
private:
Port8Bit _dataport;
Port8Bit _commandport;
uint8_t _buffer[3];
uint8_t _offset;
uint8_t _buttons;
MouseEventHandler* _handler;
public:
MouseDriver(InterruptManager* manager, MouseEventHandler* handler);
~MouseDriver();
virtual uint32_t HandleInterrupt(uint32_t esp);
virtual void Activate();
};
} // namespace drivers
} // namespace ferglos
#endif