summaryrefslogtreecommitdiff
path: root/src/xcb_connection.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/xcb_connection.cc')
-rw-r--r--src/xcb_connection.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/xcb_connection.cc b/src/xcb_connection.cc
new file mode 100644
index 0000000..66a5a1a
--- /dev/null
+++ b/src/xcb_connection.cc
@@ -0,0 +1,26 @@
+#include "common.hh"
+
+#include "xcb_connection.hh"
+
+namespace xcb {
+
+shared_conn make_shared_conn(xcb_connection_t* conn) {
+ return std::shared_ptr<xcb_connection_t>(
+ conn, internal::xcb_connection_deleter());
+}
+
+unique_conn make_unique_conn(xcb_connection_t* conn) {
+ return unique_conn(conn);
+}
+
+xcb_screen_t* get_screen(xcb_connection_t* conn, int screen_index) {
+ auto iter = xcb_setup_roots_iterator(xcb_get_setup(conn));
+ for (; iter.rem; --screen_index, xcb_screen_next(&iter)) {
+ if (screen_index == 0) {
+ return iter.data;
+ }
+ }
+ return nullptr;
+}
+
+} // namespace xcb