From 160a1f0c22bd92e225f7472b1f81ed1a3d2f72e3 Mon Sep 17 00:00:00 2001 From: j4nk Date: Fri, 19 May 2023 16:27:22 -0400 Subject: [PATCH] Original repository --- .gitignore | 7 + 91-g13.rules | 1 + Makefile | 49 +++ README.md | 187 ++++++++++++ clock.sh | 42 +++ eve-online.bind | 26 ++ g13.cc | 794 ++++++++++++++++++++++++++++++++++++++++++++++++ g13.h | 583 +++++++++++++++++++++++++++++++++++ g13.png | Bin 0 -> 342877 bytes g13.svg | 624 +++++++++++++++++++++++++++++++++++++ g13_fonts.cc | 422 +++++++++++++++++++++++++ g13_keys.cc | 219 +++++++++++++ g13_lcd.cc | 194 ++++++++++++ g13_log.cc | 48 +++ g13_main.cc | 70 +++++ g13_stick.cc | 180 +++++++++++ g13_test.py | 41 +++ hello.lpbm | Bin 0 -> 960 bytes helper.cpp | 76 +++++ helper.hpp | 196 ++++++++++++ hon.bind | 7 + logo.h | 66 ++++ logo.lpbm | Bin 0 -> 960 bytes pbm2lpbm.c | 54 ++++ spring.bind | 13 + starcraft.lpbm | Bin 0 -> 960 bytes starcraft2.bind | 38 +++ war.bind | 19 ++ 28 files changed, 3956 insertions(+) create mode 100644 .gitignore create mode 100644 91-g13.rules create mode 100644 Makefile create mode 100644 README.md create mode 100755 clock.sh create mode 100644 eve-online.bind create mode 100644 g13.cc create mode 100644 g13.h create mode 100644 g13.png create mode 100644 g13.svg create mode 100644 g13_fonts.cc create mode 100644 g13_keys.cc create mode 100644 g13_lcd.cc create mode 100644 g13_log.cc create mode 100644 g13_main.cc create mode 100644 g13_stick.cc create mode 100755 g13_test.py create mode 100644 hello.lpbm create mode 100644 helper.cpp create mode 100644 helper.hpp create mode 100644 hon.bind create mode 100644 logo.h create mode 100644 logo.lpbm create mode 100644 pbm2lpbm.c create mode 100644 spring.bind create mode 100644 starcraft.lpbm create mode 100644 starcraft2.bind create mode 100644 war.bind diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..00acc1f --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/g13d +.cproject +.project +.pydevproject +*.o +pbm2lpbm +.settings/* diff --git a/91-g13.rules b/91-g13.rules new file mode 100644 index 0000000..7926d4e --- /dev/null +++ b/91-g13.rules @@ -0,0 +1 @@ +SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c21c", MODE="0666" \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1b44d5c --- /dev/null +++ b/Makefile @@ -0,0 +1,49 @@ +all: g13d pbm2lpbm + +FLAGS=$(CXXFLAGS) -DBOOST_LOG_DYN_LINK -std=c++0x +LIBS=-lusb-1.0 -lboost_log -lboost_log_setup-mt -lboost_thread -lboost_system-mt -lpthread + +g13.o: g13.h helper.hpp g13.cc + g++ $(FLAGS) -c g13.cc + +g13_main.o: g13.h helper.hpp g13_main.cc + g++ $(FLAGS) -c g13_main.cc + + +g13_log.o: g13.h helper.hpp g13_log.cc + g++ $(FLAGS) -c g13_log.cc + +g13_fonts.o: g13.h helper.hpp g13_fonts.cc + g++ $(FLAGS) -c g13_fonts.cc + +g13_lcd.o: g13.h helper.hpp g13_lcd.cc + g++ $(FLAGS) -c g13_lcd.cc + +g13_stick.o: g13.h helper.hpp g13_stick.cc + g++ $(FLAGS) -c g13_stick.cc + +g13_keys.o: g13.h helper.hpp g13_keys.cc + g++ $(FLAGS) -c g13_keys.cc + +helper.o: helper.hpp helper.cpp + g++ $(FLAGS) -c helper.cpp + + +g13d: g13_main.o g13.o g13_log.o g13_fonts.o g13_lcd.o g13_stick.o g13_keys.o helper.o + g++ -o g13d -std=c++0x \ + g13_main.o g13.o g13_log.o g13_fonts.o g13_lcd.o g13_stick.o g13_keys.o helper.o \ + -lusb-1.0 -lboost_program_options \ + -lboost_log \ + -lboost_system -lpthread + +pbm2lpbm: pbm2lpbm.c + g++ -o pbm2lpbm pbm2lpbm.c + +package: + rm -Rf g13-userspace + mkdir g13-userspace + cp g13.cc g13.h logo.h Makefile pbm2lpbm.c g13-userspace + tar cjf g13-userspace.tbz2 g13-userspace + rm -Rf g13-userspace +clean: + rm -f g13 pbm2lpbm \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..6492d00 --- /dev/null +++ b/README.md @@ -0,0 +1,187 @@ +# Userspace driver for the G13 + +## Installation + +Make sure you have boost and libusb-1.0 installed. + +### For Ubuntu (15.10) + +* ***sudo apt-get install libusb-1.0-0-dev*** +* ***sudo apt-get install libboost-all-dev*** + + +### Build +Compile by running + + make + +If you want to run the daemon as user, put the file 91-g13.rules into /etc/udev/rules.d/ (or whatever directory your distribution uses). + +## Running + + +Connect your device, then run ./g13d, it should automatically find your device. + +If you see output like + + Known keys on G13: + BD DOWN G1 G10 G11 G12 G13 G14 G15 G16 G17 G18 G19 G2 G20 G21 G22 G3 G4 G5 G6 G7 + G8 G9 L1 L2 L3 L4 LEFT LIGHT LIGHT2 LIGHT_STATE M1 M2 M3 MISC_TOGGLE MR TOP UND + EF1 UNDEF3 + Known keys to map to: + 0 1 2 3 4 5 6 7 8 9 A APOSTROPHE B BACKSLASH BACKSPACE C CAPSLOCK COMMA D DELETE + DOT DOWN E END ENTER EQUAL ESC F F1 F10 F11 F12 F2 F3 F4 F5 F6 F7 F8 F9 G GRAVE + H HOME I INSERT J K KP0 KP1 KP2 KP3 KP4 KP5 KP6 KP7 KP8 KP9 KPASTERISK KPDOT K + PMINUS KPPLUS L LEFT LEFTALT LEFTBRACE LEFTCTRL LEFTSHIFT M MINUS N NUMLOCK O + P PAGEDOWN PAGEUP Q R RIGHT RIGHTALT RIGHTBRACE RIGHTCTRL RIGHTSHIFT S SCROLLL + OCK SEMICOLON SLASH SPACE T TAB U UP V W X Y Z + Found 1 G13s + + Active Stick zones + STICK_UP { 0 x 0.1 / 1 x 0.3 } SEND KEYS: UP + STICK_DOWN { 0 x 0.7 / 1 x 0.9 } SEND KEYS: DOWN + STICK_LEFT { 0 x 0 / 0.2 x 1 } SEND KEYS: LEFT + STICK_RIGHT { 0.8 x 0 / 1 x 1 } SEND KEYS: RIGHT + STICK_PAGEUP { 0 x 0 / 1 x 0.1 } SEND KEYS: PAGEUP + STICK_PAGEDOWN { 0 x 0.9 / 1 x 1 } SEND KEYS: PAGEDOWN + + + +that is good. This also shows you which name the keys on the G13 have, and what keys you can bind them to. + +### Command line options + +The following options can be used when starting g13d + +Option | Description +--------------------|------------------------------------------------- + --help | show help + --logo *arg* | set logo from file + --config *arg* | load config commands from file + --pipe_in *arg* | specify name for input pipe + --pipe_out *arg* | specify name for output pipe + +## Configuring / Remote Control + +Configuration is accomplished using the commands described in the [Commands] section. + +Commands can be loaded from a file specified by the --config option on the command line. + +Commands can be also be sent to the command input pipe, which is at ***/tmp/g13-0*** by +default. Example: + + echo rgb 0 255 0 > /tmp/g13-0 + +### Actions + +Various parts of configuring the G13 depend on assigning actions to occur based on something happening to the G13. +* key, possible values shown upon startup (e.g. ***KEY_LEFTSHIFT***). +* multiple keys, like ***KEY_LEFTSHIFT+KEY_F1*** +* pipe output, by using ">" followed by text, as in ***>Hello*** - causing **Hello** (plus newline) to be written to the output pipe ( **/tmp/g13-0_out** by default ) +* command, by using "!" followed by text, as in ***!stick_mode KEYS*** + +## Commands + +### rgb *r* *g* *b* + +Sets the backlight color + +### mod *n* + +Sets the background light of the mod-keys. *n* is the sum of 1 (M1), 2 (M2), 4 (M3) and 8 (MR) (i.e. 13 +would set M1, M3 and MR, and unset M2). + +### bind *keyname* *action* + +This binds a key or a stick zone. +* The possible values of *keyname* for keys are shown upon startup (e.g. G1). +* The possible values of *action* are described in [Actions]. + +### stickmode *mode* + +The stick can be used as an absolute input device or can send key events. You can change modes to one of the following: + +Mode | Description +-----------|--------------------------- +KEYS | translates stick movements into key / action bindings +ABSOLUTE | stick becomes mouse with absolute positioning +RELATIVE | not quite working yet... +CALCENTER | calibrate stick center position +CALBOUNDS | calibrate stick boundaries +CALNORTH | calibrate stick north + +### stickzone *operation* *zonename* *args* + +defines zones to be used when the stick is in KEYS mode + +Where *operation* can be + +operation | what it does +----------|---------------- +add | add a new zone named *zonename* +del | remove zone named *zonename* +action | set action for zone, see [Actions] +bounds | set boundaries for zone, *args* are X1, Y1, X2, Y2, where X1/Y1 are top left corner, X2/Y2 are bottom right corner + +Default created zones are LEFT, RIGHT, UP and DOWN. + +Zone boundary coordinates are based on a floating point value from 0.0 (top/left) to 1.0 (bottom/right). When the +stick enters the boundary area, the zone's action ***down*** activity will be fired. On exiting the boundary, the +action ***up*** activity will be fired. + +Example: + + stickzone add TheBottomLeft + stickzone bounds TheBottomLeft 0.0 0.9 0.1 1.0 + stickzone action KEY_END + +### pos *row* *col* + +Sets the current text position to *row* *col*. +* *row* is specified in characters (0-4), as all fonts are 8 pixels high and rows start on pixel row 0, 8, 16, 24, or 32 +* *col* is specified in pixels (0-159) + +### out *text* + +Writes *text* to the LCD at the current text position, and advances the current position based on the font size + +### clear + +Clears the LCD + +### textmode *mode* + +Sets the text mode to *mode*, current options are 0 (normal) or 1 (inverted) + +### refresh + +Resends the LCD buffer + +### profile *profile_name* + +Selects *profile_name* to be the current profile, it if it doesn't exist creating it as a copy of the current profile. + +All key binding changes (from the bind command) are made on the current profile. + +### font *font_name* + +Switch font, current options are ***8x8*** and ***5x8*** + +### dump *all|current|summary* + +Dumps G13 configuration info to g13d console + +### log_level *trace|debug|info|warning|error|fatal* + +Changes the level of detail written to the g13d console + +### LCD display + +Use pbm2lpbm to convert a pbm image to the correct format, then just cat that into the pipe (cat starcraft2.lpbm > /tmp/g13-0). +The pbm file must be 160x43 pixels. + +## License + +All files without a copyright notice are placed in the public domain. Do with it whatever you want. + +Some source code files include MIT style license - see files for specifics. \ No newline at end of file diff --git a/clock.sh b/clock.sh new file mode 100755 index 0000000..555ed58 --- /dev/null +++ b/clock.sh @@ -0,0 +1,42 @@ +#!/bin/bash +center_x=30 +center_y=20 +diameter=18 + +hr_orig_x=0 +hr_orig_y=10 +sec_orig_x=0 +sec_orig_y=18 +min_orig_x=0 +min_orig_y=15 + +ticks="" +for i in $(seq 0 12) +do + tax=$(echo "scale=3;$center_x - $diameter * s($i/12*(2*4*a(1)))" | bc -l) + tay=$(echo "scale=3;$center_y + $diameter * c($i/12*(2*4*a(1)))" | bc -l) + tbx=$(echo "scale=3;$center_x - ($diameter - 3) * s($i/12*(2*4*a(1)))" | bc -l) + tby=$(echo "scale=3;$center_y + ($diameter - 3) * c($i/12*(2*4*a(1)))" | bc -l) + ticks="$ticks -draw \"line $tax,$tay $tbx,$tby\"" +done + +while true +do +Date=$(date +%Y-%m-%d) +Time=$(date +%H:%M:%S) +hr=$(date +%I) +min=$(date +%M) +sec=$(date +%S) +hr_x=$(echo "scale=3;$center_x + $hr_orig_y * s(($hr/12+$min/60/12)*(2*4*a(1)))" | bc -l) +hr_y=$(echo "scale=3;$center_y - $hr_orig_y * c(($hr/12+$min/60/12)*(2*4*a(1)))" | bc -l) + +sec_x=$(echo "scale=3;$center_x + $sec_orig_y * s($sec/60*(2*4*a(1)))" | bc -l) +sec_y=$(echo "scale=3;$center_y - $sec_orig_y * c($sec/60*(2*4*a(1)))" | bc -l) + +min_x=$(echo "scale=3;$center_x + $min_orig_y * s($min/60*(2*4*a(1)))" | bc -l) +min_y=$(echo "scale=3;$center_y - $min_orig_y * c($min/60*(2*4*a(1)))" | bc -l) +preparams="-size 160x43 xc:white -stroke black -fill white -draw \"circle 30,20 30,2\" -draw \"line 30,20 $sec_x,$sec_y\" -draw \"line 30,20 $min_x,$min_y\" -draw \"line 30,20 $hr_x,$hr_y\" " +postparams="-pointsize 16 -fill black -font Courier -draw \"text 60,15 '$Date'\" -draw \"text 68,35 '$Time'\" pbm:- " +eval convert $preparams $ticks $postparams | ./pbm2lpbm > /tmp/g13-0 +sleep 1 +done diff --git a/eve-online.bind b/eve-online.bind new file mode 100644 index 0000000..6f1909f --- /dev/null +++ b/eve-online.bind @@ -0,0 +1,26 @@ +bind G1 KEY_F1 +bind G2 KEY_F2 +bind G3 KEY_F3 +bind G4 KEY_F4 +bind G5 KEY_F5 +bind G6 KEY_F6 +bind G7 KEY_F7 +bind G8 KEY_T # show info +bind G9 KEY_S # warp to +bind G10 KEY_Q # approach +bind G11 KEY_A # align to +bind G12 KEY_W # orbit +bind G13 KEY_E # keep at range +bind G15 KEY_LEFTSHIFT +bind G16 KEY_F # drones engage +bind G17 KEY_G # drones return and orbit +bind G18 KEY_H # drones return to drone bay +bind G19 KEY_LEFTCTRL +bind G20 KEY_LEFTALT +bind G22 KEY_LEFTCTRL +bind LEFT KEY_KPPLUS +bind DOWN KEY_KPMINUS +bind STICK_LEFT KEY_RIGHT +bind STICK_RIGHT KEY_LEFT +bind STICK_UP KEY_UP +bind STICK_DOWN KEY_DOWN diff --git a/g13.cc b/g13.cc new file mode 100644 index 0000000..8e81d9f --- /dev/null +++ b/g13.cc @@ -0,0 +1,794 @@ +#include "g13.h" +#include "logo.h" +#include + +#if 0 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +using namespace std; + +// ************************************************************************* + +#define CONTROL_DIR std::string("/tmp/") + +namespace G13 { + +// ************************************************************************* + +void G13_Device::send_event(int type, int code, int val) { + + memset(&_event, 0, sizeof(_event)); + gettimeofday(&_event.time, 0 ); + _event.type = type; + _event.code = code; + _event.value = val; + write(_uinput_fid, &_event, sizeof(_event)); +} + +void G13_Device::write_output_pipe( const std::string &out ) { + write( _output_pipe_fid, out.c_str(), out.size() ); +} + +void G13_Device::set_mode_leds(int leds) { + + unsigned char usb_data[] = { 5, 0, 0, 0, 0 }; + usb_data[1] = leds; + int r = libusb_control_transfer(handle, + LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_INTERFACE, 9, 0x305, 0, + usb_data, 5, 1000); + if (r != 5) { + G13_LOG( error, "Problem sending data" ); + return; + } +} +void G13_Device::set_key_color(int red, int green, int blue) { + int error; + unsigned char usb_data[] = { 5, 0, 0, 0, 0 }; + usb_data[1] = red; + usb_data[2] = green; + usb_data[3] = blue; + + error = libusb_control_transfer(handle, + LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_INTERFACE, 9, 0x307, 0, + usb_data, 5, 1000); + if (error != 5) { + G13_LOG( error, "Problem sending data" ); + return; + } +} + +// ************************************************************************* + +void G13_Manager::discover_g13s(libusb_device **devs, ssize_t count, + vector& g13s) { + for (int i = 0; i < count; i++) { + libusb_device_descriptor desc; + int r = libusb_get_device_descriptor(devs[i], &desc); + if (r < 0) { + G13_LOG( error, "Failed to get device descriptor" ); + return; + } + if (desc.idVendor == G13_VENDOR_ID && desc.idProduct == G13_PRODUCT_ID) { + libusb_device_handle *handle; + int r = libusb_open(devs[i], &handle); + if (r != 0) { + G13_LOG( error, "Error opening G13 device" ); + return; + } + if (libusb_kernel_driver_active(handle, 0) == 1) + if (libusb_detach_kernel_driver(handle, 0) == 0) + G13_LOG( info, "Kernel driver detached" ); + + r = libusb_claim_interface(handle, 0); + if (r < 0) { + G13_LOG( error, "Cannot Claim Interface" ); + return; + } + g13s.push_back(new G13_Device(*this, handle, g13s.size())); + } + } +} + +// ************************************************************************* + +int g13_create_fifo(const char *fifo_name) { + + // mkfifo(g13->fifo_name(), 0777); - didn't work + mkfifo(fifo_name, 0666); + chmod(fifo_name, 0777); + + return open(fifo_name, O_RDWR | O_NONBLOCK); +} + +// ************************************************************************* + +int g13_create_uinput(G13_Device *g13) { + struct uinput_user_dev uinp; + struct input_event event; + const char* dev_uinput_fname = + access("/dev/input/uinput", F_OK) == 0 ? "/dev/input/uinput" : + access("/dev/uinput", F_OK) == 0 ? "/dev/uinput" : 0; + if (!dev_uinput_fname) { + G13_LOG( error, "Could not find an uinput device" ); + return -1; + } + if (access(dev_uinput_fname, W_OK) != 0) { + G13_LOG( error, dev_uinput_fname << " doesn't grant write permissions" ); + return -1; + } + int ufile = open(dev_uinput_fname, O_WRONLY | O_NDELAY); + if (ufile <= 0) { + G13_LOG( error, "Could not open uinput" ); + return -1; + } + memset(&uinp, 0, sizeof(uinp)); + char name[] = "G13"; + strncpy(uinp.name, name, sizeof(name)); + uinp.id.version = 1; + uinp.id.bustype = BUS_USB; + uinp.id.product = G13_PRODUCT_ID; + uinp.id.vendor = G13_VENDOR_ID; + uinp.absmin[ABS_X] = 0; + uinp.absmin[ABS_Y] = 0; + uinp.absmax[ABS_X] = 0xff; + uinp.absmax[ABS_Y] = 0xff; + // uinp.absfuzz[ABS_X] = 4; + // uinp.absfuzz[ABS_Y] = 4; + // uinp.absflat[ABS_X] = 0x80; + // uinp.absflat[ABS_Y] = 0x80; + + ioctl(ufile, UI_SET_EVBIT, EV_KEY); + ioctl(ufile, UI_SET_EVBIT, EV_ABS); + /* ioctl(ufile, UI_SET_EVBIT, EV_REL);*/ + ioctl(ufile, UI_SET_MSCBIT, MSC_SCAN); + ioctl(ufile, UI_SET_ABSBIT, ABS_X); + ioctl(ufile, UI_SET_ABSBIT, ABS_Y); + /* ioctl(ufile, UI_SET_RELBIT, REL_X); + ioctl(ufile, UI_SET_RELBIT, REL_Y);*/ + for (int i = 0; i < 256; i++) + ioctl(ufile, UI_SET_KEYBIT, i); + ioctl(ufile, UI_SET_KEYBIT, BTN_THUMB); + + int retcode = write(ufile, &uinp, sizeof(uinp)); + if (retcode < 0) { + G13_LOG( error, "Could not write to uinput device (" << retcode << ")" ); + return -1; + } + retcode = ioctl(ufile, UI_DEV_CREATE); + if (retcode) { + G13_LOG( error, "Error creating uinput device for G13" ); + return -1; + } + return ufile; +} + +void G13_Device::register_context(libusb_context *_ctx) { + ctx = _ctx; + + int leds = 0; + int red = 0; + int green = 0; + int blue = 255; + init_lcd(); + + set_mode_leds(leds); + set_key_color(red, green, blue); + + write_lcd( g13_logo, sizeof(g13_logo) ); + + _uinput_fid = g13_create_uinput(this); + + + _input_pipe_name = _manager.make_pipe_name(this,true); + _input_pipe_fid = g13_create_fifo(_input_pipe_name.c_str()); + _output_pipe_name = _manager.make_pipe_name(this,false); + _output_pipe_fid = g13_create_fifo(_output_pipe_name.c_str()); + + if ( _input_pipe_fid == -1 ) { + G13_LOG( error, "failed opening pipe" ); + } +} + +void G13_Device::cleanup() { + remove(_input_pipe_name.c_str()); + remove(_output_pipe_name.c_str()); + ioctl(_uinput_fid, UI_DEV_DESTROY); + close(_uinput_fid); + libusb_release_interface(handle, 0); + libusb_close(handle); +} + +void G13_Manager::cleanup() { + G13_LOG( info, "cleaning up" ); + for (int i = 0; i < g13s.size(); i++) { + g13s[i]->cleanup(); + delete g13s[i]; + } + libusb_exit(ctx); +} + +// ************************************************************************* + +static std::string describe_libusb_error_code(int code) { + + #define TEST_libusb_error( r, data, elem ) \ + case BOOST_PP_CAT( LIBUSB_, elem ) : \ + return BOOST_PP_STRINGIZE( elem ); \ + + switch (code) { + + BOOST_PP_SEQ_FOR_EACH(TEST_libusb_error, _, + (SUCCESS)(ERROR_IO)(ERROR_INVALID_PARAM)(ERROR_ACCESS) + (ERROR_NO_DEVICE)(ERROR_NOT_FOUND)(ERROR_BUSY) + (ERROR_TIMEOUT)(ERROR_OVERFLOW)(ERROR_PIPE) + (ERROR_INTERRUPTED)(ERROR_NO_MEM)(ERROR_NOT_SUPPORTED) + (ERROR_OTHER)) + + } + return "unknown error"; +} + +// ************************************************************************* + +/*! reads and processes key state report from G13 + * + */ +int G13_Device::read_keys() { + unsigned char buffer[G13_REPORT_SIZE]; + int size; + int error = libusb_interrupt_transfer( handle, + LIBUSB_ENDPOINT_IN | G13_KEY_ENDPOINT, buffer, G13_REPORT_SIZE, + &size, 100); + + if (error && error != LIBUSB_ERROR_TIMEOUT) { + + G13_LOG( error, "Error while reading keys: " << error << " (" + << describe_libusb_error_code(error) << ")" ); + // G13_LOG( error, "Stopping daemon" ); + // return -1; + } + if (size == G13_REPORT_SIZE) { + parse_joystick(buffer); + _current_profile->parse_keys(buffer); + send_event( EV_SYN, SYN_REPORT, 0); + } + return 0; +} + + +void G13_Device::read_config_file( const std::string &filename ) { + std::ifstream s( filename ); + + G13_LOG( info, "reading configuration from " << filename ); + while( s.good() ) { + + // grab a line + char buf[1024]; + buf[0] = 0; + buf[sizeof(buf)-1] = 0; + s.getline( buf, sizeof(buf)-1 ); + + // strip comment + char *comment = strchr(buf,'#'); + if( comment ) { + comment--; + while( comment > buf && isspace( *comment ) ) comment--; + *comment = 0; + } + + // send it + if( buf[0] ) { + G13_LOG( info, " cfg: " << buf ); + command( buf ); + } + } +} + +void G13_Device::read_commands() { + + fd_set set; + FD_ZERO(&set); + FD_SET(_input_pipe_fid, &set); + struct timeval tv; + tv.tv_sec = 0; + tv.tv_usec = 0; + int ret = select(_input_pipe_fid + 1, &set, 0, 0, &tv); + if (ret > 0) { + unsigned char buf[1024 * 1024]; + memset(buf, 0, 1024 * 1024); + ret = read(_input_pipe_fid, buf, 1024 * 1024); + G13_LOG( trace, "read " << ret << " characters" ); + + if (ret == 960) { // TODO probably image, for now, don't test, just assume image + lcd().image(buf, ret); + } else { + std::string buffer = reinterpret_cast(buf); + std::vector lines; + boost::split(lines, buffer, boost::is_any_of("\n\r")); + + BOOST_FOREACH(std::string const &cmd, lines) { + std::vector command_comment; + boost::split(command_comment, cmd, boost::is_any_of("#")); + + if (command_comment.size() > 0 && command_comment[0] != std::string("")) { + G13_LOG( info, "command: " << command_comment[0] ); + command(command_comment[0].c_str()); + } + } + } + } +} + +G13_Device::G13_Device(G13_Manager &manager, libusb_device_handle *handle, + int _id) : + _manager(manager), + _lcd(*this), + _stick(*this), + handle(handle), + _id_within_manager(_id), + _uinput_fid(-1), + ctx(0) +{ + _current_profile = ProfilePtr(new G13_Profile(*this, "default")); + _profiles["default"] = _current_profile; + + + for (int i = 0; i < sizeof(keys); i++) + keys[i] = false; + + lcd().image_clear(); + + _init_fonts(); + _init_commands(); +} + +FontPtr G13_Device::switch_to_font(const std::string &name) { + FontPtr rv = _fonts[name]; + if (rv) { + _current_font = rv; + } + return rv; +} + +void G13_Device::switch_to_profile(const std::string &name) { + _current_profile = profile(name); + +} + +ProfilePtr G13_Device::profile(const std::string &name) { + ProfilePtr rv = _profiles[name]; + if (!rv) { + rv = ProfilePtr(new G13_Profile(*_current_profile, name)); + _profiles[name] = rv; + } + return rv; +} + +// ************************************************************************* + +G13_Action::~G13_Action() { +} + +G13_Action_Keys::G13_Action_Keys(G13_Device & keypad, const std::string &keys_string) : + G13_Action(keypad) +{ + std::vector keys; + boost::split(keys, keys_string, boost::is_any_of("+")); + + BOOST_FOREACH(std::string const &key, keys) { + auto kval = manager().find_input_key_value(key); + if( kval == BAD_KEY_VALUE ) { + throw G13_CommandException("create action unknown key : " + key); + } + _keys.push_back(kval); + } + + std::vector _keys; +} + +G13_Action_Keys::~G13_Action_Keys() { +} + +void G13_Action_Keys::act(G13_Device &g13, bool is_down) { + if (is_down) { + for (int i = 0; i < _keys.size(); i++) { + g13.send_event( EV_KEY, _keys[i], is_down); + G13_LOG( trace, "sending KEY DOWN " << _keys[i] ); + } + } else { + for (int i = _keys.size() - 1; i >= 0; i--) { + g13.send_event( EV_KEY, _keys[i], is_down); + G13_LOG( trace, "sending KEY UP " << _keys[i] ); + } + + } +} + +void G13_Action_Keys::dump( std::ostream &out ) const { + out << " SEND KEYS: "; + + for( size_t i = 0; i < _keys.size(); i++ ) { + if( i ) out << " + "; + out << manager().find_input_key_name( _keys[i] ); + } +} + +G13_Action_PipeOut::G13_Action_PipeOut(G13_Device & keypad, + const std::string &out) : + G13_Action(keypad), _out(out + "\n") { +} +G13_Action_PipeOut::~G13_Action_PipeOut() { +} + +void G13_Action_PipeOut::act(G13_Device &kp, bool is_down) { + if (is_down) { + kp.write_output_pipe( _out ); + } +} + +void G13_Action_PipeOut::dump( std::ostream &o ) const { + o << "WRITE PIPE : " << repr( _out ); +} + + +G13_Action_Command::G13_Action_Command(G13_Device & keypad, + const std::string &cmd) : + G13_Action(keypad), _cmd(cmd) { +} +G13_Action_Command::~G13_Action_Command() { +} + +void G13_Action_Command::act(G13_Device &kp, bool is_down) { + if (is_down) { + keypad().command(_cmd.c_str()); + } +} + +void G13_Action_Command::dump( std::ostream &o ) const { + o << "COMMAND : " << repr( _cmd ); +} + +G13_ActionPtr G13_Device::make_action(const std::string &action) { + if (!action.size()) { + throw G13_CommandException("empty action string"); + } + if (action[0] == '>') { + return G13_ActionPtr(new G13_Action_PipeOut(*this, &action[1])); + } else if (action[0] == '!') { + return G13_ActionPtr(new G13_Action_Command(*this, &action[1])); + } else { + return G13_ActionPtr(new G13_Action_Keys(*this, action)); + } + throw G13_CommandException("can't create action for " + action); +} + +// ************************************************************************* + +void G13_Device::dump(std::ostream &o, int detail ) { + o << "G13 id=" << id_within_manager() << endl; + o << " input_pipe_name=" << repr( _input_pipe_name ) << endl; + o << " output_pipe_name=" << repr( _output_pipe_name ) << endl; + o << " current_profile=" << _current_profile->name() << endl; + o << " current_font=" << _current_font->name() << std::endl; + + if( detail > 0 ) { + o << "STICK" << std::endl; + stick().dump( o ); + if( detail == 1 ) { + _current_profile->dump(o); + } else { + for( auto i = _profiles.begin(); i != _profiles.end(); i++ ) { + i->second->dump(o); + } + } + } +} + + +// ************************************************************************* + +#define RETURN_FAIL( message ) \ + { \ + G13_LOG( error, message ); \ + return; \ + } \ + +struct command_adder { + command_adder( G13_Device::CommandFunctionTable & t, const char *name ) : _t(t), _name(name) {} + + G13_Device::CommandFunctionTable &_t; + std::string _name; + command_adder & operator +=( G13_Device::COMMAND_FUNCTION f ) { + _t[_name] = f; + return *this; + }; +}; + +#define G13_DEVICE_COMMAND( name ) \ + ; \ + command_adder BOOST_PP_CAT(add_, name )( _command_table, \ + BOOST_PP_STRINGIZE(name) ); \ + BOOST_PP_CAT(add_, name ) += \ + [this]( const char *remainder ) \ + + +void G13_Device::_init_commands() { + + + using Helper::advance_ws; + + + G13_DEVICE_COMMAND( out ) { + lcd().write_string(remainder); + } + + + G13_DEVICE_COMMAND( pos ) { + int row, col; + if (sscanf(remainder, "%i %i", &row, &col) == 2) { + lcd().write_pos(row, col); + } else { + RETURN_FAIL( "bad pos : " << remainder ); + } + } + + G13_DEVICE_COMMAND( bind ) { + std::string keyname; + advance_ws(remainder, keyname); + std::string action = remainder; + try { + if (auto key = _current_profile->find_key(keyname)) { + key->set_action( make_action(action) ); + } else if (auto stick_key = _stick.zone(keyname)) { + stick_key->set_action( make_action(action) ); + } else { + RETURN_FAIL( "bind key " << keyname << " unknown" ); + } + G13_LOG( trace, "bind " << keyname << " [" << action << "]" ); + } catch (const std::exception &ex) { + RETURN_FAIL( "bind " << keyname << " " << action << " failed : " << ex.what() ); + } + } + + G13_DEVICE_COMMAND( profile ) { + switch_to_profile(remainder); + } + + G13_DEVICE_COMMAND( font ) { + switch_to_font(remainder); + } + G13_DEVICE_COMMAND( mod ) { + set_mode_leds(atoi(remainder)); + } + G13_DEVICE_COMMAND( textmode ) { + lcd().text_mode = atoi(remainder); + } + + G13_DEVICE_COMMAND( rgb ) { + int red, green, blue; + if (sscanf(remainder, "%i %i %i", &red, &green, &blue) == 3) { + set_key_color(red, green, blue); + } else { + RETURN_FAIL( "rgb bad format: <" << remainder << ">" ); + } + } + + G13_DEVICE_COMMAND( stickmode ) { + + std::string mode = remainder; + #define STICKMODE_TEST( r, data, elem ) \ + if( mode == BOOST_PP_STRINGIZE(elem) ) { \ + _stick.set_mode( BOOST_PP_CAT( STICK_, elem ) ); \ + return; \ + } else \ + + BOOST_PP_SEQ_FOR_EACH( STICKMODE_TEST, _, + (ABSOLUTE)(RELATIVE)(KEYS)(CALCENTER)(CALBOUNDS)(CALNORTH) ) { + RETURN_FAIL( "unknown stick mode : <" << mode << ">" ); + } + } + + G13_DEVICE_COMMAND( stickzone ) { + std::string operation, zonename; + advance_ws(remainder, operation); + advance_ws(remainder, zonename); + if (operation == "add") { + G13_StickZone *zone = _stick.zone(zonename, true); + } else { + G13_StickZone *zone = _stick.zone(zonename); + if (!zone) { + throw G13_CommandException("unknown stick zone"); + } + if (operation == "action") { + zone->set_action( make_action(remainder) ); + } else if (operation == "bounds") { + double x1, y1, x2, y2; + if (sscanf(remainder, "%lf %lf %lf %lf", &x1, &y1, &x2, + &y2) != 4) { + throw G13_CommandException("bad bounds format"); + } + zone->set_bounds( G13_ZoneBounds(x1, y1, x2, y2) ); + + } else if (operation == "del") { + _stick.remove_zone(*zone); + } else { + RETURN_FAIL( "unknown stickzone operation: <" << operation << ">" ); + } + } + } + + G13_DEVICE_COMMAND( dump ) { + std::string target; + advance_ws(remainder,target); + if( target == "all" ) { + dump(std::cout, 3); + } else if( target == "current" ) { + dump(std::cout, 1); + } else if( target == "summary" ) { + dump(std::cout, 0); + } else { + RETURN_FAIL( "unknown dump target: <" << target << ">" ); + } + } + + G13_DEVICE_COMMAND( log_level ) { + std::string level; + advance_ws(remainder,level); + manager().set_log_level(level); + } + + G13_DEVICE_COMMAND( refresh ) { + lcd().image_send(); + } + + G13_DEVICE_COMMAND( clear ) { + lcd().image_clear(); + lcd().image_send(); + } + + ; +} + +void G13_Device::command(char const *str) { + const char *remainder = str; + + try { + using Helper::advance_ws; + + std::string cmd; + advance_ws(remainder, cmd); + + + auto i = _command_table.find( cmd ); + if( i == _command_table.end() ) { + RETURN_FAIL( "unknown command : " << cmd ) + } + COMMAND_FUNCTION f = i->second; + f( remainder ); + return; + } catch (const std::exception &ex) { + RETURN_FAIL( "command failed : " << ex.what() ); + } +} + +G13_Manager::G13_Manager() : + ctx(0), devs(0) { +} + +// ************************************************************************* + + + +bool G13_Manager::running = true; +void G13_Manager::set_stop(int) { + running = false; +} + +std::string G13_Manager::string_config_value( const std::string &name ) const { + try { + return find_or_throw( _string_config_values, name ); + } + catch( ... ) + { + return ""; + } +} +void G13_Manager::set_string_config_value( const std::string &name, const std::string &value ) { + G13_LOG( info, "set_string_config_value " << name << " = " << repr(value) ); + _string_config_values[name] = value; +} + +std::string G13_Manager::make_pipe_name( G13_Device *d, bool is_input ) { + if( is_input ) { + std::string config_base = string_config_value( "pipe_in" ); + if( config_base.size() ) { + if( d->id_within_manager() == 0 ) { + return config_base; + } else { + return config_base + "-" + boost::lexical_cast(d->id_within_manager()); + } + } + return CONTROL_DIR+ "g13-" + boost::lexical_cast(d->id_within_manager()); + } else { + std::string config_base = string_config_value( "pipe_out" ); + if( config_base.size() ) { + if( d->id_within_manager() == 0 ) { + return config_base; + } else { + return config_base + "-" + boost::lexical_cast(d->id_within_manager()); + } + } + + return CONTROL_DIR+ "g13-" + boost::lexical_cast(d->id_within_manager()) +"_out"; + } +} + +int G13_Manager::run() { + + init_keynames(); + display_keys(); + + ssize_t cnt; + int ret; + + ret = libusb_init(&ctx); + if (ret < 0) { + G13_LOG( error, "Initialization error: " << ret ); + return 1; + } + + libusb_set_debug(ctx, 3); + cnt = libusb_get_device_list(ctx, &devs); + if (cnt < 0) { + G13_LOG( error, "Error while getting device list" ); + return 1; + } + + discover_g13s(devs, cnt, g13s); + libusb_free_device_list(devs, 1); + G13_LOG( info, "Found " << g13s.size() << " G13s" ); + if (g13s.size() == 0) { + return 1; + } + + for (int i = 0; i < g13s.size(); i++) { + g13s[i]->register_context(ctx); + } + signal(SIGINT, set_stop); + if (g13s.size() > 0 && logo_filename.size()) { + g13s[0]->write_lcd_file( logo_filename ); + } + + G13_LOG( info, "Active Stick zones " ); + g13s[0]->stick().dump(std::cout); + + std::string config_fn = string_config_value( "config" ); + if( config_fn.size() ) { + G13_LOG( info, "config_fn = " << config_fn ); + g13s[0]->read_config_file( config_fn ); + } + + do { + if (g13s.size() > 0) + for (int i = 0; i < g13s.size(); i++) { + int status = g13s[i]->read_keys(); + g13s[i]->read_commands(); + if (status < 0) + running = false; + } + } while (running); + cleanup(); +} +} // namespace G13 + + diff --git a/g13.h b/g13.h new file mode 100644 index 0000000..c29dfe5 --- /dev/null +++ b/g13.h @@ -0,0 +1,583 @@ +#ifndef __G13_H__ +#define __G13_H__ + + +#include "helper.hpp" + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +// ************************************************************************* + +namespace G13 { + +#define G13_LOG( level, message ) BOOST_LOG_TRIVIAL( level ) << message +#define G13_OUT( message ) BOOST_LOG_TRIVIAL( info ) << message + +const size_t G13_INTERFACE = 0; +const size_t G13_KEY_ENDPOINT = 1; +const size_t G13_LCD_ENDPOINT = 2; +const size_t G13_KEY_READ_TIMEOUT = 0; +const size_t G13_VENDOR_ID = 0x046d; +const size_t G13_PRODUCT_ID = 0xc21c; +const size_t G13_REPORT_SIZE = 8; +const size_t G13_LCD_BUFFER_SIZE = 0x3c0; +const size_t G13_NUM_KEYS = 40; + + +const size_t G13_LCD_COLUMNS = 160; +const size_t G13_LCD_ROWS = 48; +const size_t G13_LCD_BYTES_PER_ROW = G13_LCD_COLUMNS/8; +const size_t G13_LCD_BUF_SIZE = G13_LCD_ROWS * G13_LCD_BYTES_PER_ROW; +const size_t G13_LCD_TEXT_CHEIGHT = 8; +const size_t G13_LCD_TEXT_ROWS = 160 / G13_LCD_TEXT_CHEIGHT; + +enum stick_mode_t { STICK_ABSOLUTE, STICK_RELATIVE, STICK_KEYS, STICK_CALCENTER, STICK_CALBOUNDS, STICK_CALNORTH }; + +typedef int LINUX_KEY_VALUE; +const LINUX_KEY_VALUE BAD_KEY_VALUE = -1; + +typedef int G13_KEY_INDEX; + +// ************************************************************************* + +using Helper::repr; +using Helper::find_or_throw; + +// ************************************************************************* + +class G13_Action; +class G13_Stick; +class G13_LCD; +class G13_Profile; +class G13_Device; +class G13_Manager; + +class G13_CommandException : public std::exception { +public: + G13_CommandException( const std::string &reason ) : _reason(reason) {} + virtual ~G13_CommandException() throw () {} + virtual const char *what() const throw () { return _reason.c_str(); } + + std::string _reason; +}; + +// ************************************************************************* + +/*! holds potential actions which can be bound to G13 activity + * + */ +class G13_Action { +public: + G13_Action( G13_Device & keypad ) : _keypad(keypad) {} + virtual ~G13_Action(); + + virtual void act( G13_Device &, bool is_down ) = 0; + virtual void dump( std::ostream & ) const = 0; + + void act( bool is_down ) { act( keypad(), is_down ); } + + G13_Device & keypad() { return _keypad; } + const G13_Device & keypad() const { return _keypad; } + + G13_Manager &manager(); + const G13_Manager &manager() const; + +private: + G13_Device & _keypad; +}; + + +/*! + * action to send one or more keystrokes + */ +class G13_Action_Keys : public G13_Action { +public: + G13_Action_Keys( G13_Device & keypad, const std::string &keys ); + virtual ~G13_Action_Keys(); + + virtual void act( G13_Device &, bool is_down ); + virtual void dump( std::ostream & ) const; + + std::vector _keys; +}; + +/*! + * action to send a string to the output pipe + */ +class G13_Action_PipeOut : public G13_Action { +public: + G13_Action_PipeOut( G13_Device & keypad, const std::string &out ); + virtual ~G13_Action_PipeOut(); + + virtual void act( G13_Device &, bool is_down ); + virtual void dump( std::ostream & ) const; + + std::string _out; +}; + +/*! + * action to send a command to the g13 + */ +class G13_Action_Command : public G13_Action { +public: + G13_Action_Command( G13_Device & keypad, const std::string &cmd ); + virtual ~G13_Action_Command(); + + virtual void act( G13_Device &, bool is_down ); + virtual void dump( std::ostream & ) const; + + std::string _cmd; +}; + + +typedef boost::shared_ptr G13_ActionPtr; + +// ************************************************************************* +template +class G13_Actionable { +public: + G13_Actionable( PARENT_T &parent_arg, const std::string &name ) : + _parent_ptr(&parent_arg), _name(name) + {} + virtual ~G13_Actionable() { _parent_ptr = 0; } + + G13_ActionPtr action() const { return _action; } + const std::string & name() const { return _name; } + PARENT_T & parent() { return *_parent_ptr; } + const PARENT_T & parent() const { return *_parent_ptr; } + G13_Manager & manager() { return _parent_ptr->manager(); } + const G13_Manager & manager() const { return _parent_ptr->manager(); } + + virtual void set_action( const G13_ActionPtr &action ) { + _action = action; + } + +protected: + + std::string _name; + G13_ActionPtr _action; + +private: + PARENT_T *_parent_ptr; +}; + +// ************************************************************************* +/*! manages the bindings for a G13 key + * + */ +class G13_Key : public G13_Actionable { +public: + + + void dump( std::ostream &o ) const; + G13_KEY_INDEX index() const { return _index.index; } + + void parse_key( unsigned char *byte, G13_Device *g13 ); + +protected: + + + struct KeyIndex { + KeyIndex( int key ) : + index(key), + offset( key / 8 ), + mask( 1 << (key % 8) ) + {} + + int index; + unsigned char offset; + unsigned char mask; + }; + + // G13_Profile is the only class able to instantiate G13_Keys + friend class G13_Profile; + + G13_Key( G13_Profile & mode, const std::string &name, int index ) : G13_Actionable( mode, name ), + _index(index), + _should_parse(true) + { + } + + G13_Key( G13_Profile & mode, const G13_Key &key ) : G13_Actionable( mode, key.name() ), + _index(key._index), + _should_parse(key._should_parse) + { + set_action(key.action()); + } + + + KeyIndex _index; + bool _should_parse; +}; + +/*! + * Represents a set of configured key mappings + * + * This allows a keypad to have multiple configured + * profiles and switch between them easily + */ +class G13_Profile { +public: + G13_Profile(G13_Device &keypad, const std::string &name_arg ) : _keypad(keypad), _name(name_arg) { + _init_keys(); + } + G13_Profile(const G13_Profile &other, const std::string &name_arg ) : _keypad(other._keypad), _name(name_arg), _keys(other._keys) + { + } + + + // search key by G13 keyname + G13_Key * find_key( const std::string &keyname ); + + void dump( std::ostream &o ) const; + + void parse_keys( unsigned char *buf ); + const std::string &name() const { return _name; } + + const G13_Manager &manager() const; + +protected: + G13_Device &_keypad; + std::vector _keys; + std::string _name; + + void _init_keys(); +}; + +typedef boost::shared_ptr ProfilePtr; + +class G13_FontChar { +public: + static const int CHAR_BUF_SIZE = 8; + enum FONT_FLAGS { FF_ROTATE= 0x01 }; + + G13_FontChar() { + memset(bits_regular, 0, CHAR_BUF_SIZE); + memset(bits_inverted, 0, CHAR_BUF_SIZE); + } + void set_character( unsigned char *data, int width, unsigned flags ); + unsigned char bits_regular[CHAR_BUF_SIZE]; + unsigned char bits_inverted[CHAR_BUF_SIZE]; +}; + +class G13_Font { +public: + G13_Font(); + G13_Font( const std::string &name, unsigned int width = 8 ); + + + void set_character( unsigned int c, unsigned char *data ); + + template < class ARRAY_T, class FLAGST > + void install_font( ARRAY_T &data, FLAGST flags, int first = 0 ); + + const std::string &name() const { return _name; } + unsigned int width() const { return _width; } + + const G13_FontChar &char_data( unsigned int x ) { return _chars[x]; } +protected: + std::string _name; + unsigned int _width; + + G13_FontChar _chars[256]; + + //unsigned char font_basic[256][8]; + //unsigned char font_inverted[256][8]; +}; +typedef boost::shared_ptr FontPtr; + +class G13_LCD { +public: + + + G13_LCD( G13_Device &keypad ); + + G13_Device &_keypad; + unsigned char image_buf[G13_LCD_BUF_SIZE+8]; + unsigned cursor_row; + unsigned cursor_col; + int text_mode; + + void image(unsigned char *data, int size); + void image_send() { + image( image_buf, G13_LCD_BUF_SIZE ); + } + + void image_test( int x, int y ); + void image_clear() { + memset( image_buf, 0, G13_LCD_BUF_SIZE ); + } + + unsigned image_byte_offset( unsigned row, unsigned col ) { + return col + (row /8 ) * G13_LCD_BYTES_PER_ROW * 8; + } + + void image_setpixel( unsigned row, unsigned col ); + void image_clearpixel( unsigned row, unsigned col ); + + + + void write_char( char c, int row = -1, int col = -1); + void write_string( const char *str ); + void write_pos(int row, int col ); + +}; +using Helper::repr; + +typedef Helper::Coord G13_StickCoord; +typedef Helper::Bounds G13_StickBounds; +typedef Helper::Coord G13_ZoneCoord; +typedef Helper::Bounds G13_ZoneBounds; + +// ************************************************************************* + +class G13_StickZone : public G13_Actionable { +public: + + G13_StickZone( G13_Stick &, const std::string &name, const G13_ZoneBounds &, G13_ActionPtr = 0 ); + + bool operator == ( const G13_StickZone &other ) const { return _name == other._name; } + + void dump( std::ostream & ) const; + + void parse_key( unsigned char *byte, G13_Device *g13); + void test( const G13_ZoneCoord &loc ); + void set_bounds( const G13_ZoneBounds &bounds ) { _bounds = bounds; } + + +protected: + + bool _active; + + G13_ZoneBounds _bounds; + +}; + +typedef boost::shared_ptr< G13_StickZone> G13_StickZonePtr; + +// ************************************************************************* + +class G13_Stick { +public: + G13_Stick( G13_Device &keypad ); + + void parse_joystick(unsigned char *buf); + + void set_mode( stick_mode_t ); + G13_StickZone * zone( const std::string &, bool create=false ); + void remove_zone( const G13_StickZone &zone ); + + const std::vector & zones() const { return _zones; } + + void dump( std::ostream & ) const; + +protected: + + void _recalc_calibrated(); + + G13_Device &_keypad; + std::vector _zones; + + G13_StickBounds _bounds; + G13_StickCoord _center_pos; + G13_StickCoord _north_pos; + + G13_StickCoord _current_pos; + + stick_mode_t _stick_mode; + +}; + +// ************************************************************************* + +class G13_Device { +public: + + G13_Device( G13_Manager &manager, libusb_device_handle *handle, int id ); + + + G13_Manager &manager() { return _manager; } + const G13_Manager &manager() const { return _manager; } + + G13_LCD &lcd() { return _lcd; } + const G13_LCD &lcd() const { return _lcd; } + G13_Stick &stick() { return _stick; } + const G13_Stick &stick() const { return _stick; } + + FontPtr switch_to_font( const std::string &name ); + void switch_to_profile( const std::string &name ); + ProfilePtr profile( const std::string &name ); + + void dump(std::ostream &, int detail = 0 ); + void command(char const *str); + + void read_commands(); + void read_config_file( const std::string &filename ); + + int read_keys(); + void parse_joystick(unsigned char *buf); + + G13_ActionPtr make_action( const std::string & ); + + void set_key_color( int red, int green, int blue ); + void set_mode_leds( int leds ); + + + void send_event( int type, int code, int val ); + void write_output_pipe( const std::string &out ); + + void write_lcd( unsigned char *data, size_t size ); + + bool is_set(int key) ; + bool update(int key, bool v) ; + + // used by G13_Manager + void cleanup(); + void register_context(libusb_context *ctx); + void write_lcd_file( const std::string &filename); + + G13_Font ¤t_font() { return *_current_font; } + G13_Profile ¤t_profile() { return *_current_profile; } + + int id_within_manager() const { return _id_within_manager; } + + typedef boost::function COMMAND_FUNCTION; + typedef std::map CommandFunctionTable; + +protected: + + void _init_fonts(); + void init_lcd(); + void _init_commands(); + + + //typedef void (COMMAND_FUNCTION)( G13_Device*, const char *, const char * ); + CommandFunctionTable _command_table; + + struct timeval _event_time; + struct input_event _event; + + int _id_within_manager; + libusb_device_handle *handle; + libusb_context *ctx; + + int _uinput_fid; + + int _input_pipe_fid; + std::string _input_pipe_name; + int _output_pipe_fid; + std::string _output_pipe_name; + + std::map _fonts; + FontPtr _current_font; + std::map _profiles; + ProfilePtr _current_profile; + + G13_Manager &_manager; + G13_LCD _lcd; + G13_Stick _stick; + + + bool keys[G13_NUM_KEYS]; +}; + +// ************************************************************************* + + +/*! + * top level class, holds what would otherwise be in global variables + */ + +class G13_Manager { +public: + G13_Manager(); + + G13_KEY_INDEX find_g13_key_value( const std::string &keyname ) const; + std::string find_g13_key_name( G13_KEY_INDEX ) const; + + LINUX_KEY_VALUE find_input_key_value( const std::string &keyname ) const; + std::string find_input_key_name( LINUX_KEY_VALUE ) const; + + void set_logo( const std::string &fn ) { logo_filename = fn; } + int run(); + + std::string string_config_value( const std::string &name ) const; + void set_string_config_value( const std::string &name, const std::string &val ); + + std::string make_pipe_name( G13_Device *d, bool is_input ); + + void set_log_level( ::boost::log::trivial::severity_level lvl ); + void set_log_level( const std::string & ); + +protected: + + void init_keynames(); + void display_keys(); + void discover_g13s(libusb_device **devs, ssize_t count, std::vector& g13s); + void cleanup(); + + + + std::string logo_filename; + libusb_device **devs; + + libusb_context *ctx; + std::vector g13s; + + + std::map g13_key_to_name; + std::map g13_name_to_key; + std::map input_key_to_name; + std::map input_name_to_key; + + std::map _string_config_values; + + static bool running; + static void set_stop(int); +}; + +// ************************************************************************* + +// inlines + +inline G13_Manager &G13_Action::manager() { + return _keypad.manager(); +} + +inline const G13_Manager &G13_Action::manager() const{ + return _keypad.manager(); +} + +inline bool G13_Device::is_set(int key) +{ + return keys[key]; +} + +inline bool G13_Device::update(int key, bool v) { + bool old = keys[key]; + keys[key] = v; + return old != v; + } + +inline const G13_Manager &G13_Profile::manager() const +{ + return _keypad.manager(); +} + +// ************************************************************************* + + +} // namespace G13 + +#endif // __G13_H__ diff --git a/g13.png b/g13.png new file mode 100644 index 0000000000000000000000000000000000000000..88b60fb0e057ce3b66d50e66fc6d5f915b34e8d4 GIT binary patch literal 342877 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%0D5?sGu7{t8CMJ`h8pv2 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
}AfA-vA7KeY)*{iEt`K*;mQz7rXdPGO}R4%Vc|) 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
S6~cdTAQ&p3DbW|L_n0;L>DQtHGuTbBiH~ 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�RhF4v5Wqy)lI5-iC05@;xN(FD!gj=@!*nMBCfzJ}KC((}Xp)IyPRX)% z8rv)A`pm!8J$=g8W>NX4Z>TiV!2!h3B$m$fCnzA}x5?2nWJWtqVCIi!lGQ}gJ}=@a zkPfFNr-*a3{>({eBsx8npZ;kDw6P^7`~V?ufas*BekEX-7ka13#V56M_?+s*6D9=6 zAtWMTx@Fz;Q*5-&q7*J(Bf_cjhvBR-q+~^{p^n5cL_#`7nS_q2Y3LN^NN8RV%be5* zEgalTkPIB0(9$zRuifdP(P=IKMu(d?Koi!3>bO9)EFtl zStkWf+6j7mW+(+>m8E4x@O(HPICXAFM9}K1KQ88Mc^%!>W@AGW6w}=1*aeoQMXO41 zNEg|J3WQpru(&Z`33ShZTxDdx$n%mInd4neM^p$C+{J@XWhlB!=rh3xb{cm|$+euwv8)Dl<%J!<@$44wFI1x=`iWJlNU z+pf2&Jg1d>4i{T(YFg^1nh0J;gtNX;Ip?Ol))HvH=B+I+ zE|Vp7jN*W^TI1YvL5rWa2os?-)HJS5TM94w`}e#9 zJl!(=Mmx=Qrvt~~ClE6J!vRjxb-K2bla@m^G%;K*rOe1`mtZ*Dg_XRg<2q5gng!PNPCQMeEbnQLsWDLFXx;(?pDcii4TnC7{-Jc`Au$CP;8y zPPql@0?S=cuh)Uw09l9N7-gec@i+UZl(qgTEQ$$)+lAQuehezdUij8AF1q-Nssw2Z zbeiK99N|+wKm4Khm@Rw0e|HJ!CYC~{K;=f{*^BUWV0aF9S=;}72iBAGQ}Iosu3&vAbyA=xJlM09p|r5m=onB?xlI$W7bWo^p%M zDIHD+V56AK!WIyGSmn)!rX9^wNt-?pa%1h-KDvcQM3DS2+J>JuU^=a0 z4$p=XI#ii+ibx8`xb8#-JUyl#?WKh_Q|4hHVqQCHr`~CGa-YY4EFE{j518iDj{`KW zRCOa8f>Ulftss`e)Z}f5{ck(j5=P(YCG#IndU9gmj$3Yx!uV=W|l!Ur?M z9|q`j^`lOH=Kz1=m%wplOQ4b^DqcV7@$x_Y(?81$Uo6NitBaW<%nnIV9TDRqTHVni zFF~7urDJ)ITnCAxl?fBMB75xSboQ&v@3L|8^R?DLn>7#&B?L?)?vBb}H~rnykkcl~ zx4-S9tHs{BL!zX2<1`W0zYlz1eZ7kTCV*3+(zy(7wtzHCNB=X);53?Pm;9T24Xx9d zpO_%o5(4Ch1?a**l4^Gf#BdpWS7~fX^Eix3qrgdi(SLZxs&+J~qfJ|*S)r4Sb9(Z* zh#1>r9;*uRQ_-WiEzchE@md^c?ge+ zOY;cX>!>DxbE#QucH4P7da(tt$l{hmtYKCcE1w59{kD`6fzVOh)hkuY^FLc^*OBtX z@?*(F<@-{iFY6z2$7~MXL~RNT+UB!1)@i8RIq-26YnQKlz4FRue(Se?+xn+!&H5Kf zhU1W|eDY`r-pRn9o+Z#iq8dmG_meC(-jxzF%aV(JJ2Dw57p*RqC7UTB6yt&?JTo&d zlc7q{=;SWu(!JMJ;BOJ@Clhgg^5lstLd%;aFo+>*9undRwJur(y%$3h`gA*V?+~fI zRyfJmLqS@(3;N*?|C}Yz7rlnCa!lGmpq_j!^Csg-N#Qf?CPyz5Bb-dbE%R#$igTTD zLM7X2`b-<=se0j8?DB9@sON|(Ch0H*BBALpM4N5j}gI}rp-^q3RAP`3ZA z?wn3L`$id_?cjO7?el1!?M8#7bLNauhQMhe(14@|(NFCl@t?M#al&*UWR!NK8yy={ zHA657f65#kG9lVDN%^eEUJS>>IV}<4HwquJQNV#G&QR((9nG_7tOk$gc-Sddgr6V6 z$(9JGuQQ|ZIU%8Ce)=~WJQ0I)cE;-Qt7SiM*dQz?KTA$8mCuTj9Ml(ih9f@a~=_8SmZN{WHYb-S)6$z&Kb^XFgw<-_2}B^*uk zs}b7pXF{fJxtJAaE`~hTooIkFZJ;^M5*FknEcNL*5@$4sc0ASus}1dhoXnFuqDNt! zli?}rA^eO~HWq08!d(PUeNKBX%+J%%a(=qSe>|D!1VxzU!({XU;c!Wq8hDP9hDs;2 zDJ(s7;5epofeg1%BSB-}Db5gvqfbgEbVR3rXwkljHw+CEhfyBXwbd5`@3x3(}3Zh@Z47nid& zTKdsPpJG|$6sw*@vc(E*L;tzY{oe2U6|~R(TI(M^70(IBa6Vm>8)H7oykk2*JxgGZ zc=smz_DPEM#v?j`^j)fz&mPAubr~r^XA9FFs%SMKt!+Yh&L5}4voeHAUSb6vzRbYH zMIL17VpSvb&;R_-@v#tE!*$slKo(}pgsQwQ>RhQ=;H()p8@=nzh|Y22GDB8jbj7Ulff z+;X;%^JIaDYFeFq1#K6u^|NhZmV`zPQ7la$NHFOESpGnBfRu!xjYI0BaLzdq3I`7q z+*56YFddTyox%xnarHrnJ+!w#-M%t+EPhHELO$8fT>rr=k;(_{_&K3zRa;C$(54I$9U)+g#gFnd z@!KLF`}oIQoBAubfAmLR@*}9-YpSyz|?irX_Gb#$3Kk>C#cir@I$m9_zzlaYiFJ}I^b50uODpg1lG2RdGg{Igmj{k*-s8qMZ!9aL$3#K1730H}Lq3TgIr9u<8t8qC)^T$Tn7eE7rz2AR(F~w(=bRL196J2Q;evA)qCFiUN!S~fA{yi0^?U;e(}@4FlOcf z2{YssCHgo*8~^;Ibbfl4z?MDRM`5)QoXq~vhd$_fOK2@NDu`bg>fU-~>zw~*x*#uo z?+Le3x#?Y^l-UArDV4Yuxk3(Z%O+DL#~W|_v+GWO*^(4LeQOnrNttA&G!5GE$$QgA zHYdTg&}vE2jHaY*;2L9I%l$?J!|@4!q+DPLJw1I zb=|$;jn?&;%nWp@&o0;8iUL~{1wi=Vn51?lOgnasI3(5XAfs@nXM0+aswX5&f^ch# zAV3g;9 zWy-4(t`vn^^iw8>tR?XF{oi%{OVyCGF%!m$l-F_>go+i-=`5XmxaC*SKL7bY@FB#< zK7RWZwB~rWPa5Q+i$n5K#{NXKKQ&9>)3``iW#3Mv0GLx=NHM&w@%Nira!w&Wi%Z03 zXv;GYhe(&i`qIvjgb;Xh)u|!5+qGczz5N<-iauFBkdWUJOU5SxdBqEmK9*z)q2pWM zy8TL4nr~URKcFLhyY*TglRlZJQ#okrPTHk>XlENjn$!*lL;7@MQC1H^ejoyZ*=Ur3 zbf#5Bq+8&#_K zlk#ib*ei#FpEEEupoO2psgVc}x*^fxlOdyg2>>TO)hXaE&<(4$^=Z* z1nZywU#|ZQor!KHgsJwHZ9?xG81eGZNVT{ zk&_O`O60$LVSKs?ov9U{vOL{_oO5+DvZOpy^C4PRPjMfF{6Iu?1OkX@UopyWaZb1T zl!4Dbfa=23ETddh#jLOfsa7UE=Vwk;9?qK_1@Y9RerNX!!L@#Vi_zaf>8zhESCi;55k!m{H{)+`t_=@eDa8 z-0N-uTk`D~QfEwHviC&b*cD+OhqNsm+MJx|`iawant}B*WFSt5q~v5yZU?{caT<9h zcR9tn^hw;D3aAQTzPk$S!5;o_AQWr1D-_nhzJdU>^37N9DaOyrmAB_e{DEJFS^wRR zho)uJiNGi6j9jN!7Zm=qJbPwj{rkP&`&~+Y;Qj94yze*Wh_DMx$rO3duG#J_@Jh1HEv6Wg!G*w%UeX9CD+iyt&>p_vs=o;)$J`zqE#=(S`L ztfc$B*0oQ^uVk&1jJD)XH7VgT2lGp+aZSKX2>FBzoFK>KI(RvqD-svNnuO2ZAd0Pa zY6pFC@(iW?DW#zuzT3r9{GDb_Z3vIH@f?%kOh3Emndabp-u6YGZdT|nWFI=3U5rWAERm?f}$%ac_refur-QG)g6 zg(NgI0fi7Zd@@`MS@L(~7cyI*>1(U<6i7D^+|G2$tEWF_bb`W02(um#n(}xKJQKpC zQvPHts_wJskY=?hNo73qO0wHF___iS8JQBkn z>zo$%abTF>roV@O?tgk0v^N7L`bGtvQSKP|5WXLRQ9#_js$4*zL(EA>=xMxJzW-YX zDIH^P2wt)X001BWNkly8ljaf z*}gfwR*Km`e>DVsBjlq8;gx-SJQ1l`svU9<|Q z&ji&1OQ04{OW@A7wVRfLy6#G9t#^su7TtDpD=U|cH$#b-DfiGno9#O0-+TWlZsZxb zN7s=zbeIO{RNwO3aQbLto^Hbt!@JO@QpSXbLzoYTMn{dO^tZ6y%s%1zrvh=f_{4-R z7DfwSHeQq&C3RXtB#Z#z)}^g*VSbpX4+g zXyock2|622tu}p8HW+Elu7DtBeX?!UFBysePH*gpZ|HWa}R|nsFWTnlHbU1 zqsT^CYseqHu{r*@uORl{&`yVhx&&Oi{FOY*Cj66@f#K8!PrXzHAOGvCPHE`+&-&*N zx_STeSAX?o%b_eVgleV3CeDzg49_|+!S$&MGoImx@J?=j!j`~s<#_qx+&zEAK)qOn zzStFh^~yU0B5jhJcwhV4`jt+#Kz~;;w`IYJZCJ`ub$mD!GX zg7hkvwN0J+%fI|fi>`7bz03y-AzDmKGb<$y|NGnDmYuEw;VXCSa=M=dt|IHy*3G-n z?_L?XzI+5hZWe40lzYq2=Xqu&v9bF?wViXDJS^f9gC--2slmh&6ZcDj_=$WfhbbLk=cghW2#X6V9j&@Qylmg|liR!nvPR_x#} zt4pT6s(}>oio4KbG9@y6BrqousW)wgH<|+46h4Opod}{aC(&|9PgH3LQ`$J3N+Ad> z8wKw4Ln0yshfub|mxr>{sXheRh%G_M#W{WAmWCO4;h+A~rbG9!^^=%C;~9BFg{FQ^ zOW_1HI^srp%4iXy0xx9a#&Iu5R>U?0_=9;DAp`IG$9*R$W$x|bkq>ps2Q5AnAbPlg zY|*wC*|bI-nPArU)A@d5<;jyL$^!WQWvFi(@*wxy-~5J^&xi1C8iBjMS0&b4pf9~d zE+6*pXQ7w5bSCbH-?z{B*V*xXauGE8jd&%ifKm|MEZoCrp2L-tycZ0(2wP zbtmTCPP;#gsd6lDIItbgxioK}68%hu0JHu(y!}a90>`Is;@^VQ`p5M}p`7?VrxN!5*{q&hNhTy(ozK4SAI@U?Z~6k~R$H)U)agWAdQ`|py-F}~vF-hZH@70pq{Iz5<NXmVGGkhuQ6rCyfrGCT!|+cylk;axAe=b*4>dua1Cb1JLd()o_@THUlXsH$&fmWd z*?r6QHB;8nx_Enf-Mrf*;EMpp-08qvfB$z||2)O8nmu`9e!ucdzx>M|{n*D$iSK;Z z{hoi_AGWXM;~)R=f4KhuuRu`0=?1SCQ;7MwpZoAjFMZTPXdASn^aB_EJMq5n$`R*X zc9w``%bsOA=P~ZR8+)5&P9?PDD~Hj)_kHjCrCO?S<83#zv?x>cYfz5X$d@i{m`@bc&uPm)_15@CEB@So3@Mz43r64GlThi0?~{PF5LWAu`?Gz*Z4Zry02kvQ{LFf1ZzTtsy;ypu>i=W! zPMa+|ssrz91PL@?hQ>C8t&-e!c%p4b`$c~{f3p4r?I*(hL^sBUk_`?p*dW9tq>@no zR{qb)yX)LrrIL|wNvf^VzPU43t|`}$nR_@ot24hgtuvE?(=A{+;P!nP@i0j@xtE1%|MWkI}8?W&s|qp8Oq^B`?0a%$gQFdfu5 z$@ATnc~2fNU4}q>!9kg;Ar^# ztYbi0cgDI`%~3$`kQ6>P{E^}jxDbD=xnT0T6i47)-e8-qnw{`~m45J6m;0mLQE$Uv z5WTL+dkJ{#STYXhbqs49u7+mwd1L*CjMdJE?qk0jS=MX`2ke~ulzX^ClpiNqFiha| zyUlBrK96ccB37tho~Kq`S-<>>b?Z1j5l zC$IngH~#T|{q6rZ4_iI+>=&NYIe0Vg>q=O%Oe{*1 z&W;RKWRqE~{(ZXxI$vvad-5;;>aY9?t`zv&zy0OUerDcs#(NrDUOzfWWmUr55Nxfk zxHvjousdoTNBH3_KkO+mEkB4__jo8Q3pkBLCgRKvvJ9&(gYC|pob;XVeB1ND9;;g$ zL9>ttxNLWZUU`|0J4U@2WDi9Bd4=KcI_0}%pOeSVDqVjk!=3ZjnlzjY_F&ADPWN#JkOjHo zsAT$FVOV}MXj9h-;n|U{@H{l7lzhR?uB4+Zr>Vx)&y}Lyk01}&YlCG2qsn!RUYAvD zn&+XsnTZL?>qv?^?#j^K-1DZ|2Vwp}U@mZ9ba_AwH!5MP=qz=APa76zx?{3bk`^<} z9lFn|g=vtjp&#Wf_|w{J`QGFpf7Zlk{xxgil8egZzxBQT-+jq3KQr`Y&m730YZGDi zx&i#;XRm+vyWg_~>Ic?z7Xd#1`7eC#bC!V5n--hd&SKH+;k5?L{7iuhNApl#O;yTL>$abnn#49qP70KAiVI`N z>lLEz^e`P(ct(4bInJ5pH1PF}M4O^&GQJ!GHa6!rp*t~hu({#$&pl_GR5kOC9MQ%) zfAy=Mcyj&6KlTk4%&GIX`Z?8&LBijoH%o-!-?6~vxYE@srHzzUdAaWR^g6G(+t8fF zWojJ0&*fcn)NtjnMJ_*?oaf&T&R0%xHE6q69d8`XhomxAw@Mots-~XbB!|}(by0I2 z;70Zy5bVaj4^`#Sgm!szSWOOlVEbhAtLA8zS7lu;#5_g}O?&9A{Cp#U53&u$U`gGb z)P?($CixWS`n})(eLu73V`IPnd%tIz+xFvnV0>n-X2zZszkU0*TO>dH;g19e)8h5f zgBPClEzkpU1oSP9i4hn>8ntoN!%?WI;>wrTb)rEc{y2+8(yh$r5g2y?&Ae^B3W^J- zy^ZNTUDk523G>czH=5sltm{5aarK{je%M!m53ar<)B*mUUAy7u%N{0ZfBxrRli|Fa z?uiwaVS_?Kl9qbX9nQ9lW^dHXaFe3k0r1xS$z8IuJ%sFXTc`3^&&o75A283Se9ya+HKxOMB6H=nE*#ag#4B`0%DO|3Oy!--xF7LWNnb7wW! zGT+HZhj+YAHobV=s>!T%*u9eF2wctXazgI<>=UavcT~<=x!a_Vfn^1pI;Nb?Dz8(# z8_RF#Y6Q7E6w(acs_ggx`Pd44Pn_2wuh(24Ns7R(11IKnVc(OJhXlZg#7Sa0ZyC4X zRd%_TaU%TPw$|h=*sF918xrLbh01H9xwb^t4|#IK9#&d6O->)KgJSk+R?6`(=U2b_ zRS%f>99j#k-T)B|WHGm3dl6p#Gc)$HFk+4-QDPnxSosgd*-Sb-UW+jY((soNW3uzn zL@Osg;A|MfKEPp*$`c7M-MZ!R9818LUw-+EU;M(So_@+K*sIthdl+}$n?D`vyXkg0AnSZavo=P=CNZ1W+4SSn~qrysxP~!$@<~Z zcdUF?SsoSj;=K*P(}xgh&0dv}0OKr=Mh>>7Yz!JjIn}1W7l7=Sn(^892M`-9TV-!< zn5Vf*Fv5wA#`Sidrq3Xv7sLDwo#Rt?5+%h$`ICigx`cJTtCBbtlSuG&VNAf z0$;nO=cE`LQNKWYLE<_aA6`xBg@22-^`9Cy>3H7C{P0+Mg!!m}>!xzO27HyfX;0X) zx9tHLD6kHmsL&ZCFUy_Plma&=xx752J{!<+%D?gk#p9p(tXqIzm0fP#x@D#dNh?Ko z01GDWcl^u0{L8n#^{sz;^;KC@WUwdXEDMSQkb{>p9d(2`2DV&a_Mz#*IJa|c`_yrj z=P7h4(7j3b|2zn@LeS(tgtSkHTR*n5B%QtDrMk-{^2f#|KUOI)yU&zo(3Y8R3#iOc zSfR3!W^KKk&^vi1Wl~_4#70>aTagg~%Uf9+Y){&Qe?pqMdS6~s2C5bHWkX}=a+^!% z%td-*d3*+yS6_X#N1uUtU>cQ3D7Y!eZJ47sg*_c}=LaVrJ340;znylA1{-G5Lt?6_ z(z*JW$&qRu`yRKSmUCzb>U7>-2maVGT@B{C9o=MSzE+1tpn*K(z%!AJHZR@e7C)DR zco%0M=0(aOWBkO-Sz{k2;YYadtATAT8!98&!*o;cZu`yXU2olfl#6XVnfEq;V?8f+ zDN3{yyRcGW<9C1Ocf0~91@dk|#`Y4(Oh_-wzJ3eoJKz4c{T`2r%0uP9rp}^)Wul!@ zabQ!4pY0vnJ_}8?A`w8X+gx|S6LvkI;PpgF+JxJJRygZP=av0?%3!pzJe$U@rmfet z_ffC;_@uz>xbuZ?lnk;zBbrTvRBys%?~$>#FCn$aPs-AmeTnTbyB7c(p%z-6Ps!S9 zg0o8|TMFzFewSL=F^cv-5e3ulVYWTeYl1P^zN`5l=P^(G(QB{iHQ)7qTMll5HZ!zt zzOUWTxw(xN#x^GkTjVYEmSwZLn=I6%zZ+u1*5fK{40l(r)lyZ`p3*V-o$6P^eF?y^ zT<$XA4f319)&&nA)aB+Ogmgud84Nadl=+~@J;L)J(?B+S(KkCWf*1A8!L}jYXij@@ zcW?-a(QkHJxY%GJk<~Uf9p|3K6JF?i=F7kR+kd=XGjP96N`rx4!(i51{_7T?r(oRm z=fZsmv`@xB2*%=1{&QB|RtLkPGKcb(G|}SZLi{7cdJ$@6xLK`=LINEUPe1*#zo-pg)wgzj1#20ELygp3B#1%Mzyx7m`wp+q9 z=dFqLVO&JlTm1ii=PkeEJnKu?VCEPOm$AJi$~`t4Ag>rZCz5<1l@8zQ>FrbAnl~dZ zBgj$tiMDG(K7#M6i~P6aQ4sgdf=5CrbK}2g`b}PLkw;hOMRp8aXyg5I^=o#25OUiT zZv_4gFmNN?52^Aftn%?-`=+hSPOqEb$z=EVa-!|;IZLRNajwZB`8o2t-~|b-5(#(q zbcru*N`dZlK+B_fF;D0IdfETKmW%w0Wf&~!P|I}Wpi$R-TKd2ukG4V&jMpF zu43C6^`pox19lF+g0slheMd=GsF`{6r@W>tQq677L^dNWV669{E{_XUNBR=zBXa%m zNr6X&Z?jO?W)Z+Pi-t|BAzx2x&LOFIG}OK*OU)Eo!!cr3ugpf4Ene=cMCHiCb{p`B zLa3&U)n{eQzobAY86u119z8P#l8u6t?XZM2et!Oo`Pj4ri7mojV(L`8? zxd&oP(>uo=0dc`mAuONeOGHB>^IJA!G4@aFuB?palLk9W1#&kv_n+@GtDPYT?I zVqlm>L*D3a%TUNN6pqH7H84l1$TmGQElWYdVw}y$O!>Mss4FD1dRj+zP-clx^;_>% z<^WK&dXw#t=p&^7Bs}*Fnk0gOO{GMr#wAw)%st+E)2#6Heoy%iEq=mVfJG=yCR?v8 z$kH$B>!|gtgeAdRF0Rsp9-*CX%l)ppjpJNHQv1Blc#1)F@7yq5>+_#baiazr(2HUH z^?AOL)(0zdB<@A%UiBX=55Hk-*M(Y6I)-;)dk4m@+w0Wy+TStBLB-M3M5QJUsM>aq zy&MmJddI+v5N@*xCfwFE7Z|70#ih;9zx~_4l>%+;sOh(J_Ydc``N`Aw{^y0&T}Y?3 z6qo~Q4Pe*fwmb?_Mau_fOnK?d!Lv%Bkc{N2PW~G2V81<(BpjpUq||DcE67B zdQBwmMd)7j*YSMxYsh+B|J_TVnGEiKxflnONLYF5a;bCWbAp)^^8E8JNPB>C)cU2`NkYtHaS5r6n(Vqi0)DO zkp|wU2JW)$v*BG>={1z&Ai?_6aSdiFw$~h~Ea#dHPaUfdSNUV%nI9Xn`T3{v-%Bsa zZLQ}787{2Zd{_Q+|4$0!@4B1viU4kcXoaT*S(`nrz|;dPnZ+2=MYdzpF-LBmRl*6+ zMl~$1U*HnroB;?aU_5iD3ElGUojWf}*~m93b4So~m<-4x%Z!83j498X@^_eFX~uMLQ)f(3QIk>X ztENl2trZ@+%8bv!`uPCgh}Jj0@eOIx{d13lX2F_ZPMg7M!(>%u0L+>aF^hZE*@G9T=+Xn zu4YX7rlU|krkerJ`DREk8~Fj-ct;*r^cX){ODOd|-X!PA9Da!H6;s&Hf8L&wpdkxd za+&XPUY_eI(7uK3QZz8-b?*a!K+&G0E*<5q*f^%ZJ!>E5J{$#{Xxn6{GQN`8HUT)B6~YN15_UganuxJl z`Hu;PN?-NhB}@ER7qV9$(e@AIz{rAjao6O|F}Jhba*&}D`OKXJslL{-Z)$PwTWJ#y z=9S*bgd^1DzZEX-7c?Gf6MtXK-DoX0Vt8=K8@q24y;ti8QXiA|V)b729|-9W56N}5 zw>_uTeR)n-!%IH(Af|kVJoSPNo-l-ed0tPAdd6+me>QJC|LIFBzPiZ?x$QhX@b=rh zQWq;N^H)!Se)F5(lotgPb6?-5wh)Aw<2#O7P)A2O?3mu-K}|Vw_*;oNeqy_F>?s2% zw+SPy{|Z4S)(({}kH8pKzqYA9eR?!z-ATRB`O&V9xczy_ef-m1UuBsB%L zyX?WsjI^>y79$D0^wLW%nX-*a4>7X|m&}r-+EIA&saZ7X1w)pntZyzCt&nHO)hJu! zK_!pE1K67n-iI|qM8$FwX>&;)VtS}aFI~(NK}wCDwB}cU?a;n9-}Sbq%EX7`S)#6o zS`pP{yU@`G*m~??wF6{KuFs&(yZ=Yqt?%)CSIR$5EUrzx2kjXk{S4;7?wU4S5sc80 zf&avE!}?(}@Bxb4I4&KZ)dIYk4+YSF8FRX^t2>x-p0Ly6uSsy1T9XS-&n39; z^V!cnC;s4EIC)`xHG8Ox8uHuw>n-~4amLsQ?RxOb z_?l{kfzk9r50jO0n9J?;?KH+<6=xfDjpED=GfJf4&sFvrwydx$*u*U>tUN2Tr{*a# zo&$qKD-n8NTBYfvga@eGo=Z^&E_fgG}{~KjV*v@A>*HQ)xSaO)fk`Aq<^?LCeBIxXn?0Q#>^->Ea|{GeKSifaf6L zo4NRxfPJ_Kxw0VBR4{F1&0uVs^zx!l#zX~Cm~*X+`yvJEz7p;XcPTJ#M>GCAZJqAa zcIESlwq=R)&YHFw6*_{i{#aSfJDy!VC+52EUh%UpgGWfAMRPoS*ylB}C$GNn_79u% zhk-v?E+qOG$aSGB5;=~Et(q;kruBxy$v4;K=>bs&mPh2I9EZOi@oyima(jfSGMDu5 zrzjx{@>##<;3maSfASL<(k>3K^az_D!u26g??NCXq;PhSTw7qtuuiw$Q{DR=} z2;t6OT{el2N8#g>0*!0w=V%ibgS4Bnvpt-dORbq2RLq6R{?Q-(5d*b8Q}ey=e%GTY z&pmI4V7~I8o`EuyZLh`gkY{JxMl~^d^S)A19+L=M1U(jYlXEM;vKyW8RYq9Sd0D?-J2uiNpp58LN?Vsh66gn99_mK8nG+ zbl?y_urb15674u-=_)?sp`p(tj*!W?8IDByJe~o>Av|>l8I`&u3;YV<3?TS8tUg5r zwy7Thwm1q%?8^(_nl_Wi!fsj^5X9FgEmd!Z8hDP(hnvcOwwIUa4jCrm(4NRZb7i8|KJr zm8l4m%tpiz#~f_}6&6CWF{d;v5seajhy&Z7``mBoYZC4!ENCB0%%rY#yV;BFnzE21 z*yg!HeJ?8i6E8nLDKN)-KvgzE*T-htkbyL=9^7jCk!71h{m=jTKmYCD|D91i`4VOe zTL1tc07*naRJr-?JBMk8<*XwE>d3w!cd5+mLJMcftmzm4Br;Hrfe@SHEkd(7a;# z;a(Ila5P-v?92S^LX%Y{wWh6AnRDDJbm#m^2`Y*~3aJa97{ez*%B6WVF1Nn{Cg%3! zf}ENb?(qPF`oIz@eyEG9+uXLorWTdJ;uBbOH~(6x%e>w&nfS|sp#_OLa>Xx~RH_NN zaF)7aKI$`6>t)lxgg@ods$THKYW%nafDJ|hzP>7}G0Fw3sOxfZBuH{W8_`w+iLi%B zQ)LW;Po=tNIY>K{fuZH7Mi*!s5lxYxs4O<^HHe{&N+zm?uId%(&BMM_lhQhO8CvBo zFJP|2Z!jZ_D8UIxlL-PFHXLfY>%l5yL9*dZ{PMH3|BQ+8IRRfLyrMyA+CrWAL8vL9&uIDoymv>DXw{F>Q;aWV_2jwwPa-H3Z z^&Un1GksoB08&8R8AS}>%Gog?X0KpPJU zqWjif(z#?j%*-gPDZLxM%b33TY&PPh#_u3DD!dK^}fN=4J(J0HJd-B#-r5H z+UG3}p{mqn7g9*wK{oUVC0b`gusJv!BU;oky2v zXUSSp^=4p?*Aa3Pt@7bHf8I%o-=Q<+m^g_>y}U7D*xU8{{R2^pTEtp*fa~s zoeByn)i80D@TknBYQ^eyJYWuHnlUNMf~J;SMR%c%@tK0ziIshwL8{aQOzg8{M8ftg zuqL!xc_93p7Qp5Q!}@0ZSz#O&i1VUJfopZPZTD!zDdc!g=W3ujo-fAY0^6zA`s9R; zE^|E2SvXE7n^nApA7qM(|InT|KP(giR$nYm1F>CR0iZH4F-rk3bqM~)y{Cny#`)g((|CUu;sPvj;gM^+1GQCHrw=)P&Grw}7+2@8@S zWezEh`KUKcFzmwSD(1tZ3z&4cc>@{Fd(_m})`Jlj;wSH>*tmteF>nUFYU1qg;bs81K8T$s@~ldI!KK@Yr$`R^INDr_U<3J1B3bOIW|B>E}l1U z3JufdS;4W%b@}j|Kk_N?0X2Ig*vUB#)5+t&WRYr^k&xk2Mn+u}{n2Yb{{HvprZJox zX@|~2s(Ky641U{33^Y~GsTfMu8H_Ub<6Xj{d}g6p76fMUu0Gz718;(cA2;EBa>Aum zW5G0jxK=)p-@;JLRmeIq5ZleRXA5-A?Up8D=c*Ll`0u=HT;_6xl4P%SBid1BQtW!? z5NeeGa7#rgp}r8NH0N}vKJSgK&^m7bsN$iZw(%4lBD7IKk`i@t|PV}kM(Nex$YsXtO*{# z7eXDS+kGn}MVv#@<-#^JSzJw|fH~6PZ|-PVo1_M|HFHMgi@`IEkoo2<_*Y&L7C=fE zI>P3#x%v7}eqsyMQ!sp!BhxdR0ZI92!QYl?x1x1diO?2&i?EqjNFiII)EmGqhoMBC zc}QBvESU1cR(b0-1~wu3!MPdsQqiyY$aBwq7BFma0@4%r3L!8)QxFkQpe+rw z9h&{|D^I&13amSVA~jTq%5a=YAag6i1%TOy`Qcf_>>Rke(gqG3GMf6hXNFtb(LGElCSGofTOslc8Q)GaS zBsSzl->ruV&JJ85txzlu4;hizc&dzO{BPwXb+TkU1)cgPOWH^w>fwQ(>=L<%rl2w% zb_Ty#n_Pjntq>S8>GVu*sV-(ZYtnsFtPua3nJUA-1(`8kN8Mv!+vi4DFCxTP3AVkHAn}{)+^<4$NHW1kY+NL`YcYEm4Id7-kyf48ssRl#4A#LyBUf zcA@-+MkPLx5Nh!J!VAy6@cjICTMwnjMs|KQyhb6k+kQ6Z4{hNSngX-4?Vk?5Pu7710Z#f-LpZ*jleqq{V)D|qXtk5>oJL`!-3&i3QiUx%DK ziyNjLI0ps*3FPPyW;F@k=%n+_^HGXDvb*x4b(lLp0&}qhL^{1?384bqh^K!<6&xVb zB=)c>1*-h^w?F^ldPf3glkeSkvl^-k^E+NX%;isL3cNlfhO^3sGk2=YEHoK-7GOd4 zwLkxJ^HG&{pJXXUtW{*mAe8k29EL8PfvE?!TyZu}^1TXbAgtAfi5pJJ5}S#n9hKgf z=W=y9&%Jo)$BP(%rst6oWO8? z{XnbGqZPc4g`o&-d5_{(KAwR!YONKbi;x2qXF36}#V=a~5a&TQMw|bd!f>oqgM=KS*jXq34chEC?2$eKc+y+tV_W0w##8| zKvixw)I)*+-3{*MHps+@4d)JB8~}D}y*k$#x!oms!?Prs7BI@&h zPUnlI9`l(ws3o9pVc)uSi+gf^uBX@9CwxxA@crvoUwzdQ&{Hrdi4~3>A*MI-cK@$w zN5XE-x0a3)CChO*HoU@iVT#SFFOnbKGLoa(p<07{x`m%UH5}+i!z$+pINF(`0JaYup2hS$GAagnNjwn39wdn?9PEpnE9CF_U+rujt8=7 zn86phKw2-lDQH^C1Hu3BhyTXS3tM2a_3c90C=8G%-L5&s2PyCzDK2!9W)iS6{vFE5 zMIv1tVM5ZmUP8kYkDVS#Jwk3pVJXe1Nhi*^<;J69O=(`21nC^wMpnlY-SfU*%7LtV+N76Mx1*h4)a4)*Spf6hS93CV#Zwi^HCNSW4Ue~Lk*Ocmo1O*#@xjY!aK|?y`{|5!Uz2;S9tP12&9fOF+{aYEjd%G;p;OU@_;x zG`9e`8~3C-5x|)g5JIcFIjAL|XF=6Ver{Db%Z?Bt;b`U*{^RJtkixeJ6@uC4B+VGM zNgz$<)OeBqM3QXsEc^71)w&#Msd0c07>5n6l_~)}YQR7V(#wKq2}D^kNNDSxVvoZS zwhN&iw#!dw3cRqej3fK#Y=HMrHK+}zv9}+<>THL4?u*&^R+$1v5?MqgmIuDr#6I-u zTxiHBnQsv=+XbL+Ar(VmYSCz4)2}}7{@VbyXJ~#Z< zzd|Z1@druOF|SD%l~ASX%}<0h9pwTHY)gl948u0;t+dp!>#3__#|Qx6RpJ>}db!*k zclVHQT3`ZmPT26229nWPYozNQjI&Fq;(r5&Jc=o^^93{eawADtz;U&SroA+oyaDJK zC+V|GHNiVGBxkLSMT~8EFW|R0$=hW-gmBBgJ0^HM?8+FpIN#&)#HrR~cWw%6?#R(N zPFXp)mH$eC^JbJgf8K)kp$wV8h|7Nt24G_l!uCJshalFpm~nDa`HycBN{!^|XaYe| z4%89K5tP#&RF0!`)qo5>(>-%IkhF~rfe6vgqKBGos|`fwkYC{M5_|)_VbnK#ex}sZ zp|+!hAPhU2qi^OxV$Zo_k6_F{qo-UKjkmFY#u!c$(PRp-A+L>`_ zRmz$F^?Tp*jf=NuFXx?Ea;;?tV~vpVW(kraUH1jvUAv*VO6RSgx?G$$s-(y{m7^Gj zh@RX7C+GX4^>yBQ(5p<4&f!5$W${#*fTeI{A_p&UP!Sl%aWr8b@y`J|&S5U#CUqn< z9gn(fR55_DvYpGC;;nE{L_1>JNP+m|pKp0{yL9+8&L+BjC@uo{rvc6h%X?&F-(KoXRVanM^HZ#?P zGv&n95nz`uD)mhQx-`c-qGCBMh2_7zcpJt-(tUx)Uny{`2U?axLIWY0!mK)FHO9Y0!yM=9`X&b7_% zSlG6raHxMwDzg1p@?&RKY3|$cDCMj(!(|`aAT){NTAT4{D(E-&Y=)Q*WKMc9ErnazI>oZ zVy-qqkDibc(!f546IwN)3QWfw&*gIYiFyg^_nbcS%p~$))N4)f7*ijr)R=xEloTOE z6u^e8Z))F|wQf}>dwl_LeEIwnhfQx zDgBiEoV7v%GU*^!<4h0E=?y@7OPpli@W47E7kj&=Lcr0AocahIRk8afxXYBL0E04y zS)fbo5u|xZFoHfUg&`RsQB%i_Cmp&hQ*HqP$Lc1U)SGi%LcR+d{@8by87btjraI@C zm-*T?!O2mFyQ94cHz0ZiLL%gM@}HCmTls(`SRwf#B#*#Y7h;2Z3Jz9>gwom;XiLC7 zWbngK{)qEEUWuG^oiVoA)-m3|m;V?u&F@{%o&QquQ5#!VDk0n&OYOB*zo{%{9+Tzt z@aBz$Afa-fnWV4#xN&|&c$8&Rd1wodQs4|t!+(8{8q1?WfZ;5DPT87FHsaMx-0<7| zca)Pd$FOY^RLITLb3f-SnEjOl)aY2CcV=e}6Uo?6JR|VdWbxyY2$UBsL=(g&Rs4ioukVYZcdq7 zQJSm}%e|Wn}}T(oqnJ8D}-lNC42ZnT&@$WQ}qZbjGP< z2B0a-n^1*#*cc#DPM->yhe|b}QsXkIci$to1vax|sA zn8{W(C1a6V(=mw>JQAabYsY3)OXVYon(C{(xLit}SceU~VS`_^I8%tv2I7o_0y)Jz zp>1->vtD}XB`&WcH=l#|w@GcU z&doY!GzA(c*>`5A&?KuSX9uSO!%s{<9k*}a=3Ow@lL6dB3~7Wg!{zM8xHIvC?|)xv zftQD4Mk^AT=60ueo2GZgRw;01*2e?g3l;541+810BFlz%2_WB&Ecy4{5i{CaW zPOkjNnJmCCumflwo;K7sMJRVhajR~79dasRRuhNL`bKLr=CZyULon)t-+D-U>8f7g zS4Jxh>@F^=ch;pqk6~Sup=!FLwSg{)79WXO2-8%Ub_SV#V$V4evA0#XVK&>xLLxYa zB$4APZq-*A@~~;@sF$+BMx~IdjT#fR4LD_PS8jM0!iK zxr(t36WBf0Ls5(Yt2)#5Vwh%|4BWCX9 z`@UBRxtXR*=4g%R(}gmn?tPrXjF%gMfz|=x&M3+R8A9*M85SR`{W1&2k}=@Q&YQQbw1BJMvg-v;@T=YV&UN==DF1GJ=z zbGv7nB82D;lu5T4P^dgMxp+7Vl3W`=Ay#RigrsIGPsU!1C?yj8Q2!5LY2ocO2BH4W$;I^b$NQ=78TLFgA$T! zD{bY!IShv_&|B;9l9EB;R>9*LZ(P;AiLZbC>pdAx9FKr@lLAhV29d3n|F)0o$d)oE z9I6Ld<#j0EQ0mK^ytZo|2i23uuk$JS?BBH(UK-ld|eV^`|Ao|752aZ7LV zJ;Cil!C*VeS0jN5AE3SIyF2{oO|PKyHf8w_RC=%jNCi#RG;@cnDxm1ga9|Qz5E~8#Gbovx5RU2 zsA7A;4|oXEkh4qlIE>^a-2>pNSoNq{vA}%N!}WO%NYSnoi2t$z1^|=-W$}Q)Q!nL^ zRCwK?VYpo$I9#218y*ga>MivypK9)gJocI!A?G8xblKSmo{8*)JSWkK73%z(% zPh@BSQ!&u+L$%fGlB7fNysnLbT?4YFL^x_d(;!-7 zYC;i9I)+?j%B<|BO600uSwwv1g^QKVV3@7VA0wF|O z0>X*UFfZxGpdmASwm>}s%Dai92Ir1|IhR?lOd$U$P?3-B$O^_(8GfToqC7F742J{q zoUTz@J~COq!E#R6WOUwrl`{t2DVf?!fy!8N)Os4h1kO1RPrEF%Epv16(>am%J0PRz z)BNMKH>4xFh{8|yzE0dc1{=HSG$`kR=<X1A2e>hkwMjx=(QX_HEk*00lKTvwL>97Kh_wRWj~1-lx0b z@i0?VzYaJyG)@h^(5aP!@jwec@xltPDQDk1)~bnJ0_L&kj+w5XeX)CiirXJxY{u~b zm&5rwP#+#v8Y}NDmiE>1ki-9qi>(uTC)o8ztXzKvVfY1FxnZhi*8eG7ske9Jl{AbI zf0AOGqMof4@7Dg3&?D#hSw%N8iK7OevWEw~pIwVWU@dLk&^t|T$+py*LnG%|Aov}p znw3Z{j*(?JJw=OJ1>Pz$43(zW6JJ_CiC8Ot6qpnNEJaQd9O)PQ`aADYSw@(t48v=z z*J@AjeZy+_)~%P;%IOKI&R{`dD1ZCQUw&@BMD?WM@uOTj;4TuU;8r_uU!_<=bvD4^7LNU%NLs%GHN?9=2rew`}syR~`FeXQwwRPXp=eytgo_ED{ zB#41Cj?x$~S>f~EbA9^h7GC9hO@^KU0JB!|QaLKbF|vD1M&||7mFM>GVI!W;ZntjT@*;#0q+Vl(Xt7?$Rzh|`Jqx2A z@bfRcz`|)`TzK6AbTlq;chdfOD?1ZX83T|E({~>;1na08pBT$2%7Wa%r6c4KnlWBS zm5BpJVF56eS`v92wnLk$8QjA`U+kPIKEMQ5hQyF^U+10g%2wjd-z+oWuf*@>haqfHy$>)y5CqVkt- z{2adp?wo(|U(guu^1pwJuc`1zlEw})e4uBDBhVFZaz1K zU;XN*KmXa!fBG}e;SB>Ozb2Jy8AQ|t|IRF0h1!)+l{_y&lLEb|uU{Ia6z*tak-%(s zqStzuXQWv3+jHPMt(Nj=EYk7zOoia-ZW48%xC7G^^ZBc)p+xG9ba5;zep1Bn=81pX4t3; z+NHqBYCEJ4v3a}lq^K1ghtrXL4s5P_S@Zv>WB#Ak5h+M&I(3;RB>kI~GoGcH)n^DT zxGt&Pzi5oS9&cWflUgz}lq}QdbG@GC#^7LEv6k5xP~8k1eE{~)aO)~{f9CPW?PFm1 zQ+_YnqeHS$tNCSd{y~tcAsoS04xi+o!dJduq|W1hOeFDoI%C*~O*EIx_|Xj8WOSk& z_Ar+ETE4pl=;%95L^D7;zB5S9CI9t#dXCw0pSQwkb;;?*@78ZUj@g{`HX91; zZJOBTVjc>Z`qSUxXWp)|2A$=N5YxW&#V`KFfBV|A&v-BADQ5Xk zul~~yfAmAP^r@#`u!_)U+4BUJnUPuiG3qf~D1_9>7@51)w{=TbyZ`_o07*naRG)tG z?K}1iKgCxw5$0vetOLI)s($NR-)eXCl~-P|tA-g~>fn0-tOft-ul@=`mu^qK^`?A0 zQ(upVLI_*?C)gPhn84^0^OvDcn415Vx6F#6^s=J-DL1dLc9Ce-#p6s1B7pH9RW9Ee zsor__?I%cL`QslVcT_^M9+h-ENWrGUFZyn71$+u^H%<}VJ_@eX) z^Dp1@oY~srbfLdBCem-tQeb|2GEOFe2zE9Y9(xxb7NkG;(T~3S zgCF>Uhs_#(cPy_nrRi z&;HDv^%y3F0+#`dZF@YP0+j;Q12z-w`@PU={pq@A&l7dQXPm5om^9{cu{p()!=LmoGqdtLLJNAsG*^2+WKk8S(6d|_Gb${nI= zsc{193RRP<-g@(?H|G|&pXLRck>zjfNgU~EG-hWKYU`;52jkPkThw?iW+vv}|2}X0 z_ka7hw#$?`>O`@{gc}F7S-d3i)}6QCyz}w<_Nt&m) zF#v05CJU}*%p|!rV6y;)9|vo^)<_+eQxiHQ`1N$dB&0>y^42hY{qMi=z3+YZ^Pm61 zty?dvlX6)e3pP~F{(z} z{0!_YQfHbq#@VSr*VW>)vB3Hyzhd2*{$I(mCN85&`d|{%X`x$@_>K{J_g5Aj?kCUc zbgk|DQ$4FHcfag>NXrytqTs_TcC(G0udclLmJwHPOko5iMZ9MF*Udt&w7&QvIzRpS zFZ7-1(QrS^4O_$89BRg4R+FmH|4M;*QI0fh8uT&NHP|b`44$!Wa=lC2c4mJ1v$KPi-HY-)dk?H;yTU6%67y^~iCiM+ zx;@YrJ8i2?sK`~tndK2{M`Q%+Y0;C#PLx@b%5|I;j0MZ_qCrx;a1%}0dAyE4&GN!e zSUf!;X{|&(9Ko^geEtsn&)Giv>~nA3dCNRqcpsV9FZ+z%o_xv|iJ$rOGf2umPz@am zJF##QcyVm}6;rbmdiqk_bNlFl*P-|0Tm5!C7PM@=R{`u$Le)~&JR*ZtN)1SCxXBq~}P}){il zvw$@hpk^8A&0o%wpKc1>`NDh^^K&nLZngp6c!SEGeP)LEg%{`bRyU9c=+P$S-}>Bd zedTw*V!lX6lpt~V3fH=cuzq@Fnc|YhF-EB{LM$^IMlm(p-_@;YS|-Ud*RdpC7BEia zBM}bMu&W5Jc@1rWc;L-E#PNO(-dhk7VM8O^@Fu!4G$xea{N^{U|KvYiz+3-G0Lp-^ zZao82%A}_QCySlK5#2MN(@;&LseTVD17ltL&fh8Zjmh2h{L3YQ^Yuv+SC`8v?y`^L z)f)6G<6oM0Q1H^VOUyW9kAP}OZCFJ)Q-L;?=!!>_0=GC_hV4T36Nxj2zxlt9Qs9H? zd=J&O?8zT8$O?ZOixlNSvhD=14@Tgooq~WqGx_t>75oaMlK_=9F(BqORj0=tXFlB` zMG#TR19JwBC!Qjz#!YDyUBcYgE0E@dJYJ1>WGyIq3O!;LW3@`bD{SRObWvaVY;7T~ z14F{ktnZ*0v8@Sa=QhFTyi7aJXFqUFUdLBf@=);422F{x^X#~~pJ&I|8xiYGfRV*Q z(0Abc3e|dUUe1=(`PMIg@rJ;PqClzAT$jhY+aQQZ;V4Xm#K6*C%0F?6huP5_wQ0u> z$!1e;g;K!#09fCIIz`x#W5h6?XS7#=5`0=~jKC?hLQ|&m)UKoY^$_bkZ9&7f`veHF zvZ;)EW9=zQ+1*;-&d0D3cqgG2=WvEuVWe1007#;^T{+_^v5|!h zgNvE9SG%NLS$rP=&U%}Xv^h?yS({s+uGHNxo7`Fb^EU=Yx9fpU@O|UFp|r?yveIyt46jcJO(L$0et;_>-l0jtRa? zL!M0szhdV6ydTRRQ(GpfBX=r1iJ&ly&8^qWnOEJJ7b6oW=f=bOu|Svl0x)%j4WW>z z=h85PgxNG(3Y?YHuTC#tPkv&Z)`j!uv<8it_{riodztUazn7!h9~?!EkBpO~hs=G2 z*;9@e9hMxA_qZUp!6D^1>mpW)m|}|1X=zxcR8T=Ted)>)YGv_x4s+3*V{1Mps~JAm zo0~xf3=%(TcA$y9gc>RChOZ{-dI1AJ!GGnp@N85QW7m5cSVc%*g~FEnr;rE=z0E1e z!eCd8MC4*5&;}NtE<1EY8gTWa)AJDz>W?DCcCuX5gA7T9I&Kj*o|R$d*s{C=ln{a%(qtUhtKYZ{4~j|M?;|FD8Y) zJ>{X70dh}W3KZ@c^T=y;|J-u`7=s!I61n+SR_twV@q8SeL_nniFsvqf!`GA-39jwz zpwbfI@V_1y3gHp+CXqI-Hy!!eI^19tj^~+kEZ1
  • olCcDdg?1^}foV6BGOIe3sA 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�`L^sdKL#PUy@Uwm=qYE(?dA&&J$5( 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

    ZD-N%@~Y6g(a>5l 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

      PFO;KR{tf< zoSXbJScc>(cc#~KSjBxyeo3)XB=B8dd(s?4s$}&enmO*cN{Ua)63~;^70k{iMnqoU zm|8{1N?uASvcc`REZ!~exsH0gQYav&Oo7dhrhVX~J!JsPqR*)4Jk9kiFiM3il%6W_ zfsr$g*<&9@ziao2ynidq=?4cPqCS%9o$BxJ!NVB|vUr&tgi{0+YR9~qqvT4j1+{*N zqi(7ACz3nnw-_#Z8?&!D2QS-Hj5{+9ZbM>sLqCHZmb0RH{d4z~RO+PuS0JZYPPg$_ zYT%WGgzaV;2g6_a;4xB6@d}r2+2P5arOf-4%P7v2oA*3)UIT-nxj~!O12F(3sK{9q z#*)Dqv8>B1I{f5En83J|?JMvOa%x3G)K-FwRAqsq9e%zWWrOs_OAB4TjlEiKMOG5hbZ1}!w+SzUkX=ujS^1pl955fI^PJ| z^pgLmQ`aWOCh|dlYow_?$1xpAphkGlOKG_8hT?c>2vB9J$U-e-U_lD8i0^TDIB{rmedlFi)pwT@+UUI z#I;tIG+FRiAP$S#@Sl{2|Nfff-dCgP)X+@`Nchl7jjb;cNYH#IpXTOPgi%JV{2*k< zji`!VUjtC)G04PcI``cPtusx)8O{nrgMcL0+HtH2_~_iWqf95Y!AfTOpVUo<3Z7UX zK^s|*oP`sbeDB{Y_Wc$?Mx=(0q4*AV*e~(n?EOThEnzFv^zt&mM$01-&J;~89>HOz zKc}l{&!i8~u{%(1K!GN#a1C2R!2fxpS$5z#BE~_&773M`f@f>%Kr^S?jM81OAAz$6 zHZLI-9W5$axsqq^w;D3i%?s6n46{@P*xla`UE{Lq7Ow9kd?X=8jsn-eV_3SJC;DSP zapMNv?GUMqdbji*(w3pls{Fx>4wcZ9z!Lb8z8|JFOnN`{;1<-N{D&HAx1qip4KYyj zb+UHZ`hFg=Ntgh5Nl_b%Wf zh5Fol2VW}G752XNUF6q2+%;-5H#cY!=ioeyv7c!u7FCed`lwVTNV(cd^v+ee3@T&P zW|0*#j+yAWYe=4Ox zWcJpjYFPiScH91^+^G32orOm;p}23F2nH|o>!zw)eH$2tsfyG(j2+;Gm<{C>r06-0 z^x|XL`Getv>q`^BIs=AyIvX5_;BovUdTKBBpkZ%Hhr28ky+CIQI5Qkd-4!h*+`gQ`qDYOxX7_ z{r@5*k}}SAFjgHc%e`&ayw=At-Ws32f4lj;v>T|&>W<#Qbnd59ikjoQlZQvySahww z;0paGi4GSl<0TLCQ!hesxVr^=B@Tq0N9+FQ%b}3YS-&b|r<&WA3w3Yq4=a6N!{dCX zQcLB~Z@hwmdzO%2|C!eD*IO2Hta3uE1O5pQjqB%oUvsy2C;vUY)!*3Z>3gR5KKBcd zhRlg!K-9v1?xOoDYpx+dqtE{>o%A;9x|9A3$(XYK9R1JgznxqWuND7yF0tDs1OF}m p+bpsO&_VU98~Kj)fAlJG#J}R64o4l5(+IDZf{ZHYyOc@r{{t57l92!a literal 0 HcmV?d00001 diff --git a/g13.svg b/g13.svg new file mode 100644 index 0000000..a6169a2 --- /dev/null +++ b/g13.svg @@ -0,0 +1,624 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + 3 + 1 + 0 + 2 + 4 + 6 + F + V + E + C + B + G + I + Shift + M + T + L + H + A + S + Ctrl + W + Tab + Backspace + D + X + Y + Z + N + R + P + K + F1 + + diff --git a/g13_fonts.cc b/g13_fonts.cc new file mode 100644 index 0000000..b27598b --- /dev/null +++ b/g13_fonts.cc @@ -0,0 +1,422 @@ +#include "g13.h" + +using namespace std; + +namespace G13 { + + +// font data from https://github.com/dhepper/font8x8 + // Constant: font8x8_basic + // Contains an 8x8 font map for unicode points U+0000 - U+007F (basic latin) + unsigned char font8x8_basic[128][8] = { + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0000 (nul) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0001 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0002 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0003 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0004 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0005 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0006 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0007 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0008 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0009 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000A + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000B + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000C + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000D + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000E + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000F + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0010 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0011 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0012 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0013 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0014 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0015 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0016 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0017 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0018 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0019 + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001A + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001B + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001C + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001D + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001E + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001F + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0020 (space) + { 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00}, // U+0021 (!) + { 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0022 (") + { 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00}, // U+0023 (#) + { 0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00}, // U+0024 ($) + { 0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00}, // U+0025 (%) + { 0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00}, // U+0026 (&) + { 0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0027 (') + { 0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00}, // U+0028 (() + { 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00}, // U+0029 ()) + { 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, // U+002A (*) + { 0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00}, // U+002B (+) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+002C (,) + { 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00}, // U+002D (-) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+002E (.) + { 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00}, // U+002F (/) + { 0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00}, // U+0030 (0) + { 0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00}, // U+0031 (1) + { 0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00}, // U+0032 (2) + { 0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00}, // U+0033 (3) + { 0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00}, // U+0034 (4) + { 0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00}, // U+0035 (5) + { 0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00}, // U+0036 (6) + { 0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00}, // U+0037 (7) + { 0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+0038 (8) + { 0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00}, // U+0039 (9) + { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+003A (:) + { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+003B (//) + { 0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00}, // U+003C (<) + { 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00}, // U+003D (=) + { 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00}, // U+003E (>) + { 0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00}, // U+003F (?) + { 0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00}, // U+0040 (@) + { 0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00}, // U+0041 (A) + { 0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00}, // U+0042 (B) + { 0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00}, // U+0043 (C) + { 0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00}, // U+0044 (D) + { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00}, // U+0045 (E) + { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00}, // U+0046 (F) + { 0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00}, // U+0047 (G) + { 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00}, // U+0048 (H) + { 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0049 (I) + { 0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00}, // U+004A (J) + { 0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00}, // U+004B (K) + { 0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00}, // U+004C (L) + { 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00}, // U+004D (M) + { 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00}, // U+004E (N) + { 0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00}, // U+004F (O) + { 0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00}, // U+0050 (P) + { 0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00}, // U+0051 (Q) + { 0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00}, // U+0052 (R) + { 0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00}, // U+0053 (S) + { 0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0054 (T) + { 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00}, // U+0055 (U) + { 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0056 (V) + { 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00}, // U+0057 (W) + { 0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00}, // U+0058 (X) + { 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00}, // U+0059 (Y) + { 0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00}, // U+005A (Z) + { 0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00}, // U+005B ([) + { 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00}, // U+005C (\) + { 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00}, // U+005D (]) + { 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00}, // U+005E (^) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}, // U+005F (_) + { 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0060 (`) + { 0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00}, // U+0061 (a) + { 0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00}, // U+0062 (b) + { 0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00}, // U+0063 (c) + { 0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00}, // U+0064 (d) + { 0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00}, // U+0065 (e) + { 0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00}, // U+0066 (f) + { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0067 (g) + { 0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00}, // U+0068 (h) + { 0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0069 (i) + { 0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E}, // U+006A (j) + { 0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00}, // U+006B (k) + { 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+006C (l) + { 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00}, // U+006D (m) + { 0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00}, // U+006E (n) + { 0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00}, // U+006F (o) + { 0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F}, // U+0070 (p) + { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78}, // U+0071 (q) + { 0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00}, // U+0072 (r) + { 0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00}, // U+0073 (s) + { 0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00}, // U+0074 (t) + { 0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00}, // U+0075 (u) + { 0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0076 (v) + { 0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00}, // U+0077 (w) + { 0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00}, // U+0078 (x) + { 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0079 (y) + { 0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00}, // U+007A (z) + { 0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00}, // U+007B ({) + { 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00}, // U+007C (|) + { 0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00}, // U+007D (}) + { 0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+007E (~) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // U+007F + }; + + unsigned char font5x8[][5] = { + { 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x20 (Space) + { 0x00, 0x00, 0x9E, 0x00, 0x00 }, // 0x21 ! + { 0x00, 0x0E, 0x00, 0x0E, 0x00 },// 0x22 " + { 0x28, 0xFE, 0x28, 0xFE, 0x28 },// 0x23 # + { 0x48, 0x54, 0xFE, 0x54, 0x24 },// 0x24 $ + { 0x46, 0x26, 0x10, 0xC8, 0xC4 },// 0x25 % + { 0x6C, 0x92, 0xAA, 0x44, 0xA0 },// 0x26 & + { 0x00, 0x0A, 0x06, 0x00, 0x00 },// 0x27 ' + { 0x00, 0x38, 0x44, 0x82, 0x00 },// 0x28 ( + { 0x00, 0x82, 0x44, 0x38, 0x00 },// 0x29 ) + { 0x10, 0x54, 0x38, 0x54, 0x10 },// 0x2A * + { 0x10, 0x10, 0x7C, 0x10, 0x10 },// 0x2B + + { 0x00, 0xA0, 0x60, 0x00, 0x00 },// 0x2C , + { 0x10, 0x10, 0x10, 0x10, 0x10 },// 0x2D - + { 0x00, 0x60, 0x60, 0x00, 0x00 },// 0x2E . + { 0x40, 0x20, 0x10, 0x08, 0x04 },// 0x2F / + { 0x7C, 0xA2, 0x92, 0x8A, 0x7C },// 0x30 0 + { 0x00, 0x84, 0xFE, 0x80, 0x00 },// 0x31 1 + { 0x84, 0xC2, 0xA2, 0x92, 0x8C },// 0x32 2 + { 0x42, 0x82, 0x8A, 0x96, 0x62 },// 0x33 3 + { 0x30, 0x28, 0x24, 0xFE, 0x20 },// 0x34 4 + { 0x4E, 0x8A, 0x8A, 0x8A, 0x72 },// 0x35 5 + { 0x78, 0x94, 0x92, 0x92, 0x60 },// 0x36 6 + { 0x02, 0xE2, 0x12, 0x0A, 0x06 },// 0x37 7 + { 0x6C, 0x92, 0x92, 0x92, 0x6C },// 0x38 8 + { 0x0C, 0x92, 0x92, 0x52, 0x3C },// 0x39 9 + { 0x00, 0x6C, 0x6C, 0x00, 0x00 },// 0x3A : + { 0x00, 0xAC, 0x6C, 0x00, 0x00 },// 0x3B ; + { 0x00, 0x10, 0x28, 0x44, 0x82 },// 0x3C < + { 0x28, 0x28, 0x28, 0x28, 0x28 },// 0x3D = + { 0x82, 0x44, 0x28, 0x10, 0x00 },// 0x3E > + { 0x04, 0x02, 0xA2, 0x12, 0x0C },// 0x3F ? + { 0x64, 0x92, 0xF2, 0x82, 0x7C },// 0x40 @ + { 0xFC, 0x22, 0x22, 0x22, 0xFC },// 0x41 A + { 0xFE, 0x92, 0x92, 0x92, 0x6C },// 0x42 B + { 0x7C, 0x82, 0x82, 0x82, 0x44 },// 0x43 C + { 0xFE, 0x82, 0x82, 0x44, 0x38 },// 0x44 D + { 0xFE, 0x92, 0x92, 0x92, 0x82 },// 0x45 E + { 0xFE, 0x12, 0x12, 0x02, 0x02 },// 0x46 F + { 0x7C, 0x82, 0x82, 0xA2, 0x64 },// 0x47 G + { 0xFE, 0x10, 0x10, 0x10, 0xFE },// 0x48 H + { 0x00, 0x82, 0xFE, 0x82, 0x00 },// 0x49 I + { 0x40, 0x80, 0x82, 0x7E, 0x02 },// 0x4A J + { 0xFE, 0x10, 0x28, 0x44, 0x82 },// 0x4B K + { 0xFE, 0x80, 0x80, 0x80, 0x80 },// 0x4C L + { 0xFE, 0x04, 0x08, 0x04, 0xFE },// 0x4D M + { 0xFE, 0x08, 0x10, 0x20, 0xFE },// 0x4E N + { 0x7C, 0x82, 0x82, 0x82, 0x7C },// 0x4F O + { 0xFE, 0x12, 0x12, 0x12, 0x0C },// 0x50 P + { 0x7C, 0x82, 0xA2, 0x42, 0xBC },// 0x51 Q + { 0xFE, 0x12, 0x32, 0x52, 0x8C },// 0x52 R + { 0x8C, 0x92, 0x92, 0x92, 0x62 },// 0x53 S + { 0x02, 0x02, 0xFE, 0x02, 0x02 },// 0x54 T + { 0x7E, 0x80, 0x80, 0x80, 0x7E },// 0x55 U + { 0x3E, 0x40, 0x80, 0x40, 0x3E },// 0x56 V + { 0xFE, 0x40, 0x30, 0x40, 0xFE },// 0x57 W + { 0xC6, 0x28, 0x10, 0x28, 0xC6 },// 0x58 X + { 0x06, 0x08, 0xF0, 0x08, 0x06 },// 0x59 Y + { 0xC2, 0xA2, 0x92, 0x8A, 0x86 },// 0x5A Z + { 0x00, 0x00, 0xFE, 0x82, 0x82 },// 0x5B [ + { 0x04, 0x08, 0x10, 0x20, 0x40 },// 0x5C "\" + { 0x82, 0x82, 0xFE, 0x00, 0x00 },// 0x5D ] + { 0x08, 0x04, 0x02, 0x04, 0x08 },// 0x5E ^ + { 0x80, 0x80, 0x80, 0x80, 0x80 },// 0x5F _ + { 0x00, 0x02, 0x04, 0x08, 0x00 },// 0x60 ` + { 0x40, 0xA8, 0xA8, 0xA8, 0xF0 },// 0x61 a + { 0xFE, 0x90, 0x88, 0x88, 0x70 },// 0x62 b + { 0x70, 0x88, 0x88, 0x88, 0x40 },// 0x63 c + { 0x70, 0x88, 0x88, 0x90, 0xFE },// 0x64 d + { 0x70, 0xA8, 0xA8, 0xA8, 0x30 },// 0x65 e + { 0x10, 0xFC, 0x12, 0x02, 0x04 },// 0x66 f + { 0x10, 0x28, 0xA8, 0xA8, 0x78 },// 0x67 g + { 0xFE, 0x10, 0x08, 0x08, 0xF0 },// 0x68 h + { 0x00, 0x88, 0xFA, 0x80, 0x00 },// 0x69 i + { 0x40, 0x80, 0x88, 0x7A, 0x00 },// 0x6A j + { 0x00, 0xFE, 0x20, 0x50, 0x88 },// 0x6B k + { 0x00, 0x82, 0xFE, 0x80, 0x00 },// 0x6C l + { 0xF8, 0x08, 0x30, 0x08, 0xF0 },// 0x6D m + { 0xF8, 0x10, 0x08, 0x08, 0xF0 },// 0x6E n + { 0x70, 0x88, 0x88, 0x88, 0x70 },// 0x6F o + { 0xF8, 0x28, 0x28, 0x28, 0x10 },// 0x70 p + { 0x10, 0x28, 0x28, 0x30, 0xF8 },// 0x71 q + { 0xF8, 0x10, 0x08, 0x08, 0x10 },// 0x72 r + { 0x90, 0xA8, 0xA8, 0xA8, 0x40 },// 0x73 s + { 0x08, 0x7E, 0x88, 0x80, 0x40 },// 0x74 t + { 0x78, 0x80, 0x80, 0x40, 0xF8 },// 0x75 u + { 0x38, 0x40, 0x80, 0x40, 0x38 },// 0x76 v + { 0x78, 0x80, 0x60, 0x80, 0x78 },// 0x77 w + { 0x88, 0x50, 0x20, 0x50, 0x88 },// 0x78 x + { 0x18, 0xA0, 0xA0, 0xA0, 0x78 },// 0x79 y + { 0x88, 0xC8, 0xA8, 0x98, 0x88 },// 0x7A z + { 0x00, 0x10, 0x6C, 0x82, 0x00 },// 0x7B { + { 0x00, 0x00, 0xFE, 0x00, 0x00 },// 0x7C | + { 0x00, 0x82, 0x6C, 0x10, 0x00 },// 0x7D } + { 0x20, 0x10, 0x10, 0x20, 0x10 },// 0x7E + { 0xF0, 0x88, 0x84, 0x88, 0xF0 },// 0x7F  + { 0x28, 0x7C, 0xAA, 0x82, 0x44 },// 0x80 € + { 0xF0, 0x29, 0x27, 0x21, 0xFF },// 0x81  + { 0x00, 0xA0, 0x60, 0x00, 0x00 },// 0x82 ‚ + { 0x40, 0x90, 0x7C, 0x12, 0x04 },// 0x83 ƒ + { 0xC0, 0xA0, 0x00, 0xC0, 0xA0 },// 0x84 „ + { 0x80, 0x00, 0x80, 0x00, 0x80 },// 0x85 … + { 0x00, 0x04, 0xFE, 0x04, 0x00 },// 0x86 † + { 0x00, 0x44, 0xFE, 0x44, 0x00 },// 0x87 ‡ + { 0x00, 0x04, 0x02, 0x04, 0x00 },// 0x88 ˆ + { 0xC3, 0xD3, 0x08, 0xC4, 0xC2 },// 0x89 ‰ + { 0x4C, 0x93, 0x92, 0x93, 0x64 },// 0x8A Š + { 0x00, 0x10, 0x28, 0x00, 0x00 },// 0x8B ‹ + { 0x7C, 0x82, 0x82, 0x7C, 0x92 },// 0x8C Œ + { 0x02, 0xFE, 0x90, 0x90, 0x60 },// 0x8D  + { 0xC2, 0xA3, 0x92, 0x8B, 0x86 },// 0x8E Ž + { 0x44, 0x92, 0x8A, 0x92, 0x7C },// 0x8F  + { 0x70, 0x88, 0x90, 0x60, 0x98 },// 0x90  + { 0x00, 0x02, 0x04, 0x08, 0x00 },// 0x91 ‘ + { 0x00, 0x08, 0x04, 0x02, 0x00 },// 0x92 ’ + { 0x02, 0x04, 0x0A, 0x04, 0x08 },// 0x93 “ + { 0x08, 0x04, 0x0A, 0x04, 0x02 },// 0x94 ” + { 0x00, 0x38, 0x38, 0x38, 0x00 },// 0x95 • + { 0x00, 0x10, 0x10, 0x10, 0x10 },// 0x96 – + { 0x10, 0x10, 0x10, 0x10, 0x10 },// 0x97 — + { 0x02, 0x01, 0x02, 0x04, 0x02 },// 0x98 ˜ + { 0xF1, 0x5B, 0x55, 0x51, 0x51 },// 0x99 ™ + { 0x90, 0xA9, 0xAA, 0xA9, 0x40 },// 0x9A š + { 0x00, 0x88, 0x50, 0x20, 0x00 },// 0x9B › + { 0x70, 0x88, 0x70, 0xA8, 0xB0 },// 0x9C œ° + { 0x38, 0x7C, 0xF8, 0x7C, 0x38 },// 0x9D  + { 0x88, 0xC9, 0xAA, 0x99, 0x88 },// 0x9E ž + { 0x1C, 0x21, 0xC0, 0x21, 0x1C },// 0x9F Ÿ + { 0x00, 0x00, 0x00, 0x00, 0x00 },// 0xA0 + { 0x00, 0x00, 0xF2, 0x00, 0x00 },// 0xA1 ¡ + { 0x38, 0x44, 0xFE, 0x44, 0x20 },// 0xA2 ¢ + { 0x90, 0x7C, 0x92, 0x82, 0x40 },// 0xA3 £ + { 0x44, 0x38, 0x28, 0x38, 0x44 },// 0xA4 ¤ + { 0x2A, 0x2C, 0xF8, 0x2C, 0x2A },// 0xA5 ¥ + { 0x00, 0x00, 0xEE, 0x00, 0x00 },// 0xA6 ¦ + { 0x40, 0x94, 0xAA, 0x52, 0x04 },// 0xA7 § + { 0x00, 0x02, 0x00, 0x02, 0x00 },// 0xA8 ¨ + { 0xFE, 0x82, 0xBA, 0x92, 0xFE },// 0xA9 © + { 0x90, 0xAA, 0xAA, 0xAA, 0xBC },// 0xAA ª + { 0x20, 0x50, 0xA8, 0x50, 0x88 },// 0xAB « + { 0x20, 0x20, 0x20, 0x20, 0xE0 },// 0xAC ¬ + { 0x20, 0x20, 0x20, 0x20, 0x20 },// 0xAD ­ + { 0xFE, 0x82, 0xCA, 0xA2, 0xFE },// 0xAE ® + { 0x02, 0x02, 0x02, 0x02, 0x02 },// 0xAF ¯ + { 0x0E, 0x11, 0x11, 0x0E, 0x00 },// 0xB0 ° + { 0x88, 0x88, 0xBE, 0x88, 0x88 },// 0xB1 ± + { 0x12, 0x19, 0x15, 0x12, 0x00 },// 0xB2 ² + { 0x11, 0x15, 0x15, 0x0A, 0x00 },// 0xB3 ³ + { 0x00, 0x08, 0x04, 0x02, 0x00 },// 0xB4 ´ + { 0xFE, 0x20, 0x20, 0x10, 0x3E },// 0xB5 µ + { 0x0C, 0x12, 0x12, 0xFE, 0xFE },// 0xB6 ¶ + { 0x00, 0x30, 0x30, 0x00, 0x00 },// 0xB7 · + { 0x00, 0x80, 0xB0, 0x40, 0x00 },// 0xB8 ¸ + { 0x00, 0x02, 0x0F, 0x00, 0x00 },// 0xB9 ¹ + { 0x00, 0x02, 0x05, 0x02, 0x00 },// 0xBA º + { 0x44, 0x28, 0x54, 0x28, 0x10 },// 0xBB » + { 0x22, 0x1F, 0x68, 0x54, 0xFA },// 0xBC ¼ + { 0x02, 0x1F, 0x90, 0xC8, 0xB0 },// 0xBD ½ + { 0x15, 0x1F, 0x60, 0x50, 0xF8 },// 0xBE ¾ + { 0x60, 0x90, 0x8A, 0x80, 0x40 },// 0xBF ¿ + { 0xF0, 0x29, 0x26, 0x28, 0xF0 },// 0xC0 À + { 0xF0, 0x28, 0x26, 0x29, 0xF0 },// 0xC1 Á + { 0xF0, 0x2A, 0x29, 0x2A, 0xF0 },// 0xC2  + { 0xF2, 0x29, 0x29, 0x2A, 0xF1 },// 0xC3 à + { 0xF0, 0x29, 0x24, 0x29, 0xF0 },// 0xC4 Ä + { 0xF0, 0x2A, 0x2D, 0x2A, 0xF0 },// 0xC5 Å + { 0xF8, 0x24, 0xFE, 0x92, 0x92 },// 0xC6 Æ + { 0x1E, 0x21, 0xA1, 0xE1, 0x12 },// 0xC7 Ç + { 0xF8, 0xA9, 0xAA, 0xA8, 0x88 },// 0xC8 È + { 0xF8, 0xA8, 0xAA, 0xA9, 0x88 },// 0xC9 É + { 0xF8, 0xAA, 0xA9, 0xAA, 0x88 },// 0xCA Ê + { 0xF8, 0xAA, 0xA8, 0xAA, 0x88 },// 0xCB Ë + { 0x00, 0x89, 0xFA, 0x88, 0x00 },// 0xCC Ì + { 0x00, 0x88, 0xFA, 0x89, 0x00 },// 0xCD Í + { 0x00, 0x8A, 0xF9, 0x8A, 0x00 },// 0xCE Î + { 0x00, 0x8A, 0xF8, 0x8A, 0x00 },// 0xCF Ï + { 0x10, 0xFE, 0x92, 0x82, 0x7C },// 0xD0 Ð + { 0xFA, 0x11, 0x21, 0x42, 0xF9 },// 0xD1 Ñ + { 0x78, 0x85, 0x86, 0x84, 0x78 },// 0xD2 Ò + { 0x78, 0x84, 0x86, 0x85, 0x78 },// 0xD3 Ó + { 0x70, 0x8A, 0x89, 0x8A, 0x70 },// 0xD4 Ô + { 0x72, 0x89, 0x89, 0x8A, 0x71 },// 0xD5 Õ + { 0x78, 0x85, 0x84, 0x85, 0x78 },// 0xD6 Ö + { 0x44, 0x28, 0x10, 0x28, 0x44 },// 0xD7 × + { 0x10, 0xAA, 0xFE, 0xAA, 0x10 },// 0xD8 Ø + { 0x7C, 0x81, 0x82, 0x80, 0x7C },// 0xD9 Ù + { 0x7C, 0x80, 0x82, 0x81, 0x7C },// 0xDA Ú + { 0x78, 0x82, 0x81, 0x82, 0x78 },// 0xDB Û + { 0x7C, 0x81, 0x80, 0x81, 0x7C },// 0xDC Ü + { 0x04, 0x08, 0xF2, 0x09, 0x04 },// 0xDD Ý + { 0x81, 0xFF, 0x24, 0x24, 0x18 },// 0xDE Þ + { 0x80, 0x7C, 0x92, 0x92, 0x6C },// 0xDF ß + { 0x40, 0xA9, 0xAA, 0xA8, 0xF0 },// 0xE0 à + { 0x40, 0xA8, 0xAA, 0xA9, 0xF0 },// 0xE1 á + { 0x40, 0xAA, 0xA9, 0xAA, 0xF0 },// 0xE2 â + { 0x42, 0xA9, 0xA9, 0xAA, 0xF1 },// 0xE3 ã + { 0x40, 0xAA, 0xA8, 0xAA, 0xF0 },// 0xE4 ä + { 0x40, 0xAA, 0xAD, 0xAA, 0xF0 },// 0xE5 å + { 0x64, 0x94, 0x78, 0x94, 0x58 },// 0xE6 æ + { 0x18, 0x24, 0xA4, 0xE4, 0x10 },// 0xE7 ç + { 0x70, 0xA9, 0xAA, 0xA8, 0x30 },// 0xE8 è + { 0x70, 0xA8, 0xAA, 0xA9, 0x30 },// 0xE9 é + { 0x70, 0xAA, 0xA9, 0xAA, 0x30 },// 0xEA ê + { 0x70, 0xAA, 0xA8, 0xAA, 0x30 },// 0xEB ë + { 0x00, 0x91, 0xFA, 0x80, 0x00 },// 0xEC ì + { 0x00, 0x90, 0xFA, 0x81, 0x00 },// 0xED í + { 0x00, 0x92, 0xF9, 0x82, 0x00 },// 0xEE î + { 0x00, 0x92, 0xF8, 0x82, 0x00 },// 0xEF ï + { 0x4A, 0xA4, 0xAA, 0xB0, 0x60 },// 0xF0 ð + { 0xFA, 0x11, 0x09, 0x0A, 0xF1 },// 0xF1 ñ + { 0x70, 0x89, 0x8A, 0x88, 0x70 },// 0xF2 ò + { 0x70, 0x88, 0x8A, 0x89, 0x70 },// 0xF3 ó + { 0x60, 0x94, 0x92, 0x94, 0x60 },// 0xF4 ô + { 0x64, 0x92, 0x92, 0x94, 0x62 },// 0xF5 õ + { 0x70, 0x8A, 0x88, 0x8A, 0x70 },// 0xF6 ö + { 0x10, 0x10, 0x54, 0x10, 0x10 },// 0xF7 ÷ + { 0x10, 0xA8, 0x7C, 0x2A, 0x10 },// 0xF8 ø + { 0x78, 0x81, 0x82, 0x40, 0xF8 },// 0xF9 ù + { 0x78, 0x80, 0x82, 0x41, 0xF8 },// 0xFA ú + { 0x78, 0x82, 0x81, 0x42, 0xF8 },// 0xFB û + { 0x78, 0x82, 0x80, 0x42, 0xF8 },// 0xFC ü + { 0x18, 0xA0, 0xA4, 0xA2, 0x78 },// 0xFD v + { 0x00, 0x82, 0xFE, 0xA8, 0x10 },// 0xFE þ + { 0x18, 0xA2, 0xA0, 0xA2, 0x78 } // 0xFF ÿ + }; + + +G13_Font::G13_Font() : _name("default"), _width(8) +{} + +G13_Font::G13_Font( const std::string &name, unsigned int width ) :_name(name), _width(width) +{ +} + + +void G13_FontChar::set_character( unsigned char *data, int width, unsigned flags ) { + unsigned char *dest = bits_regular; + memset( dest, 0, CHAR_BUF_SIZE ); + if( flags && FF_ROTATE ) { + for( int x = 0; x < width; x++ ) { + unsigned char x_mask = 1 << x; + for( int y = 0; y < 8; y++ ) { + unsigned char y_mask = 1 << y; + if( data[y] & x_mask ) { + dest[x] |= 1 << y; + } + } + } + } else { + memcpy( dest, data, width ); + } + for( int x = 0; x < width; x++ ) { + bits_inverted[x] = ~dest[x]; + } +} + + +template +int GetFontCharacterCount( T(&)[size] ) { return size; } + +template < class ARRAY_T, class FLAGST > +void G13_Font::install_font( ARRAY_T &data, FLAGST flags, int first ) { + for( size_t i = 0; i < GetFontCharacterCount(data); i++ ) { + _chars[i+first].set_character( &data[i][0], _width, flags ); + } +} +void G13_Device::_init_fonts() { + + _current_font = FontPtr( new G13_Font("8x8",8) ); + _fonts[_current_font->name()] = _current_font; + + _current_font->install_font( font8x8_basic, G13_FontChar::FF_ROTATE, 0 ); + + FontPtr fiveXeight( new G13_Font("5x8",5) ); + fiveXeight->install_font( font5x8, 0, 32 ); + _fonts[fiveXeight->name()] = fiveXeight; +} + +} // namespace G13 + diff --git a/g13_keys.cc b/g13_keys.cc new file mode 100644 index 0000000..7fce2f1 --- /dev/null +++ b/g13_keys.cc @@ -0,0 +1,219 @@ +/* This file contains code for managing keys an profiles + * + */ +#include "g13.h" + +using namespace std; + +namespace G13 { + +/*! G13_KEY_SEQ is a Boost Preprocessor sequence containing the + * G13 keys. The order is very specific, with the position of each + * item corresponding to a specific bit in the G13's USB message + * format. Do NOT remove or insert items in this list. + */ + +#define G13_KEY_SEQ \ + /* byte 3 */ (G1)(G2)(G3)(G4)(G5)(G6)(G7)(G8) \ + /* byte 4 */ (G9)(G10)(G11)(G12)(G13)(G14)(G15)(G16) \ + /* byte 5 */ (G17)(G18)(G19)(G20)(G21)(G22)(UNDEF1)(LIGHT_STATE) \ + /* byte 6 */ (BD)(L1)(L2)(L3)(L4)(M1)(M2)(M3) \ + /* byte 7 */ (MR)(LEFT)(DOWN)(TOP)(UNDEF3)(LIGHT)(LIGHT2)(MISC_TOGGLE) \ + + +/*! G13_NONPARSED_KEY_SEQ is a Boost Preprocessor sequence containing the + * G13 keys that shouldn't be tested input. These aren't actually keys, + * but they are in the bitmap defined by G13_KEY_SEQ. + */ +#define G13_NONPARSED_KEY_SEQ \ + (UNDEF1)(LIGHT_STATE)(UNDEF3)(LIGHT)(LIGHT2)(UNDEF3)(MISC_TOGGLE) \ + +/*! KB_INPUT_KEY_SEQ is a Boost Preprocessor sequence containing the + * names of keyboard keys we can send through binding actions. + * These correspond to KEY_xxx value definitions in , + * i.e. ESC is KEY_ESC, 1 is KEY_1, etc. + */ + +#define KB_INPUT_KEY_SEQ \ + (ESC)(1)(2)(3)(4)(5)(6)(7)(8)(9)(0) \ + (MINUS)(EQUAL)(BACKSPACE)(TAB) \ + (Q)(W)(E)(R)(T)(Y)(U)(I)(O)(P) \ + (LEFTBRACE)(RIGHTBRACE)(ENTER)(LEFTCTRL)(RIGHTCTRL) \ + (A)(S)(D)(F)(G)(H)(J)(K)(L) \ + (SEMICOLON)(APOSTROPHE)(GRAVE)(LEFTSHIFT)(BACKSLASH) \ + (Z)(X)(C)(V)(B)(N)(M) \ + (COMMA)(DOT)(SLASH)(RIGHTSHIFT)(KPASTERISK) \ + (LEFTALT)(RIGHTALT)(SPACE)(CAPSLOCK) \ + (F1)(F2)(F3)(F4)(F5)(F6)(F7)(F8)(F9)(F10)(F11)(F12) \ + (NUMLOCK)(SCROLLLOCK) \ + (KP7)(KP8)(KP9)(KPMINUS)(KP4)(KP5)(KP6)(KPPLUS) \ + (KP1)(KP2)(KP3)(KP0)(KPDOT) \ + (LEFT)(RIGHT)(UP)(DOWN) \ + (PAGEUP)(PAGEDOWN)(HOME)(END)(INSERT)(DELETE) \ + + +// ************************************************************************* + +void G13_Profile::_init_keys() { + int key_index = 0; + + // create a G13_Key entry for every key in G13_KEY_SEQ +#define INIT_KEY( r, data, elem ) \ + { \ + G13_Key key( *this, BOOST_PP_STRINGIZE(elem), key_index++ ); \ + _keys.push_back( key ); \ + } \ + + BOOST_PP_SEQ_FOR_EACH(INIT_KEY, _, G13_KEY_SEQ) + + assert(_keys.size() == G13_NUM_KEYS); + + // now disable testing for keys in G13_NONPARSED_KEY_SEQ +#define MARK_NON_PARSED_KEY( r, data, elem ) \ + { \ + G13_Key *key = find_key( BOOST_PP_STRINGIZE(elem) ); \ + assert(key); \ + key->_should_parse = false; \ + } \ + + BOOST_PP_SEQ_FOR_EACH(MARK_NON_PARSED_KEY, _, G13_NONPARSED_KEY_SEQ) +} + +// ************************************************************************* +void G13_Key::dump( std::ostream &o ) const { + o << manager().find_g13_key_name(index()) << "(" << index() << ") : "; + if( action() ) { + action()->dump(o); + } else { + o << "(no action)"; + } +} +void G13_Profile::dump( std::ostream &o ) const { + o << "Profile " << repr( name() ) << std::endl; + BOOST_FOREACH( const G13_Key &key, _keys ) { + if( key.action() ) { + o << " "; + key.dump(o); + o << std::endl; + } + } +} +void G13_Profile::parse_keys(unsigned char *buf) { + buf += 3; + for (size_t i = 0; i < _keys.size(); i++) { + if ( _keys[i]._should_parse ) { + _keys[i].parse_key(buf, &_keypad); + } + } +} + +G13_Key * G13_Profile::find_key(const std::string &keyname) { + + auto key = _keypad.manager().find_g13_key_value(keyname); + if (key >= 0 && key < _keys.size()) { + return &_keys[key]; + } + return 0; +} + + + + +// ************************************************************************* + +void G13_Key::parse_key(unsigned char *byte, G13_Device *g13) { + + bool key_is_down = byte[_index.offset] & _index.mask; + bool key_state_changed = g13->update(_index.index, key_is_down); + + if (key_state_changed && _action) { + _action->act(*g13, key_is_down); + } +} + +// ************************************************************************* + +void G13_Manager::init_keynames() { + + int key_index = 0; + + // setup maps to let us convert between strings and G13 key names + #define ADD_G13_KEY_MAPPING( r, data, elem ) \ + { \ + std::string name = BOOST_PP_STRINGIZE(elem); \ + g13_key_to_name[key_index] = name; \ + g13_name_to_key[name] = key_index; \ + key_index++; \ + } \ + + BOOST_PP_SEQ_FOR_EACH(ADD_G13_KEY_MAPPING, _, G13_KEY_SEQ) + + // setup maps to let us convert between strings and linux key names + #define ADD_KB_KEY_MAPPING( r, data, elem ) \ + { \ + std::string name = BOOST_PP_STRINGIZE(elem); \ + int keyval = BOOST_PP_CAT( KEY_, elem ); \ + input_key_to_name[keyval] = name; \ + input_name_to_key[name] = keyval; \ + } \ + + + BOOST_PP_SEQ_FOR_EACH(ADD_KB_KEY_MAPPING, _, KB_INPUT_KEY_SEQ) +} + +LINUX_KEY_VALUE G13_Manager::find_g13_key_value( const std::string &keyname ) const { + auto i = g13_name_to_key.find(keyname); + if( i == g13_name_to_key.end() ) { + return BAD_KEY_VALUE; + } + return i->second; +} + + +LINUX_KEY_VALUE G13_Manager::find_input_key_value( const std::string &keyname ) const { + + // if there is a KEY_ prefix, strip it off + if(!strncmp( keyname.c_str(), "KEY_", 4) ) { + return find_input_key_value( keyname.c_str() + 4 ); + } + + auto i = input_name_to_key.find(keyname); + if( i == input_name_to_key.end() ) { + return BAD_KEY_VALUE; + } + return i->second; +} + +std::string G13_Manager::find_input_key_name( LINUX_KEY_VALUE v ) const { + try { + return find_or_throw( input_key_to_name, v ); + } + catch(...) { + return "(unknown linux key)"; + } +} + +std::string G13_Manager::find_g13_key_name( G13_KEY_INDEX v ) const { + try { + return find_or_throw( g13_key_to_name, v ); + } + catch(...) { + return "(unknown G13 key)"; + } +} + + + +void G13_Manager::display_keys() { + + typedef std::map mapType; + G13_OUT( "Known keys on G13:" ); + G13_OUT( Helper::map_keys_out( g13_name_to_key ) ); + + G13_OUT( "Known keys to map to:" ); + G13_OUT( Helper::map_keys_out( input_name_to_key) ); + +} + +} // namespace G13 + diff --git a/g13_lcd.cc b/g13_lcd.cc new file mode 100644 index 0000000..16a6cdc --- /dev/null +++ b/g13_lcd.cc @@ -0,0 +1,194 @@ +/* + pixels are mapped rather strangely for G13 buffer... + + byte 0 contains column 0 / row 0 - 7 + byte 1 contains column 1 / row 0 - 7 + + so the masks for each pixel are laid out as below (ByteOffset.PixelMask) + + 00.01 01.01 02.01 ... + 00.02 01.02 02.02 ... + 00.04 01.04 02.04 ... + 00.08 01.08 02.08 ... + 00.10 01.10 02.10 ... + 00.20 01.20 02.20 ... + 00.40 01.40 02.40 ... + 00.80 01.80 02.80 ... + A0.01 A1.01 A2.01 ... + */ + +#include "g13.h" +#include "logo.h" + +using namespace std; + +namespace G13 { + +void G13_Device::init_lcd() { + int error = libusb_control_transfer(handle, 0, 9, 1, 0, 0, 0, 1000); + if(error) { + G13_LOG( error, "Error when initializing lcd endpoint" ); + } +} + +void G13_Device::write_lcd( unsigned char *data, size_t size ) { + init_lcd(); + if(size != G13_LCD_BUFFER_SIZE) { + G13_LOG( error, "Invalid LCD data size " << size << ", should be " << G13_LCD_BUFFER_SIZE ); + return; + } + unsigned char buffer[G13_LCD_BUFFER_SIZE + 32]; + memset(buffer, 0, G13_LCD_BUFFER_SIZE + 32); + buffer[0] = 0x03; + memcpy(buffer + 32, data, G13_LCD_BUFFER_SIZE); + int bytes_written; + int error = libusb_interrupt_transfer(handle, LIBUSB_ENDPOINT_OUT | G13_LCD_ENDPOINT, buffer, G13_LCD_BUFFER_SIZE + 32, &bytes_written, 1000); + if(error) + G13_LOG( error, "Error when transferring image: " << error << ", " << bytes_written << " bytes written" ); +} + +void G13_Device::write_lcd_file( const string &filename ) { + filebuf *pbuf; + ifstream filestr; + size_t size; + + filestr.open(filename.c_str()); + pbuf = filestr.rdbuf(); + + size = pbuf->pubseekoff(0, ios::end, ios::in); + pbuf->pubseekpos(0, ios::in); + + char buffer[size]; + + pbuf->sgetn(buffer, size); + + filestr.close(); + write_lcd( (unsigned char *)buffer, size ); +} + +void G13_LCD::image(unsigned char *data, int size) { + _keypad.write_lcd( data, size ); +} + +G13_LCD::G13_LCD( G13_Device &keypad ) : _keypad(keypad) { + cursor_col = 0; + cursor_row = 0; + text_mode = 0; +} + +void G13_LCD::image_setpixel(unsigned row, unsigned col) { + unsigned offset = image_byte_offset(row, col); // col + (row /8 ) * BYTES_PER_ROW * 8; + unsigned char mask = 1 << ((row) & 7); + + if (offset >= G13_LCD_BUF_SIZE) { + G13_LOG( error, "bad offset " << offset << " for " << (row) << " x " << (col) ); + return; + } + + image_buf[offset] |= mask; +} + +void G13_LCD::image_clearpixel(unsigned row, unsigned col) { + + unsigned offset = image_byte_offset(row, col); // col + (row /8 ) * BYTES_PER_ROW * 8; + unsigned char mask = 1 << ((row) & 7); + + if (offset >= G13_LCD_BUF_SIZE) { + G13_LOG( error, "bad offset " << offset << " for " << (row) << " x " << (col) ); + return; + } + image_buf[offset] &= ~mask; +} + + +void G13_LCD::write_pos(int row, int col ) { + cursor_row = row; + cursor_col = col; + if( cursor_col >= G13_LCD_COLUMNS ) { + cursor_col = 0; + } + if( cursor_row >= G13_LCD_TEXT_ROWS ) { + cursor_row = 0; + } +} +void G13_LCD::write_char( char c, int row, int col ) { + if( row == -1 ) { + row = cursor_row; + col = cursor_col; + cursor_col += _keypad.current_font().width(); + if( cursor_col >= G13_LCD_COLUMNS ) { + cursor_col = 0; + if( ++cursor_row >= G13_LCD_TEXT_ROWS ) { + cursor_row = 0; + } + } + } + + unsigned offset = image_byte_offset( row*G13_LCD_TEXT_CHEIGHT, col ); //*_keypad._current_font->_width ); + if( text_mode ) { + memcpy( & image_buf[offset], &_keypad.current_font().char_data(c).bits_inverted, _keypad.current_font().width() ); + } else { + memcpy( & image_buf[offset], &_keypad.current_font().char_data(c).bits_regular, _keypad.current_font().width() ); + } +} + +void G13_LCD::write_string( const char *str ) { + G13_LOG( info, "writing \"" << str << "\"" ); + while( *str ) { + if( *str == '\n' ) { + cursor_col = 0; + if( ++cursor_row >= G13_LCD_TEXT_ROWS ) { + cursor_row = 0; + } + } else if( *str == '\t' ) { + cursor_col += 4 - (cursor_col % 4) ; + if( ++cursor_col >= G13_LCD_COLUMNS ) { + cursor_col = 0; + if( ++cursor_row >= G13_LCD_TEXT_ROWS ) { + cursor_row = 0; + } + } + } else { + write_char(*str); + } + ++str; + } + image_send(); +} + +void G13_LCD::image_test( int x, int y ) { + + int row = 0, col = 0; + if( y >= 0 ) { + image_setpixel( x, y ); + } else { + image_clear(); + switch( x ) { + case 1: + for( row = 0; row < G13_LCD_ROWS; ++row ) { + col = row; + image_setpixel( row, col ); + image_setpixel( row, G13_LCD_COLUMNS-col ); + } + break; + + case 2: + default: + for( row = 0; row < G13_LCD_ROWS; ++row ) { + col = row; + image_setpixel( row, 8 ); + image_setpixel( row, G13_LCD_COLUMNS - 8 ); + image_setpixel( row, G13_LCD_COLUMNS / 2 ); + image_setpixel( row, col ); + image_setpixel( row, G13_LCD_COLUMNS-col ); + } + break; + + } + } + image_send(); +} + + +} // namespace G13 + diff --git a/g13_log.cc b/g13_log.cc new file mode 100644 index 0000000..c5b8634 --- /dev/null +++ b/g13_log.cc @@ -0,0 +1,48 @@ +#include "g13.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +namespace G13 { + + +void G13_Manager::set_log_level( ::boost::log::trivial::severity_level lvl ) { + boost::log::core::get()->set_filter + ( + ::boost::log::trivial::severity >= lvl + ); + G13_OUT( "set log level to " << lvl ); +} + +void G13_Manager::set_log_level( const std::string &level ) { + + #define CHECK_LEVEL( L ) \ + if( level == BOOST_PP_STRINGIZE(L) ) { \ + set_log_level( ::boost::log::trivial::L ); \ + return; \ + } \ + + CHECK_LEVEL( trace ); + CHECK_LEVEL( debug ); + CHECK_LEVEL( info ); + CHECK_LEVEL( warning ); + CHECK_LEVEL( error ); + CHECK_LEVEL( fatal ); + + G13_LOG( error, "unknown log level" << level ); +} + +} // namespace G13 + + diff --git a/g13_main.cc b/g13_main.cc new file mode 100644 index 0000000..6aa7bf2 --- /dev/null +++ b/g13_main.cc @@ -0,0 +1,70 @@ +#include "g13.h" + +#include +#if 0 +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +using namespace std; +using namespace G13; +namespace po = boost::program_options; + +int main(int argc, char *argv[]) { + + G13_Manager manager; + manager.set_log_level("info"); + + // Declare the supported options. + po::options_description desc("Allowed options"); + desc.add_options() + ("help", "produce help message") + ; + std::vector sopt_names; + auto add_string_option = [ &sopt_names, &desc ]( const char *name, const char *description ) { + desc.add_options()( name, po::value(), description ); + sopt_names.push_back(name); + }; + add_string_option( "logo", "set logo from file" ); + add_string_option( "config", "load config commands from file" ); + add_string_option( "pipe_in", "specify name for input pipe" ); + add_string_option( "pipe_out", "specify name for output pipe" ); + add_string_option( "log_level", "logging level" ); + // add_string_option( "logfile", "write log to logfile" ); + + po::positional_options_description p; + p.add("logo", -1); + po::variables_map vm; + po::store(po::command_line_parser(argc, argv). + options(desc).positional(p).run(), vm); + po::notify(vm); + + if (vm.count("help")) { + cout << argv[0] << " : user space G13 driver" << endl; + cout << desc << "\n"; + return 1; + } + + BOOST_FOREACH( const std::string &tag, sopt_names ) { + if (vm.count(tag) ) { + manager.set_string_config_value(tag,vm[tag].as()); + } + } + + if (vm.count("logo")) { + manager.set_logo(vm["logo"].as()); + } + + if (vm.count("log_level")) { + manager.set_log_level( manager.string_config_value( "log_level") ); + } + + manager.run(); +} + diff --git a/g13_stick.cc b/g13_stick.cc new file mode 100644 index 0000000..6638178 --- /dev/null +++ b/g13_stick.cc @@ -0,0 +1,180 @@ +/* This file contains code for managing keys and profiles + * + */ +#include "g13.h" + + +using namespace std; + +namespace G13 { + + +// ************************************************************************* + +void G13_Device::parse_joystick(unsigned char *buf ) { + _stick.parse_joystick(buf); +} + +G13_Stick::G13_Stick( G13_Device &keypad ) : + _keypad(keypad), + _bounds(0,0,255,255), + _center_pos(127,127), + _north_pos( 127, 0 ) +{ + _stick_mode = STICK_KEYS; + + auto add_zone = [this, &keypad]( const std::string &name, double x1, double y1, double x2, double y2 ) { + _zones.push_back( G13_StickZone( *this, "STICK_"+name, + G13_ZoneBounds( x1, y1, x2, y2 ), + G13_ActionPtr( + new G13_Action_Keys( keypad, "KEY_" + name ) ) + ) + ); + }; + + add_zone( "UP", 0.0, 0.1, 1.0, 0.3 ); + add_zone( "DOWN", 0.0, 0.7, 1.0, 0.9 ); + add_zone( "LEFT", 0.0, 0.0, 0.2, 1.0 ); + add_zone( "RIGHT", 0.8, 0.0, 1.0, 1.0 ); + add_zone( "PAGEUP", 0.0, 0.0, 1.0, 0.1 ); + add_zone( "PAGEDOWN", 0.0, 0.9, 1.0, 1.0 ); + +} + +G13_StickZone *G13_Stick::zone( const std::string &name, bool create ) { + + BOOST_FOREACH( G13_StickZone &zone, _zones ) { + if( zone.name() == name ) { + return &zone; + } + } + if( create ) { + _zones.push_back( G13_StickZone( *this, name, G13_ZoneBounds( 0.0, 0.0, 0.0, 0.0 ) ) ); + return zone(name); + } + return 0; +} + +void G13_Stick::set_mode( stick_mode_t m ) { + if( m == _stick_mode ) + return; + if( _stick_mode == STICK_CALCENTER || _stick_mode == STICK_CALBOUNDS || _stick_mode == STICK_CALNORTH ) { + _recalc_calibrated(); + } + _stick_mode = m; + switch( _stick_mode ) { + case STICK_CALBOUNDS: + _bounds.tl = G13_StickCoord( 255, 255 ); + _bounds.br = G13_StickCoord( 0, 0 ); + break; + } +} + +void G13_Stick::_recalc_calibrated() { +} + +void G13_Stick::remove_zone( const G13_StickZone &zone ) { + G13_StickZone target(zone); + _zones.erase(std::remove(_zones.begin(), _zones.end(), target), _zones.end()); + +} +void G13_Stick::dump( std::ostream &out ) const { + BOOST_FOREACH( const G13_StickZone &zone, _zones ) { + zone.dump( out ); + out << endl; + } +} + +void G13_StickZone::dump( std::ostream & out ) const { + out << " " << setw(20) << name() << " " << _bounds << " "; + if( action() ) { + action()->dump( out ); + } else { + out << " (no action)"; + } +} + +void G13_StickZone::test( const G13_ZoneCoord &loc ) { + if( !_action ) return; + bool prior_active = _active; + _active = _bounds.contains( loc ); + if( !_active ) { + if( prior_active ) { + // cout << "exit stick zone " << _name << std::endl; + _action->act( false ); + } + } else { + // cout << "in stick zone " << _name << std::endl; + _action->act( true ); + } +} + +G13_StickZone::G13_StickZone( G13_Stick &stick, const std::string &name, const G13_ZoneBounds &b, G13_ActionPtr action) : + G13_Actionable( stick, name ), _bounds(b), _active(false) +{ + set_action( action ); + +} + +void G13_Stick::parse_joystick(unsigned char *buf) { + + _current_pos.x = buf[1]; + _current_pos.y = buf[2]; + + // update targets if we're in calibration mode + switch (_stick_mode) { + + case STICK_CALCENTER: + _center_pos = _current_pos; + return; + + case STICK_CALNORTH: + _north_pos = _current_pos; + return; + + case STICK_CALBOUNDS: + _bounds.expand( _current_pos ); + return; + }; + + // determine our normalized position + double dx = 0.5; + if (_current_pos.x <= _center_pos.x) { + dx = _current_pos.x - _bounds.tl.x; + dx /= (_center_pos.x - _bounds.tl.x) * 2; + } else { + dx = _bounds.br.x - _current_pos.x; + dx /= (_bounds.br.x - _center_pos.x ) * 2; + dx = 1.0 - dx; + } + double dy = 0.5; + if (_current_pos.y <= _center_pos.y) { + dy = _current_pos.y - _bounds.tl.y; + dy /= (_center_pos.y - _bounds.tl.y) * 2; + } else { + dy = _bounds.br.y - _current_pos.y; + dy /= (_bounds.br.y -_center_pos.y ) * 2; + dy = 1.0 - dy; + } + + G13_LOG( trace, "x=" << _current_pos.x << " y=" << _current_pos.y << " dx=" << dx << " dy=" << dy ); + G13_ZoneCoord jpos(dx, dy); + if (_stick_mode == STICK_ABSOLUTE) { + _keypad.send_event( EV_ABS, ABS_X, _current_pos.x ); + _keypad.send_event( EV_ABS, ABS_Y, _current_pos.y ); + + } else if (_stick_mode == STICK_KEYS) { + + BOOST_FOREACH( G13_StickZone &zone, _zones ) { + zone.test(jpos); + } + return; + + } else { + /* send_event(g13->uinput_file, EV_REL, REL_X, stick_x/16 - 8); + send_event(g13->uinput_file, EV_REL, REL_Y, stick_y/16 - 8);*/ + } +} + +} // namespace G13 + diff --git a/g13_test.py b/g13_test.py new file mode 100755 index 0000000..5b9b402 --- /dev/null +++ b/g13_test.py @@ -0,0 +1,41 @@ +#!/usr/bin/python2.7 +import subprocess, re, os, time + +# simple test script to update G13 LCD with temperature values from lm-sensors + +def doCmd( *cmd ): + #print( "cmd = %r" % (cmd,) ) + p = subprocess.Popen( cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) + out, err = p.communicate() + return out #, err + +def get_sensors(): + sensor_lines = doCmd( 'sensors' ).split('\n') + print( "sensor_lines = %r" % (sensor_lines,) ) + temp_re = re.compile( r'''([a-zA-Z])[a-zA-Z s]+([0-9])\:\s*\+([0-9.]+)[\xc2\xb0C]*C.*''' ) + + temps = [] + for line in sensor_lines: + m = temp_re.match(line) + if m: + tag, index, value = m.groups() + print( "%s%s = %s" % (tag, index, value)) + #temps.append( "%s%s:%s" % (tag, index, value) ) + temps.append( "%s" % (value,) ) + # else: + # print( "failed to match %r" % (line,)) + + + with open( '/tmp/g13-0', 'w') as p: + p.write( 'pos 0 0 \n' ) + p.write( 'out %s\n' % (' '.join(temps)) ) + + +def main(): + while 1: + get_sensors() + time.sleep(1.0) + +main() + + diff --git a/hello.lpbm b/hello.lpbm new file mode 100644 index 0000000000000000000000000000000000000000..28b35b4dae0f3970931ddaae34cb07f3a425b01e GIT binary patch literal 960 zcmeH@F%H5o3`Jd8s+Wqc44jV%F*7ja036Ck=@Bw!h-zHNiBhqE#Date|F0iED+$1F z7IV3G)%J>IQERP5ZkU6*z>d6-WvoLx>nq+Dk)xG}GBIDyTG#sxz=Ex%{1~-PIo7SS zq!48uT=ygEI_Y%bQ$DDlY*mFnRH6bDMcl435&~FY%|b%WT9IQ_yAeMzen8S~Sfhsj I&DVe62_$> 4) & 0x0f); + o << "\\x" << hi << lo; + } else { + o << c; + } + } + } + cp++; + } + + o << "\""; +}; + + +}; // namespace Helper + + +// ************************************************************************* + + diff --git a/helper.hpp b/helper.hpp new file mode 100644 index 0000000..b815473 --- /dev/null +++ b/helper.hpp @@ -0,0 +1,196 @@ +/* + * helper.hpp + * + * Miscellaneous helpful little tidbits... + */ + +/* + * Copyright (c) 2015, James Fowler + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to permit + * persons to whom the Software is furnished to do so, subject to the + * following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef __HELPER_HPP__ +#define __HELPER_HPP__ + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include +#include +#include + +// ************************************************************************* + +namespace Helper { + +struct string_repr_out { + string_repr_out( const std::string &str ) : s(str) {} + void write_on( std::ostream & ) const; + + std::string s; +}; + +inline std::ostream &operator <<( std::ostream & o, const string_repr_out & sro ) { + sro.write_on( o ); + return o; +} + +template +inline const T &repr( const T &v ) { return v; } + +inline string_repr_out repr( const char *s ) { return string_repr_out(s); } +inline string_repr_out repr( const std::string & s ) { return string_repr_out(s); } + +// ************************************************************************* + +class NotFoundException : public std::exception { +public: + + const char *what() throw (); +}; + +template +inline const VAL_T &find_or_throw( const std::map &m, const KEY_T &target ) { + auto i = m.find( target ); + if( i == m.end() ) { + throw NotFoundException(); + } + return i->second; +}; + +template +inline VAL_T &find_or_throw( std::map &m, const KEY_T &target ) { + auto i = m.find( target ); + if( i == m.end() ) { + throw NotFoundException(); + } + return i->second; +}; + + +// ************************************************************************* + +template +class Coord { +public: + Coord() : x(), y() {} + Coord( T _x, T _y ) : x(_x), y(_y) {} + T x; + T y; + +}; + +template +std::ostream &operator<<( std::ostream &o, const Coord &c ) { + o << "{ " << c.x << " x " << c.y << " }"; + return o; +}; + + +template +class Bounds { +public: + typedef Coord CT; + Bounds( const CT &_tl, const CT &_br) : tl(_tl), br(_br) {} + Bounds( T x1, T y1, T x2, T y2 ) : tl(x1,y1), br(x2,y2) {} + + bool contains( const CT &pos ) const { + return tl.x <= pos.x && tl.y <= pos.y && pos.x <= br.x && pos.y <= br.y; + } + + void expand( const CT &pos ) { + if( pos.x < tl.x ) tl.x = pos.x; + if( pos.y < tl.y ) tl.y = pos.y; + if( pos.x > br.x ) br.x = pos.x; + if( pos.y > br.y ) br.y = pos.y; + } + CT tl; + CT br; +}; + +template +std::ostream &operator<<( std::ostream &o, const Bounds &b ) { + o << "{ " << b.tl.x << " x " << b.tl.y << " / " << b.br.x << " x " << b.br.y << " }"; + return o; +}; + +// ************************************************************************* + +typedef const char * CCP; +inline const char *advance_ws(CCP &source, std::string &dest) { + const char *space = source ? strchr(source, ' ') : 0; + if (space) { + dest = std::string(source, space - source); + source = space + 1; + } else { + dest = source; + source = 0; + } + return source; +}; + +// ************************************************************************* + +template +struct _map_keys_out { + _map_keys_out( const MAP_T&c, const std::string &s ) : container(c), sep(s) {} + const MAP_T&container; + std::string sep; +}; + + +template +STREAM_T &operator <<( STREAM_T &o, const _map_keys_out &_mko ) { + bool first = true; + for( auto i = _mko.container.begin(); i != _mko.container.end(); i++ ) { + if( first ) { + first = false; + o << i->first; + } else { + o << _mko.sep << i->first; + } + } +}; + +template +_map_keys_out map_keys_out( const MAP_T &c, const std::string &sep = " " ) { + return _map_keys_out( c, sep ); +}; + +// ************************************************************************* + +}; // namespace Helper + + +// ************************************************************************* + + +#endif // __HELPER_HPP__ diff --git a/hon.bind b/hon.bind new file mode 100644 index 0000000..71bf0d7 --- /dev/null +++ b/hon.bind @@ -0,0 +1,7 @@ +bind G12 KEY_U +bind G11 KEY_E +bind G10 KEY_O + + +bind G9 KEY_A +bind G13 KEY_H diff --git a/logo.h b/logo.h new file mode 100644 index 0000000..1da6a50 --- /dev/null +++ b/logo.h @@ -0,0 +1,66 @@ +#ifndef G13_LOGO_H +#define G13_LOGO_H +static unsigned char g13_logo[160*48/8] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf8, 0x78, 0x78, 0x7c, 0x3c, 0x3c, 0x3e, 0x3e, 0x1e, 0x1e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, + 0xdf, 0xdf, 0x9f, 0x9f, 0x9f, 0xbe, 0x3e, 0x7e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x90, 0xe8, 0x70, 0x94, 0x28, 0x0a, 0x0c, 0x12, 0x04, + 0x06, 0x10, 0x14, 0x10, 0x10, 0x48, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, + 0x48, 0x10, 0x0c, 0x10, 0x18, 0x04, 0x18, 0x08, 0x28, 0x5c, 0x30, 0xe8, 0x90, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc0, 0xf0, 0xf8, 0x7c, 0x3e, 0x1e, 0x0f, 0x0f, 0x07, 0x03, 0x83, 0x81, 0x81, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x80, 0x00, 0xe0, 0xe0, 0x00, 0x18, 0x38, 0xf0, 0xf0, 0xf8, + 0x8b, 0x07, 0x04, 0x04, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x3e, 0x7c, 0xf8, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0x7c, 0x7c, + 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x78, 0xf8, 0xfc, 0xfc, 0xfc, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf0, 0xf8, 0xf8, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xf8, 0x78, 0x3c, 0x3c, 0x7c, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x1f, 0xff, 0xe4, 0x80, 0x80, 0x80, 0xe0, 0xd0, 0x28, + 0x34, 0x18, 0x1d, 0x1e, 0xcf, 0x0f, 0x6f, 0x0f, 0x0f, 0x87, 0x2e, 0x01, 0x01, 0x65, 0x03, 0xcf, + 0x4f, 0x0f, 0x1e, 0x1d, 0x38, 0x60, 0xd0, 0xe0, 0x80, 0xe0, 0xcb, 0xfd, 0x3f, 0x80, 0x35, 0x00, + 0xf0, 0xfe, 0xff, 0x0f, 0x03, 0x01, 0x3e, 0xfe, 0xfe, 0x00, 0x08, 0xfb, 0xfb, 0x00, 0xff, 0xff, + 0x03, 0x1f, 0xff, 0xfe, 0x0f, 0x1f, 0x1f, 0x1c, 0x1f, 0x3f, 0x98, 0x80, 0x4f, 0xe7, 0x61, 0x01, + 0x83, 0xc2, 0xfc, 0xfc, 0xfc, 0x80, 0xf0, 0xf0, 0xd0, 0xf0, 0x30, 0x00, 0x03, 0xff, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x40, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf1, 0xf3, 0xf3, 0xf0, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x18, 0x18, 0x38, 0x3e, 0xff, 0xff, 0xff, 0xf7, 0xe7, + 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x01, 0x09, 0xc3, 0x3f, 0x03, 0x00, 0x00, + 0x80, 0x80, 0x40, 0x10, 0x44, 0x00, 0x00, 0x02, 0x02, 0x03, 0x00, 0xc0, 0x01, 0x00, 0x40, 0x03, + 0x06, 0x17, 0x30, 0x40, 0x20, 0x80, 0x21, 0x03, 0x4b, 0x23, 0x01, 0x04, 0x02, 0x00, 0x00, 0x00, + 0x07, 0x7f, 0xfe, 0xe0, 0x80, 0x00, 0x00, 0x3f, 0x3f, 0x00, 0x00, 0x07, 0x03, 0x00, 0xf4, 0xfe, + 0xf4, 0x7c, 0xfc, 0xfc, 0x18, 0xfc, 0xfc, 0xf0, 0x1e, 0xbf, 0xf7, 0xe3, 0x1f, 0xff, 0xff, 0x3e, + 0x7f, 0x77, 0x39, 0x7f, 0x7f, 0x03, 0x0f, 0x0f, 0x0c, 0x0e, 0x86, 0xe0, 0xf8, 0x7f, 0x1f, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xf0, + 0xe0, 0xe0, 0xe0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xc0, 0xc0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xc0, 0xc0, 0x80, 0x00, + 0x00, 0x00, 0x18, 0x78, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x0d, 0xe1, 0x00, + 0x00, 0x07, 0x10, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x21, 0x00, 0x41, 0x41, 0x00, + 0x40, 0x00, 0x40, 0x48, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x0f, 0x1e, 0x3e, 0x7c, 0x78, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc7, 0x8f, + 0x8f, 0x80, 0x87, 0x07, 0x00, 0x00, 0x07, 0x07, 0x83, 0x83, 0x83, 0x81, 0x80, 0x80, 0xc0, 0xc0, + 0xc0, 0xe0, 0xe0, 0xf0, 0x70, 0x78, 0x3c, 0x1c, 0x0e, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x04, 0x08, 0x00, 0x00, 0x01, 0x01, 0x0e, 0x58, 0x3c, 0x38, 0xe0, 0xc0, 0xc0, 0xe2, 0xe2, 0xa2, + 0x9a, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, + 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x03, 0x01, 0x03, 0x01, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +#endif +/* G13_LOGO_H */ diff --git a/logo.lpbm b/logo.lpbm new file mode 100644 index 0000000000000000000000000000000000000000..d56fbd7e72c0d64fa4ccb4ee6ea3ed7e5778c398 GIT binary patch literal 960 zcmb_av2N5r5Z(1!@qvz83nAemu`i;z3S9w`ku2MhC{ChCOF~rq0axy`tssy~m3!&SWj%_=f2Y#GuB~e9436ies9JUfgd7gn?i&okiD}V+$ zbXx-QX`Mk-U2Cl>#s!IC8{x; z(YR?y=j@Ca!vfRrAXp8O*JAVVF)cq~Wu<0nNSHA-rmxK$6r8l}NBulLRtiPHTs?Pi zrPTAn80gc(kD?_kn_l^xFqn==-TQ=C79*09l&#zxrhT!_9^9g~1))ySz_dt`fXT>7 za{}A+>RS09PQM4n#Kp6FMZq}l_Fh!F2p}UNj0Z)5O*AkMxD#j=0MrDG7JWb^r2xju zbUV>@S4F}x3c)Pv+Bc}`_EU5_?mF4nfD=wfLu~8 +#include +#include +#include +using namespace std; +// convert a .pbm raw file to our custom .lpbm format + +int main(int argc, char *argv[]) { + unsigned char c; + const int LEN = 256; + char s[LEN]; + cin.getline(s,LEN); + if(strncmp(s,"P4",2)) { + cerr << "input file is not .pbm (P4)" << endl; + return -1; + } + cin.getline(s,LEN); + while(s[0] == '#' || s[0] == ' ') + cin.getline(s,LEN); + unsigned int w=0, h=0; + if(std::sscanf(s,"%d %d", &w, &h) != 2) { + cerr << "height and width not found" << endl; + return -1; + } + if(w != 160 || h != 43) { + cerr << "incorrect width / height, mandated: 160x43, found: " << w << "x" << h << endl; + return -1; + } + cin >> noskipws; + int i = 0, row = -1; + unsigned char buf[160*48]; + memset(buf, 0, 160*43); + while(cin >> c) { + if(i%20 == 0) + row++; + if(row == 8) + row = 0; + buf[7+(i%20)*8+i/160*160] |= ((c >> 0) & 0x01) << row; + buf[6+(i%20)*8+i/160*160] |= ((c >> 1) & 0x01) << row; + buf[5+(i%20)*8+i/160*160] |= ((c >> 2) & 0x01) << row; + buf[4+(i%20)*8+i/160*160] |= ((c >> 3) & 0x01) << row; + buf[3+(i%20)*8+i/160*160] |= ((c >> 4) & 0x01) << row; + buf[2+(i%20)*8+i/160*160] |= ((c >> 5) & 0x01) << row; + buf[1+(i%20)*8+i/160*160] |= ((c >> 6) & 0x01) << row; + buf[0+(i%20)*8+i/160*160] |= ((c >> 7) & 0x01) << row; + i++; + } + if(i != 160*43/8) { + cerr << "wrong number of bytes, expected " << 160*43/8 << ", got " << i << endl; + } + for(int i = 0; i < 160*48/8;i++) { + cout << hex << (char)buf[i]; + } +} diff --git a/spring.bind b/spring.bind new file mode 100644 index 0000000..5b84269 --- /dev/null +++ b/spring.bind @@ -0,0 +1,13 @@ +bind G15 KEY_LEFTSHIFT +bind G19 KEY_LEFTCTRL +bind G22 KEY_LEFTALT +bind G1 KEY_1 +bind G2 KEY_2 +bind G3 KEY_3 +bind G8 KEY_F3 +bind G9 KEY_F4 +bind G10 KEY_F5 +bind STICK_LEFT KEY_LEFT +bind STICK_RIGHT KEY_RIGHT +bind STICK_UP KEY_UP +bind STICK_DOWN KEY_DOWN diff --git a/starcraft.lpbm b/starcraft.lpbm new file mode 100644 index 0000000000000000000000000000000000000000..33fc2612b8f5dc1116eb74d5a271ac49ec6e5ccb GIT binary patch literal 960 zcmdTZ9OVt(rtn?-x{RCHku6#5fZgyNXh#=?P9gOO~Xx7BdPq zjGag5r* z9gp6^)n1&wk5$)mFo_4