chromium/chrome/browser/media/webrtc/chrome_screen_enumerator.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 CHROME_BROWSER_MEDIA_WEBRTC_CHROME_SCREEN_ENUMERATOR_H_
#define CHROME_BROWSER_MEDIA_WEBRTC_CHROME_SCREEN_ENUMERATOR_H_

#include <memory>
#include <optional>
#include <vector>

#include "base/functional/callback.h"
#include "build/buildflag.h"
#include "build/chromeos_buildflags.h"
#include "media/capture/content/screen_enumerator.h"
#include "third_party/blink/public/mojom/mediastream/media_stream.mojom-forward.h"

#if BUILDFLAG(IS_CHROMEOS_ASH)
namespace aura {
class Window;
}

#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
namespace webrtc {
class DesktopCapturer;
}

#endif

// Whereas ScreenEnumerator is exposed in content/,
// the current concrete implementation uses elements
// from chrome/browser/.
class ChromeScreenEnumerator : public media::ScreenEnumerator {};

#endif  // CHROME_BROWSER_MEDIA_WEBRTC_CHROME_SCREEN_ENUMERATOR_H_