blob: fe25ae136cbf2dfdb4c54634c77ded77bed296b3 [file] [log] [blame]
Jeff Tinkerc0d5f1f2013-04-02 13:08:05 -07001/*
2 * Copyright (C) 2013 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef ANDROID_IDRMCLIENT_H
18#define ANDROID_IDRMCLIENT_H
19
20#include <utils/RefBase.h>
Robert Shih61e1c762019-10-31 21:26:58 -070021#include <hidl/HidlSupport.h>
Robert Shiha54e81f2019-08-02 14:15:01 -070022#include <media/drm/DrmAPI.h>
Robert Shih61e1c762019-10-31 21:26:58 -070023
24#include <cstdint>
25#include <vector>
26
Jeff Tinkerc0d5f1f2013-04-02 13:08:05 -070027namespace android {
28
Robert Shih61e1c762019-10-31 21:26:58 -070029struct DrmKeyStatus {
30 const uint32_t type;
31 const hardware::hidl_vec<uint8_t> keyId;
32};
33
Robert Shiha54e81f2019-08-02 14:15:01 -070034class IDrmClient: public virtual RefBase
Jeff Tinkerc0d5f1f2013-04-02 13:08:05 -070035{
36public:
Robert Shiha54e81f2019-08-02 14:15:01 -070037 ~IDrmClient() {}
Jeff Tinkerc0d5f1f2013-04-02 13:08:05 -070038
Robert Shih61e1c762019-10-31 21:26:58 -070039 virtual void sendEvent(
40 DrmPlugin::EventType eventType,
41 const hardware::hidl_vec<uint8_t> &sessionId,
42 const hardware::hidl_vec<uint8_t> &data) = 0;
43
44 virtual void sendExpirationUpdate(
45 const hardware::hidl_vec<uint8_t> &sessionId,
46 int64_t expiryTimeInMS) = 0;
47
48 virtual void sendKeysChange(
49 const hardware::hidl_vec<uint8_t> &sessionId,
50 const std::vector<DrmKeyStatus> &keyStatusList,
51 bool hasNewUsableKey) = 0;
52
53 virtual void sendSessionLostState(
54 const hardware::hidl_vec<uint8_t> &sessionId) = 0;
55
Robert Shiha54e81f2019-08-02 14:15:01 -070056protected:
57 IDrmClient() {}
Jeff Tinkerc0d5f1f2013-04-02 13:08:05 -070058
Robert Shiha54e81f2019-08-02 14:15:01 -070059private:
60 DISALLOW_EVIL_CONSTRUCTORS(IDrmClient);
Jeff Tinkerc0d5f1f2013-04-02 13:08:05 -070061};
62
63}; // namespace android
64
65#endif // ANDROID_IDRMCLIENT_H