#include "modules/video_capture/linux/camera_portal.h"
#include <gio/gio.h>
#include <gio/gunixfdlist.h>
#include "modules/portal/pipewire_utils.h"
#include "modules/portal/xdg_desktop_portal_utils.h"
#include "rtc_base/synchronization/mutex.h"
namespace webrtc {
RequestResponse;
RequestResponseFromPortalResponse;
RequestSessionProxy;
constexpr char kCameraInterfaceName[] = …;
class CameraPortalPrivate { … };
CameraPortalPrivate::CameraPortalPrivate(CameraPortal::PortalNotifier* notifier)
: … { … }
CameraPortalPrivate::~CameraPortalPrivate() { … }
void CameraPortalPrivate::Start() { … }
void CameraPortalPrivate::OnProxyRequested(GObject* gobject,
GAsyncResult* result,
gpointer user_data) { … }
void CameraPortalPrivate::ProxyRequested(GDBusProxy* proxy) { … }
void CameraPortalPrivate::OnAccessResponse(GDBusProxy* proxy,
GAsyncResult* result,
gpointer user_data) { … }
void CameraPortalPrivate::OnResponseSignalEmitted(GDBusConnection* connection,
const char* sender_name,
const char* object_path,
const char* interface_name,
const char* signal_name,
GVariant* parameters,
gpointer user_data) { … }
void CameraPortalPrivate::OnOpenResponse(GDBusProxy* proxy,
GAsyncResult* result,
gpointer user_data) { … }
void CameraPortalPrivate::OnPortalDone(RequestResponse result, int fd) { … }
CameraPortal::CameraPortal(PortalNotifier* notifier)
: … { … }
CameraPortal::~CameraPortal() { … }
void CameraPortal::Start() { … }
}