media_session_service_impl.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2018 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 SERVICES_MEDIA_SESSION_MEDIA_SESSION_SERVICE_IMPL_H_
  5. #define SERVICES_MEDIA_SESSION_MEDIA_SESSION_SERVICE_IMPL_H_
  6. #include <memory>
  7. #include "mojo/public/cpp/bindings/pending_receiver.h"
  8. #include "mojo/public/cpp/bindings/receiver.h"
  9. #include "services/media_session/public/cpp/media_session_service.h"
  10. namespace media_session {
  11. class AudioFocusManager;
  12. class MediaSessionServiceImpl : public MediaSessionService {
  13. public:
  14. MediaSessionServiceImpl();
  15. ~MediaSessionServiceImpl() override;
  16. MediaSessionServiceImpl(const MediaSessionServiceImpl&) = delete;
  17. MediaSessionServiceImpl& operator=(const MediaSessionServiceImpl&) = delete;
  18. // MediaSessionService implementation:
  19. void BindAudioFocusManager(
  20. mojo::PendingReceiver<mojom::AudioFocusManager> receiver) override;
  21. void BindAudioFocusManagerDebug(
  22. mojo::PendingReceiver<mojom::AudioFocusManagerDebug> receiver) override;
  23. void BindMediaControllerManager(
  24. mojo::PendingReceiver<mojom::MediaControllerManager> receiver) override;
  25. const AudioFocusManager& audio_focus_manager_for_testing() const {
  26. return *audio_focus_manager_.get();
  27. }
  28. private:
  29. std::unique_ptr<AudioFocusManager> audio_focus_manager_;
  30. };
  31. } // namespace media_session
  32. #endif // SERVICES_MEDIA_SESSION_MEDIA_SESSION_SERVICE_IMPL_H_