#pragma once

#include <windows.h>

namespace nativetouch {
    struct NativeTouchEvent {
        DWORD id;
        LONG x;
        LONG y;
        bool down;
        bool move;
        bool up;
        bool synthetic;
    };

    using TouchInputFilter = bool (*)(const NativeTouchEvent &event);

    bool hook(HMODULE module);
    void refresh_contact_lifetime();
    void set_input_filter(TouchInputFilter filter);

    // true once hook() has installed the native touch stack for the current game;
    // such games consume touch through the GetTouchInputInfo hook rather than spicetouch
    bool is_hooked();
}
 