1 #ifndef __BROADWAY_H__
2 #define __BROADWAY_H__
3 
4 #include <glib.h>
5 #include <gio/gio.h>
6 #include "broadway-protocol.h"
7 #include "broadway-server.h"
8 
9 typedef struct BroadwayOutput BroadwayOutput;
10 
11 typedef enum {
12   BROADWAY_WS_CONTINUATION = 0,
13   BROADWAY_WS_TEXT = 1,
14   BROADWAY_WS_BINARY = 2,
15   BROADWAY_WS_CNX_CLOSE = 8,
16   BROADWAY_WS_CNX_PING = 9,
17   BROADWAY_WS_CNX_PONG = 0xa
18 } BroadwayWSOpCode;
19 
20 BroadwayOutput *broadway_output_new                 (GOutputStream  *out,
21                                                      guint32         serial);
22 void            broadway_output_free                (BroadwayOutput *output);
23 int             broadway_output_flush               (BroadwayOutput *output);
24 int             broadway_output_has_error           (BroadwayOutput *output);
25 void            broadway_output_set_next_serial     (BroadwayOutput *output,
26                                                      guint32         serial);
27 guint32         broadway_output_get_next_serial     (BroadwayOutput *output);
28 void            broadway_output_new_surface         (BroadwayOutput *output,
29                                                      int             id,
30                                                      int             x,
31                                                      int             y,
32                                                      int             w,
33                                                      int             h);
34 void            broadway_output_disconnected        (BroadwayOutput *output);
35 void            broadway_output_show_surface        (BroadwayOutput *output,
36                                                      int             id);
37 void            broadway_output_hide_surface        (BroadwayOutput *output,
38                                                      int             id);
39 void            broadway_output_raise_surface       (BroadwayOutput *output,
40                                                      int             id);
41 void            broadway_output_lower_surface       (BroadwayOutput *output,
42                                                      int             id);
43 void            broadway_output_destroy_surface     (BroadwayOutput *output,
44                                                      int             id);
45 void            broadway_output_roundtrip           (BroadwayOutput *output,
46                                                      int             id,
47                                                      guint32         tag);
48 void            broadway_output_move_resize_surface (BroadwayOutput *output,
49                                                      int             id,
50                                                      gboolean        has_pos,
51                                                      int             x,
52                                                      int             y,
53                                                      gboolean        has_size,
54                                                      int             w,
55                                                      int             h);
56 void            broadway_output_set_transient_for   (BroadwayOutput *output,
57                                                      int             id,
58                                                      int             parent_id);
59 void            broadway_output_surface_set_nodes   (BroadwayOutput *output,
60                                                      int             id,
61                                                      BroadwayNode   *root,
62                                                      BroadwayNode   *old_root,
63                                                      GHashTable     *old_node_lookup);
64 void            broadway_output_upload_texture      (BroadwayOutput *output,
65                                                      guint32         id,
66                                                      GBytes         *texture);
67 void            broadway_output_release_texture     (BroadwayOutput *output,
68                                                      guint32         id);
69 void            broadway_output_grab_pointer        (BroadwayOutput *output,
70                                                      int             id,
71                                                      gboolean        owner_event);
72 guint32         broadway_output_ungrab_pointer      (BroadwayOutput *output);
73 void            broadway_output_pong                (BroadwayOutput *output);
74 void            broadway_output_set_show_keyboard   (BroadwayOutput *output,
75                                                      gboolean        show);
76 
77 #endif /* __BROADWAY_H__ */
78