X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fconsole%2Fconsoled.h;fp=src%2Fconsole%2Fconsoled.h;h=0000000000000000000000000000000000000000;hb=0b99fcebe4a5ccfa23c846ed02c75e9d13172e8b;hp=f85c1a07917e07c2d5c1cfdbc110140fcd326b54;hpb=2c559b9acfa3426cd5cddd787d27518dac1f0871;p=elogind.git diff --git a/src/console/consoled.h b/src/console/consoled.h deleted file mode 100644 index f85c1a079..000000000 --- a/src/console/consoled.h +++ /dev/null @@ -1,164 +0,0 @@ -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ - -#pragma once - -/*** - This file is part of systemd. - - Copyright 2014 David Herrmann - - systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - systemd is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with systemd; If not, see . -***/ - -#include "grdev.h" -#include "idev.h" -#include "list.h" -#include "macro.h" -#include "pty.h" -#include "sd-bus.h" -#include "sd-event.h" -#include "sysview.h" -#include "term.h" -#include "unifont.h" - -typedef struct Manager Manager; -typedef struct Session Session; -typedef struct Display Display; -typedef struct Workspace Workspace; -typedef struct Terminal Terminal; - -/* - * Terminals - */ - -struct Terminal { - Workspace *workspace; - LIST_FIELDS(Terminal, terminals_by_workspace); - - term_utf8 utf8; - term_parser *parser; - term_screen *screen; - Pty *pty; -}; - -int terminal_new(Terminal **out, Workspace *w); -Terminal *terminal_free(Terminal *t); - -DEFINE_TRIVIAL_CLEANUP_FUNC(Terminal*, terminal_free); - -void terminal_resize(Terminal *t); -void terminal_run(Terminal *t); -void terminal_feed(Terminal *t, idev_data *data); -bool terminal_draw(Terminal *t, const grdev_display_target *target); - -/* - * Workspaces - */ - -struct Workspace { - unsigned long ref; - Manager *manager; - LIST_FIELDS(Workspace, workspaces_by_manager); - - LIST_HEAD(Terminal, terminal_list); - Terminal *current; - - LIST_HEAD(Session, session_list); - uint32_t width; - uint32_t height; -}; - -int workspace_new(Workspace **out, Manager *m); -Workspace *workspace_ref(Workspace *w); -Workspace *workspace_unref(Workspace *w); - -DEFINE_TRIVIAL_CLEANUP_FUNC(Workspace*, workspace_unref); - -Workspace *workspace_attach(Workspace *w, Session *s); -Workspace *workspace_detach(Workspace *w, Session *s); -void workspace_refresh(Workspace *w); - -void workspace_dirty(Workspace *w); -void workspace_feed(Workspace *w, idev_data *data); -bool workspace_draw(Workspace *w, const grdev_display_target *target); - -/* - * Displays - */ - -struct Display { - Session *session; - LIST_FIELDS(Display, displays_by_session); - grdev_display *grdev; - uint32_t width; - uint32_t height; -}; - -int display_new(Display **out, Session *s, grdev_display *grdev); -Display *display_free(Display *d); - -DEFINE_TRIVIAL_CLEANUP_FUNC(Display*, display_free); - -void display_refresh(Display *d); -void display_render(Display *d, Workspace *w); - -/* - * Sessions - */ - -struct Session { - Manager *manager; - sysview_session *sysview; - grdev_session *grdev; - idev_session *idev; - - LIST_FIELDS(Session, sessions_by_workspace); - Workspace *my_ws; - Workspace *active_ws; - - LIST_HEAD(Display, display_list); - sd_event_source *redraw_src; -}; - -int session_new(Session **out, Manager *m, sysview_session *session); -Session *session_free(Session *s); - -DEFINE_TRIVIAL_CLEANUP_FUNC(Session*, session_free); - -void session_dirty(Session *s); - -void session_add_device(Session *s, sysview_device *device); -void session_remove_device(Session *s, sysview_device *device); -void session_refresh_device(Session *s, sysview_device *device, struct udev_device *ud); - -/* - * Managers - */ - -struct Manager { - sd_event *event; - sd_bus *sysbus; - unifont *uf; - sysview_context *sysview; - grdev_context *grdev; - idev_context *idev; - LIST_HEAD(Workspace, workspace_list); -}; - -int manager_new(Manager **out); -Manager *manager_free(Manager *m); - -DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free); - -int manager_run(Manager *m);