application_controller_impl.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef FUCHSIA_WEB_RUNNERS_CAST_APPLICATION_CONTROLLER_IMPL_H_
  5. #define FUCHSIA_WEB_RUNNERS_CAST_APPLICATION_CONTROLLER_IMPL_H_
  6. #include <fuchsia/diagnostics/cpp/fidl.h>
  7. #include <fuchsia/media/sessions2/cpp/fidl.h>
  8. #include <fuchsia/web/cpp/fidl.h>
  9. #include <lib/fidl/cpp/binding.h>
  10. #include <lib/fidl/cpp/interface_request.h>
  11. #include "fuchsia_web/runners/cast/fidl/fidl/chromium/cast/cpp/fidl.h"
  12. class ApplicationControllerImpl final
  13. : public chromium::cast::ApplicationController {
  14. public:
  15. ApplicationControllerImpl(fuchsia::web::Frame* frame,
  16. chromium::cast::ApplicationContext* context);
  17. ApplicationControllerImpl(const ApplicationControllerImpl&) = delete;
  18. ApplicationControllerImpl& operator=(const ApplicationControllerImpl&) =
  19. delete;
  20. ~ApplicationControllerImpl() override;
  21. protected:
  22. // chromium::cast::ApplicationController implementation.
  23. void SetTouchInputEnabled(bool enable) override;
  24. void GetMediaPlayer(
  25. ::fidl::InterfaceRequest<fuchsia::media::sessions2::Player> request)
  26. override;
  27. void SetBlockMediaLoading(bool blocked) override;
  28. void GetPrivateMemorySize(GetPrivateMemorySizeCallback callback) override;
  29. private:
  30. fidl::Binding<chromium::cast::ApplicationController> binding_;
  31. fuchsia::web::Frame* const frame_;
  32. };
  33. #endif // FUCHSIA_WEB_RUNNERS_CAST_APPLICATION_CONTROLLER_IMPL_H_