#include "remoting/host/desktop_resizer.h"
#include <memory>
#include "base/notreached.h"
#if defined(REMOTING_USE_X11)
#include "remoting/host/desktop_resizer_x11.h"
#include "remoting/host/linux/desktop_resizer_wayland.h"
#include "remoting/host/linux/wayland_utils.h"
#endif
namespace remoting {
namespace {
class DesktopResizerLinux : public DesktopResizer {
public:
DesktopResizerLinux() = default;
DesktopResizerLinux(const DesktopResizerLinux&) = delete;
DesktopResizerLinux& operator=(const DesktopResizerLinux&) = delete;
~DesktopResizerLinux() override = default;
ScreenResolution GetCurrentResolution(webrtc::ScreenId screen_id) override {
NOTIMPLEMENTED();
return ScreenResolution();
}
std::list<ScreenResolution> GetSupportedResolutions(
const ScreenResolution& preferred,
webrtc::ScreenId screen_id) override {
NOTIMPLEMENTED();
return std::list<ScreenResolution>();
}
void SetResolution(const ScreenResolution& resolution,
webrtc::ScreenId screen_id) override {
NOTIMPLEMENTED();
}
void RestoreResolution(const ScreenResolution& original,
webrtc::ScreenId screen_id) override {
NOTIMPLEMENTED();
}
void SetVideoLayout(const protocol::VideoLayout& layout) override {
NOTIMPLEMENTED();
}
};
}
std::unique_ptr<DesktopResizer> DesktopResizer::Create() {
#if defined(REMOTING_USE_X11)
if (IsRunningWayland()) {
return std::make_unique<DesktopResizerWayland>();
}
return std::make_unique<DesktopResizerX11>();
#elif BUILDFLAG(IS_CHROMEOS)
return std::make_unique<DesktopResizerLinux>();
#else
#error "Invalid config detected."
#endif
}
}