void End()
{
	if(Logged_in==1) Detach();
	
	// clear the lists...
	clear_mods();
	clear_admin();
	
	// close the socket
	close(sock);
}
void End()
{
	if(Logged_in==1) Detach();
	// Clean up global vars, free in-use pointers
	
	// clear the lists...
	clear_mods();
	clear_admin();
	
	// close the socket
	closesocket(sock);
}
Beispiel #3
0
void action_macro_play(const macro_t *macro_p)
{
    macro_t macro = END;
    uint8_t interval = 0;

    uint8_t mod_storage = 0;

    if (!macro_p) return;
    while (true) {
        switch (MACRO_READ()) {
            case KEY_DOWN:
                MACRO_READ();
                dprintf("KEY_DOWN(%02X)\n", macro);
                if (IS_MOD(macro)) {
                    add_weak_mods(MOD_BIT(macro));
                    send_keyboard_report();
                } else {
                    register_code(macro);
                }
                break;
            case KEY_UP:
                MACRO_READ();
                dprintf("KEY_UP(%02X)\n", macro);
                if (IS_MOD(macro)) {
                    del_weak_mods(MOD_BIT(macro));
                    send_keyboard_report();
                } else {
                    unregister_code(macro);
                }
                break;
            case WAIT:
                MACRO_READ();
                dprintf("WAIT(%u)\n", macro);
                { uint8_t ms = macro; while (ms--) wait_ms(1); }
                break;
            case INTERVAL:
                interval = MACRO_READ();
                dprintf("INTERVAL(%u)\n", interval);
                break;
            case MOD_STORE:
                mod_storage = get_mods();
                break;
            case MOD_RESTORE:
                set_mods(mod_storage);
                send_keyboard_report();
                break;
            case MOD_CLEAR:
                clear_mods();
                send_keyboard_report();
                break;
            case 0x04 ... 0x73:
                dprintf("DOWN(%02X)\n", macro);
                register_code(macro);
                break;
            case 0x84 ... 0xF3:
                dprintf("UP(%02X)\n", macro);
                unregister_code(macro&0x7F);
                break;
            case END:
            default:
                return;
        }
        // interval
        { uint8_t ms = interval; while (ms--) wait_ms(1); }
    }
}