1a69729dc76b97c44387088d351480d5d0701517eJeff Tinker/*
2a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**
3a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** Copyright 2008, The Android Open Source Project
4a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**
5a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** Licensed under the Apache License, Version 2.0 (the "License");
6a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** you may not use this file except in compliance with the License.
7a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** You may obtain a copy of the License at
8a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**
9a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**     http://www.apache.org/licenses/LICENSE-2.0
10a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**
11a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** Unless required by applicable law or agreed to in writing, software
12a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** distributed under the License is distributed on an "AS IS" BASIS,
13a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** See the License for the specific language governing permissions and
15a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** limitations under the License.
16a69729dc76b97c44387088d351480d5d0701517eJeff Tinker*/
17a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
18a69729dc76b97c44387088d351480d5d0701517eJeff Tinker// Proxy for media player implementations
19a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
20a69729dc76b97c44387088d351480d5d0701517eJeff Tinker//#define LOG_NDEBUG 0
21a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#define LOG_TAG "MediaDrmService"
22a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
23a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include "MediaDrmService.h"
243003807fcfa96c9cbfea18d643f47108aa116cd5Jeff Tinker#include <binder/IServiceManager.h>
25a53d6553fce1818bdf87833f93633c93ad1b5915Jeff Tinker#include <utils/Log.h>
26a53d6553fce1818bdf87833f93633c93ad1b5915Jeff Tinker
27f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker#ifdef DISABLE_TREBLE_DRM
283003807fcfa96c9cbfea18d643f47108aa116cd5Jeff Tinker#include <media/Crypto.h>
293003807fcfa96c9cbfea18d643f47108aa116cd5Jeff Tinker#include <media/Drm.h>
30f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker#else
31f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker#include <media/CryptoHal.h>
32f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker#include <media/DrmHal.h>
33a53d6553fce1818bdf87833f93633c93ad1b5915Jeff Tinker#endif
34a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
35a69729dc76b97c44387088d351480d5d0701517eJeff Tinkernamespace android {
36a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
37a69729dc76b97c44387088d351480d5d0701517eJeff Tinkervoid MediaDrmService::instantiate() {
38a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    defaultServiceManager()->addService(
39a69729dc76b97c44387088d351480d5d0701517eJeff Tinker            String16("media.drm"), new MediaDrmService());
40a69729dc76b97c44387088d351480d5d0701517eJeff Tinker}
41a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
42a69729dc76b97c44387088d351480d5d0701517eJeff Tinkersp<ICrypto> MediaDrmService::makeCrypto() {
43f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker#ifdef DISABLE_TREBLE_DRM
44a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    return new Crypto;
45f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker#else
46f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker    return new CryptoHal;
47a53d6553fce1818bdf87833f93633c93ad1b5915Jeff Tinker#endif
48a69729dc76b97c44387088d351480d5d0701517eJeff Tinker}
49a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
50a69729dc76b97c44387088d351480d5d0701517eJeff Tinkersp<IDrm> MediaDrmService::makeDrm() {
51f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker#ifdef DISABLE_TREBLE_DRM
52a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    return new Drm;
53f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker#else
54f3a591cc9d604133e2c5cae3d34322b52cd7575dJeff Tinker    return new DrmHal;
55a53d6553fce1818bdf87833f93633c93ad1b5915Jeff Tinker#endif
56a69729dc76b97c44387088d351480d5d0701517eJeff Tinker}
57a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
58a69729dc76b97c44387088d351480d5d0701517eJeff Tinker} // namespace android
59