1d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi/* 2d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * Copyright (C) 2010 The Android Open Source Project 3d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * 4d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * Licensed under the Apache License, Version 2.0 (the "License"); 5d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * you may not use this file except in compliance with the License. 6d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * You may obtain a copy of the License at 7d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * 8d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * http://www.apache.org/licenses/LICENSE-2.0 9d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * 10d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * Unless required by applicable law or agreed to in writing, software 11d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * distributed under the License is distributed on an "AS IS" BASIS, 12d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * See the License for the specific language governing permissions and 14d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * limitations under the License. 15d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi */ 16d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 17d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi#ifndef __IDRM_SERVICE_LISTENER_H__ 18d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi#define __IDRM_SERVICE_LISTENER_H__ 19d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 20d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi#include <utils/RefBase.h> 21d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi#include <binder/IInterface.h> 22d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi#include <binder/Parcel.h> 23d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 24d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshinamespace android { 25d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 26d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiclass DrmInfoEvent; 27d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 28d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi/** 29d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * This is the interface class for DRM service listener. 30d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * 31d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi */ 32d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiclass IDrmServiceListener : public IInterface 33d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi{ 34d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshipublic: 35d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi enum { 36d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi NOTIFY = IBinder::FIRST_CALL_TRANSACTION, 37d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi }; 38d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 39d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshipublic: 40d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi DECLARE_META_INTERFACE(DrmServiceListener); 41d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 42d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshipublic: 43d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi virtual status_t notify(const DrmInfoEvent& event) = 0; 44d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi}; 45d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 46d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi/** 47d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * This is the Binder implementation class for DRM service listener. 48d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi */ 49d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiclass BpDrmServiceListener: public BpInterface<IDrmServiceListener> 50d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi{ 51d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshipublic: 52d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi BpDrmServiceListener(const sp<IBinder>& impl) 53d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi : BpInterface<IDrmServiceListener>(impl) {} 54d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 55d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi virtual status_t notify(const DrmInfoEvent& event); 56d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi}; 57d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 58d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi/** 59d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi * This is the Binder implementation class for DRM service listener. 60d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi */ 61d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshiclass BnDrmServiceListener: public BnInterface<IDrmServiceListener> 62d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi{ 63d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshipublic: 64d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi virtual status_t onTransact( 65d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0); 66d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi}; 67d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 68d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi}; 69d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 70d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi#endif /* __IDRM_SERVICE_LISTENER_H__ */ 71d074e30ce44b9e33da43b67a4515b8986ca72b26aimitakeshi 72