| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROMECAST_BROWSER_MEDIA_CAST_BROWSER_CDM_FACTORY_H_ |
| #define CHROMECAST_BROWSER_MEDIA_CAST_BROWSER_CDM_FACTORY_H_ |
| |
| #include "chromecast/media/base/key_systems_common.h" |
| #include "media/base/browser_cdm.h" |
| #include "media/base/browser_cdm_factory.h" |
| |
| namespace chromecast { |
| namespace media { |
| |
| class CastBrowserCdmFactory : public ::media::BrowserCdmFactory { |
| public: |
| CastBrowserCdmFactory() {} |
| ~CastBrowserCdmFactory() override {}; |
| |
| // ::media::BrowserCdmFactory implementation: |
| scoped_ptr< ::media::BrowserCdm> CreateBrowserCdm( |
| const std::string& key_system, |
| const ::media::SessionMessageCB& session_message_cb, |
| const ::media::SessionClosedCB& session_closed_cb, |
| const ::media::SessionErrorCB& session_error_cb, |
| const ::media::SessionKeysChangeCB& session_keys_change_cb, |
| const ::media::SessionExpirationUpdateCB& |
| session_expiration_update_cb) override; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(CastBrowserCdmFactory); |
| }; |
| |
| // Allow platform-specific CDMs to be provided. |
| scoped_ptr< ::media::BrowserCdm> CreatePlatformBrowserCdm( |
| const CastKeySystem& key_system, |
| const ::media::SessionMessageCB& session_message_cb, |
| const ::media::SessionClosedCB& session_closed_cb, |
| const ::media::SessionErrorCB& session_error_cb, |
| const ::media::SessionKeysChangeCB& session_keys_change_cb, |
| const ::media::SessionExpirationUpdateCB& session_expiration_update_cb); |
| |
| } // namespace media |
| } // namespace chromecast |
| |
| #endif // CHROMECAST_BROWSER_MEDIA_CAST_BROWSER_CDM_FACTORY_H_ |