added VFD toggle to config

This commit is contained in:
2024-02-06 12:34:11 +01:00
parent dae3018411
commit 451a7ec49d
33 changed files with 111 additions and 15 deletions

View File

@ -8,6 +8,7 @@
#include "board/aime-dll.h"
#include "board/config.h"
#include "board/sg-reader.h"
#include "board/vfd.h"
#include "util/dprintf.h"
@ -82,3 +83,11 @@ void io4_config_load(struct io4_config *cfg, const wchar_t *filename)
cfg->enable = GetPrivateProfileIntW(L"io4", L"enable", 1, filename);
}
void vfd_config_load(struct vfd_config *cfg, const wchar_t *filename)
{
assert(cfg != NULL);
assert(filename != NULL);
cfg->enable = GetPrivateProfileIntW(L"vfd", L"enable", 1, filename);
}

View File

@ -5,6 +5,8 @@
#include "board/io4.h"
#include "board/sg-reader.h"
#include "board/vfd.h"
void aime_config_load(struct aime_config *cfg, const wchar_t *filename);
void io4_config_load(struct io4_config *cfg, const wchar_t *filename);
void vfd_config_load(struct vfd_config *cfg, const wchar_t *filename);

View File

@ -27,14 +27,22 @@ static struct uart vfd_uart;
static uint8_t vfd_written[512];
static uint8_t vfd_readable[512];
HRESULT vfd_hook_init(unsigned int port_no)
HRESULT vfd_hook_init(const struct vfd_config *cfg, unsigned int port_no)
{
assert(cfg != NULL);
if (!cfg->enable) {
return S_FALSE;
}
uart_init(&vfd_uart, port_no);
vfd_uart.written.bytes = vfd_written;
vfd_uart.written.nbytes = sizeof(vfd_written);
vfd_uart.readable.bytes = vfd_readable;
vfd_uart.readable.nbytes = sizeof(vfd_readable);
dprintf("VFD: hook enabled.\n");
return iohook_push_handler(vfd_handle_irp);
}

View File

@ -2,4 +2,9 @@
#include <windows.h>
HRESULT vfd_hook_init(unsigned int port_no);
struct vfd_config {
bool enable;
};
HRESULT vfd_hook_init(const struct vfd_config *cfg, unsigned int port_no);