rootston: break up input.h

This commit is contained in:
Tony Crisci 2017-11-02 20:13:10 -04:00
parent 80b4a2f64c
commit 53021f8ed4
12 changed files with 93 additions and 52 deletions

View File

@ -1,6 +1,5 @@
#ifndef _ROOTSTON_INPUT_H
#define _ROOTSTON_INPUT_H
#include <xkbcommon/xkbcommon.h>
#include <wayland-server.h>
#include <wlr/types/wlr_input_device.h>
#include <wlr/types/wlr_cursor.h>
@ -10,41 +9,6 @@
#include "rootston/view.h"
#include "rootston/server.h"
#define ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP 32
struct roots_keyboard {
struct roots_input *input;
struct wlr_input_device *device;
struct wl_listener key;
struct wl_listener modifiers;
struct wl_list link;
xkb_keysym_t pressed_keysyms[ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP];
};
struct roots_pointer {
struct roots_input *input;
struct wlr_input_device *device;
struct wl_list link;
};
struct roots_touch {
struct roots_input *input;
struct wlr_input_device *device;
struct wl_list link;
};
// TODO: tablet pad
struct roots_tablet_tool {
struct roots_input *input;
struct wlr_input_device *device;
struct wl_listener axis;
struct wl_listener proximity;
struct wl_listener tip;
struct wl_listener button;
struct wl_list link;
};
enum roots_cursor_mode {
ROOTS_CURSOR_PASSTHROUGH = 0,
ROOTS_CURSOR_MOVE = 1,
@ -77,13 +41,6 @@ struct roots_drag_icon {
struct wl_listener surface_commit;
};
struct roots_touch_point {
struct roots_touch *device;
int32_t slot;
double x, y;
struct wl_list link;
};
struct roots_input {
struct roots_config *config;
struct roots_server *server;
@ -138,15 +95,6 @@ struct roots_input *input_create(struct roots_server *server,
struct roots_config *config);
void input_destroy(struct roots_input *input);
void pointer_add(struct wlr_input_device *device, struct roots_input *input);
void pointer_remove(struct wlr_input_device *device, struct roots_input *input);
void keyboard_add(struct wlr_input_device *device, struct roots_input *input);
void keyboard_remove(struct wlr_input_device *device, struct roots_input *input);
void touch_add(struct wlr_input_device *device, struct roots_input *input);
void touch_remove(struct wlr_input_device *device, struct roots_input *input);
void tablet_tool_add(struct wlr_input_device *device, struct roots_input *input);
void tablet_tool_remove(struct wlr_input_device *device, struct roots_input *input);
void cursor_initialize(struct roots_input *input);
void cursor_load_config(struct roots_config *config,
struct wlr_cursor *cursor,

View File

@ -0,0 +1,22 @@
#ifndef _ROOTSTON_KEYBOARD_H
#define _ROOTSTON_KEYBOARD_H
#include <xkbcommon/xkbcommon.h>
#include "rootston/input.h"
#define ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP 32
struct roots_keyboard {
struct roots_input *input;
struct wlr_input_device *device;
struct wl_listener key;
struct wl_listener modifiers;
struct wl_list link;
xkb_keysym_t pressed_keysyms[ROOTS_KEYBOARD_PRESSED_KEYSYMS_CAP];
};
void keyboard_add(struct wlr_input_device *device, struct roots_input *input);
void keyboard_remove(struct wlr_input_device *device, struct roots_input *input);
#endif

View File

@ -0,0 +1,16 @@
#ifndef _ROOTSTON_POINTER_H
#define _ROOTSTON_POINTER_H
#include <wayland-server.h>
#include <wlr/types/wlr_input_device.h>
struct roots_pointer {
struct roots_input *input;
struct wlr_input_device *device;
struct wl_list link;
};
void pointer_add(struct wlr_input_device *device, struct roots_input *input);
void pointer_remove(struct wlr_input_device *device, struct roots_input *input);
#endif

View File

@ -0,0 +1,20 @@
#ifndef _ROOTSTON_TABLET_TOOL_H
#define _ROOTSTON_TABLET_TOOL_H
#include <wayland-server.h>
#include "rootston/input.h"
struct roots_tablet_tool {
struct roots_input *input;
struct wlr_input_device *device;
struct wl_listener axis;
struct wl_listener proximity;
struct wl_listener tip;
struct wl_listener button;
struct wl_list link;
};
void tablet_tool_add(struct wlr_input_device *device, struct roots_input *input);
void tablet_tool_remove(struct wlr_input_device *device, struct roots_input *input);
#endif

22
include/rootston/touch.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef _ROOTSTON_TOUCH_H
#define _ROOTSTON_TOUCH_H
#include <wayland-server.h>
struct roots_touch {
struct roots_input *input;
struct wlr_input_device *device;
struct wl_list link;
};
struct roots_touch_point {
struct roots_touch *device;
int32_t slot;
double x, y;
struct wl_list link;
};
void touch_add(struct wlr_input_device *device, struct roots_input *input);
void touch_remove(struct wlr_input_device *device, struct roots_input *input);
#endif

View File

@ -13,6 +13,7 @@
#include <wlr/types/wlr_box.h>
#include "rootston/config.h"
#include "rootston/input.h"
#include "rootston/keyboard.h"
#include "rootston/ini.h"
static void usage(const char *name, int ret) {

View File

@ -18,6 +18,10 @@
#include "rootston/input.h"
#include "rootston/desktop.h"
#include "rootston/view.h"
#include "rootston/keyboard.h"
#include "rootston/pointer.h"
#include "rootston/tablet_tool.h"
#include "rootston/touch.h"
const struct roots_input_event *get_input_event(struct roots_input *input,
uint32_t serial) {

View File

@ -8,6 +8,10 @@
#include "rootston/server.h"
#include "rootston/config.h"
#include "rootston/input.h"
#include "rootston/tablet_tool.h"
#include "rootston/keyboard.h"
#include "rootston/pointer.h"
#include "rootston/touch.h"
static const char *device_type(enum wlr_input_device_type type) {
switch (type) {

View File

@ -10,6 +10,7 @@
#include <wlr/util/log.h>
#include <xkbcommon/xkbcommon.h>
#include "rootston/input.h"
#include "rootston/keyboard.h"
static ssize_t keyboard_pressed_keysym_index(struct roots_keyboard *keyboard,
xkb_keysym_t keysym) {

View File

@ -3,6 +3,7 @@
#include <wlr/types/wlr_input_device.h>
#include <wlr/types/wlr_pointer.h>
#include "rootston/input.h"
#include "rootston/pointer.h"
void pointer_add(struct wlr_input_device *device, struct roots_input *input) {
struct roots_pointer *pointer = calloc(sizeof(struct roots_pointer), 1);

View File

@ -4,6 +4,7 @@
#include <wlr/types/wlr_pointer.h>
#include <wlr/util/log.h>
#include "rootston/input.h"
#include "rootston/tablet_tool.h"
void tablet_tool_add(struct wlr_input_device *device, struct roots_input *input) {
struct roots_tablet_tool *tool = calloc(sizeof(struct roots_tablet_tool), 1);

View File

@ -3,6 +3,7 @@
#include <wlr/types/wlr_input_device.h>
#include <wlr/types/wlr_pointer.h>
#include "rootston/input.h"
#include "rootston/touch.h"
// TODO: we'll likely want touch events to both control the cursor *and* be
// submitted directly to the seat.