chromium/chromecast/common/media/cast_media_drm_bridge_client.h

// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROMECAST_COMMON_MEDIA_CAST_MEDIA_DRM_BRIDGE_CLIENT_H_
#define CHROMECAST_COMMON_MEDIA_CAST_MEDIA_DRM_BRIDGE_CLIENT_H_

#include "chromecast/chromecast_buildflags.h"
#include "chromecast/media/cdm/playready_drm_delegate_android.h"
#include "components/cdm/common/widevine_drm_delegate_android.h"
#include "media/base/android/media_drm_bridge_client.h"

namespace chromecast {
namespace media {

class CastMediaDrmBridgeClient : public ::media::MediaDrmBridgeClient {
 public:
  CastMediaDrmBridgeClient();

  CastMediaDrmBridgeClient(const CastMediaDrmBridgeClient&) = delete;
  CastMediaDrmBridgeClient& operator=(const CastMediaDrmBridgeClient&) = delete;

  ~CastMediaDrmBridgeClient() override;

 private:
  // ::media::MediaDrmBridgeClient implementation:
  void AddKeySystemUUIDMappings(KeySystemUuidMap* map) override;
  ::media::MediaDrmBridgeDelegate* GetMediaDrmBridgeDelegate(
      const ::media::UUID& scheme_uuid) override;

#if BUILDFLAG(ENABLE_PLAYREADY)
  PlayreadyDrmDelegateAndroid playready_delegate_;
#endif  // BUILDFLAG(ENABLE_PLAYREADY)

  cdm::WidevineDrmDelegateAndroid widevine_delegate_;
};

}  // namespace media
}  // namespace chromecast

#endif  // CHROMECAST_COMMON_MEDIA_CAST_MEDIA_DRM_BRIDGE_CLIENT_H_