/* * daytime.c: a simple network service based on lwIP and mini-os * * Tim Deegan , July 2007 */ #include #include #include #include #include static char message[29]; void run_server(void *p) { struct ip_addr listenaddr = { 0 }; struct netconn *listener; struct netconn *session; struct timeval tv; err_t rc; start_networking(); if (0) { struct ip_addr ipaddr = { htonl(0x0a000001) }; struct ip_addr netmask = { htonl(0xff000000) }; struct ip_addr gw = { 0 }; networking_set_addr(&ipaddr, &netmask, &gw); } tprintk("Opening connection\n"); listener = netconn_new(NETCONN_TCP); tprintk("Connection at %p\n", listener); rc = netconn_bind(listener, &listenaddr, 13); if (rc != ERR_OK) { tprintk("Failed to bind connection: %i\n", rc); return; } rc = netconn_listen(listener); if (rc != ERR_OK) { tprintk("Failed to listen on connection: %i\n", rc); return; } while (1) { session = netconn_accept(listener); if (session == NULL) continue; gettimeofday(&tv, NULL); sprintf(message, "%20lu.%6.6lu\n", tv.tv_sec, tv.tv_usec); (void) netconn_write(session, message, strlen(message), NETCONN_COPY); (void) netconn_disconnect(session); (void) netconn_delete(session); } } int app_main(start_info_t *si) { create_thread("server", run_server, NULL); return 0; } antum/process_keycode/process_unicode.c?id=4ca65bb6c6cc525b1cb65c5e2d3db73c00e111f9'>treecommitdiffstats
blob: fd008eca127a609673fabd9278f79e6b3e19b83e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* Copyright 2016 Jack Humbert
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#include "process_unicode.h"
#include "action_util.h"
#include "eeprom.h"

static uint8_t first_flag = 0;

bool process_unicode(uint16_t keycode, keyrecord_t *record) {
  if (keycode > QK_UNICODE && record->event.pressed) {
    if (first_flag == 0) {
      set_unicode_input_mode(eeprom_read_byte(EECONFIG_UNICODEMODE));
      first_flag = 1;
    }
    uint16_t unicode = keycode & 0x7FFF;
    unicode_input_start();
    register_hex(unicode);
    unicode_input_finish();
  }
  return true;
}