127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi/* 227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Copyright (C) 2010 The Android Open Source Project 327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Licensed under the Apache License, Version 2.0 (the "License"); 527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * you may not use this file except in compliance with the License. 627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * You may obtain a copy of the License at 727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * http://www.apache.org/licenses/LICENSE-2.0 927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 1027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Unless required by applicable law or agreed to in writing, software 1127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * distributed under the License is distributed on an "AS IS" BASIS, 1227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * See the License for the specific language governing permissions and 1427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * limitations under the License. 1527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 1627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 1727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#ifndef __IDRM_SERVICE_LISTENER_H__ 1827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#define __IDRM_SERVICE_LISTENER_H__ 1927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#include <utils/RefBase.h> 2127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#include <binder/IInterface.h> 2227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#include <binder/Parcel.h> 2327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshinamespace android { 2527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiclass DrmInfoEvent; 2727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi/** 2927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * This is the interface class for DRM service listener. 3027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 3127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 3227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiclass IDrmServiceListener : public IInterface 3327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi{ 3427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 3527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi enum { 3627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi NOTIFY = IBinder::FIRST_CALL_TRANSACTION, 3727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi }; 3827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 3927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 4027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi DECLARE_META_INTERFACE(DrmServiceListener); 4127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 4227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 4327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi virtual status_t notify(const DrmInfoEvent& event) = 0; 4427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi}; 4527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 4627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi/** 4727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * This is the Binder implementation class for DRM service listener. 4827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 4927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiclass BpDrmServiceListener: public BpInterface<IDrmServiceListener> 5027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi{ 5127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 5227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi BpDrmServiceListener(const sp<IBinder>& impl) 5327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi : BpInterface<IDrmServiceListener>(impl) {} 5427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 5527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi virtual status_t notify(const DrmInfoEvent& event); 5627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi}; 5727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 5827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi/** 5927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * This is the Binder implementation class for DRM service listener. 6027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 6127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiclass BnDrmServiceListener: public BnInterface<IDrmServiceListener> 6227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi{ 6327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 6427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi virtual status_t onTransact( 6527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0); 6627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi}; 6727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 6827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi}; 6927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 7027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#endif /* __IDRM_SERVICE_LISTENER_H__ */ 7127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 72