chromium/remoting/host/linux/remote_desktop_portal_injector.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef REMOTING_HOST_LINUX_REMOTE_DESKTOP_PORTAL_INJECTOR_H_
#define REMOTING_HOST_LINUX_REMOTE_DESKTOP_PORTAL_INJECTOR_H_

#include <gio/gio.h>

#include <memory>
#include <string>

#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/sequence_checker.h"
#include "remoting/host/linux/ei_event_watcher_glib.h"
#include "third_party/libei/cipd/include/libei.h"
#include "third_party/webrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.h"
#include "third_party/webrtc/modules/desktop_capture/linux/wayland/screencast_portal.h"
#include "third_party/webrtc/modules/portal/xdg_desktop_portal_utils.h"
#include "third_party/webrtc/modules/portal/xdg_session_details.h"

namespace remoting::xdg_portal {

struct DeviceRegion {};

// This class is used by the `ChromotingInputThread` to inject input into the
// wayland remote host using XDG desktop portal APIs.
class RemoteDesktopPortalInjector : public EiEventWatcherGlib::EiEventHandler {};

}  // namespace remoting::xdg_portal

#endif  // REMOTING_HOST_LINUX_REMOTE_DESKTOP_PORTAL_INJECTOR_H_