1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3 
4 typedef struct Button Button;
5 
6 #include "logind.h"
7 
8 struct Button {
9         Manager *manager;
10 
11         sd_event_source *io_event_source;
12         sd_event_source *check_event_source;
13 
14         char *name;
15         char *seat;
16         int fd;
17 
18         bool lid_closed;
19         bool docked;
20 };
21 
22 Button* button_new(Manager *m, const char *name);
23 void button_free(Button *b);
24 int button_open(Button *b);
25 int button_set_seat(Button *b, const char *sn);
26 int button_check_switches(Button *b);
27