1a69729dc76b97c44387088d351480d5d0701517eJeff Tinker/*
2a69729dc76b97c44387088d351480d5d0701517eJeff Tinker * Copyright (C) 2015 The Android Open Source Project
3a69729dc76b97c44387088d351480d5d0701517eJeff Tinker *
4a69729dc76b97c44387088d351480d5d0701517eJeff Tinker * Licensed under the Apache License, Version 2.0 (the "License");
5a69729dc76b97c44387088d351480d5d0701517eJeff Tinker * you may not use this file except in compliance with the License.
6a69729dc76b97c44387088d351480d5d0701517eJeff Tinker * You may obtain a copy of the License at
7a69729dc76b97c44387088d351480d5d0701517eJeff Tinker *
8a69729dc76b97c44387088d351480d5d0701517eJeff Tinker *      http://www.apache.org/licenses/LICENSE-2.0
9a69729dc76b97c44387088d351480d5d0701517eJeff Tinker *
10a69729dc76b97c44387088d351480d5d0701517eJeff Tinker * Unless required by applicable law or agreed to in writing, software
11a69729dc76b97c44387088d351480d5d0701517eJeff Tinker * distributed under the License is distributed on an "AS IS" BASIS,
12a69729dc76b97c44387088d351480d5d0701517eJeff Tinker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a69729dc76b97c44387088d351480d5d0701517eJeff Tinker * See the License for the specific language governing permissions and
14a69729dc76b97c44387088d351480d5d0701517eJeff Tinker * limitations under the License.
15a69729dc76b97c44387088d351480d5d0701517eJeff Tinker */
16a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
17a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#ifndef ANDROID_IMEDIADRMSERVICE_H
18a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#define ANDROID_IMEDIADRMSERVICE_H
19a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
20a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <utils/Errors.h>  // for status_t
21a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <utils/RefBase.h>
22a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <utils/String8.h>
23a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <binder/IInterface.h>
24a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <binder/Parcel.h>
25a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
26a69729dc76b97c44387088d351480d5d0701517eJeff Tinkernamespace android {
27a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
28a69729dc76b97c44387088d351480d5d0701517eJeff Tinkerstruct ICrypto;
29a69729dc76b97c44387088d351480d5d0701517eJeff Tinkerstruct IDrm;
30a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
31a69729dc76b97c44387088d351480d5d0701517eJeff Tinkerclass IMediaDrmService: public IInterface
32a69729dc76b97c44387088d351480d5d0701517eJeff Tinker{
33a69729dc76b97c44387088d351480d5d0701517eJeff Tinkerpublic:
34a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    DECLARE_META_INTERFACE(MediaDrmService);
35a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
36a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    virtual sp<ICrypto>         makeCrypto() = 0;
37a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    virtual sp<IDrm>            makeDrm() = 0;
38a69729dc76b97c44387088d351480d5d0701517eJeff Tinker};
39a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
40a69729dc76b97c44387088d351480d5d0701517eJeff Tinker// ----------------------------------------------------------------------------
41a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
42a69729dc76b97c44387088d351480d5d0701517eJeff Tinkerclass BnMediaDrmService: public BnInterface<IMediaDrmService>
43a69729dc76b97c44387088d351480d5d0701517eJeff Tinker{
44a69729dc76b97c44387088d351480d5d0701517eJeff Tinkerpublic:
45a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    virtual status_t    onTransact( uint32_t code,
46a69729dc76b97c44387088d351480d5d0701517eJeff Tinker                                    const Parcel& data,
47a69729dc76b97c44387088d351480d5d0701517eJeff Tinker                                    Parcel* reply,
48a69729dc76b97c44387088d351480d5d0701517eJeff Tinker                                    uint32_t flags = 0);
49a69729dc76b97c44387088d351480d5d0701517eJeff Tinker};
50a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
51a69729dc76b97c44387088d351480d5d0701517eJeff Tinker}; // namespace android
52a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
53a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#endif // ANDROID_IMEDIADRMSERVICE_H
54