Files
pcem/experimental/printer_epsonlx810/plugin.c
2022-06-23 11:26:13 -07:00

43 lines
1.4 KiB
C

#include <pcem/plugin.h>
#include <pcem/config.h>
#include <string.h>
#include "lpt_epsonlx810.h"
extern char pcem_path[512];
LPT_DEVICE l_epsonlx810 = {"Epson LX-810 Printer", "lpt_epsonlx810", &lpt_epsonprinter_device};
#define safe_strncpy(a, b, n) \
do { \
strncpy((a), (b), (n)-1); \
(a)[(n)-1] = 0; \
} while (0)
char printer_path[512];
void set_printer_path(char *s) {
safe_strncpy(printer_path, s, 512);
append_slash(printer_path, 512);
}
void load_config() {
char *cfg_printer_path = config_get_string(CFG_GLOBAL, "Paths", "printer_path", 0);
if (cfg_printer_path)
set_printer_path(cfg_printer_path);
}
void save_config() { config_set_string(CFG_GLOBAL, "Paths", "printer_path", printer_path); }
void init_config() {
char s[512];
append_filename(s, pcem_path, "printer/", 512);
set_printer_path(s);
}
PLUGIN_INIT(printer_epsonlx810) {
add_config_callback(load_config, save_config, init_config);
pcem_add_lpt(&l_epsonlx810);
}