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 __DRM_INFO_EVENT_H__ 1827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#define __DRM_INFO_EVENT_H__ 1927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshinamespace android { 2127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiclass String8; 2327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi/** 2527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * This is an entity class which would be passed to caller in 2627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * DrmManagerClient::OnInfoListener::onInfo(const DrmInfoEvent&). 2727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 2827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiclass DrmInfoEvent { 2927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 302272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi /** 312272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi * The following constant values should be in sync with DrmInfoEvent.java 322272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi */ 3327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! TYPE_ALREADY_REGISTERED_BY_ANOTHER_ACCOUNT, when registration has been 3427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! already done by another account ID. 352272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_ALREADY_REGISTERED_BY_ANOTHER_ACCOUNT = 1; 3627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! TYPE_REMOVE_RIGHTS, when the rights needs to be removed completely. 372272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_REMOVE_RIGHTS = 2; 3827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! TYPE_RIGHTS_INSTALLED, when the rights are downloaded and installed ok. 392272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_RIGHTS_INSTALLED = 3; 402272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi //! TYPE_WAIT_FOR_RIGHTS, rights object is on it's way to phone, 412272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi //! wait before calling checkRights again 422272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_WAIT_FOR_RIGHTS = 4; 432272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi //! TYPE_ACCOUNT_ALREADY_REGISTERED, when registration has been 442272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi //! already done for the given account. 452272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_ACCOUNT_ALREADY_REGISTERED = 5; 46505bd99ec8bed47c438ac3bb4641ce5f7ba972e7Gloria Wang //! TYPE_RIGHTS_REMOVED, when the rights has been removed. 47505bd99ec8bed47c438ac3bb4641ce5f7ba972e7Gloria Wang static const int TYPE_RIGHTS_REMOVED = 6; 482272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi 492272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi /** 502272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi * The following constant values should be in sync with DrmErrorEvent.java 512272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi */ 5227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! TYPE_RIGHTS_NOT_INSTALLED, when something went wrong installing the rights 532272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_RIGHTS_NOT_INSTALLED = 2001; 5427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! TYPE_RIGHTS_RENEWAL_NOT_ALLOWED, when the server rejects renewal of rights 552272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_RIGHTS_RENEWAL_NOT_ALLOWED = 2002; 5627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! TYPE_NOT_SUPPORTED, when answer from server can not be handled by the native agent 572272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_NOT_SUPPORTED = 2003; 5827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! TYPE_OUT_OF_MEMORY, when memory allocation fail during renewal. 5927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! Can in the future perhaps be used to trigger garbage collector 602272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_OUT_OF_MEMORY = 2004; 6127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! TYPE_NO_INTERNET_CONNECTION, when the Internet connection is missing and no attempt 6227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi //! can be made to renew rights 632272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi static const int TYPE_NO_INTERNET_CONNECTION = 2005; 64e943f84129326ab885cc7a69dcfa17f766b72b89Takeshi Aimi //! TYPE_PROCESS_DRM_INFO_FAILED, when failed to process DrmInfo. 65e943f84129326ab885cc7a69dcfa17f766b72b89Takeshi Aimi static const int TYPE_PROCESS_DRM_INFO_FAILED = 2006; 66505bd99ec8bed47c438ac3bb4641ce5f7ba972e7Gloria Wang //! TYPE_REMOVE_ALL_RIGHTS_FAILED, when failed to remove all the rights objects 67505bd99ec8bed47c438ac3bb4641ce5f7ba972e7Gloria Wang //! associated with all DRM schemes. 68505bd99ec8bed47c438ac3bb4641ce5f7ba972e7Gloria Wang static const int TYPE_REMOVE_ALL_RIGHTS_FAILED = 2007; 69505bd99ec8bed47c438ac3bb4641ce5f7ba972e7Gloria Wang //! TYPE_ACQUIRE_DRM_INFO_FAILED, when failed to acquire DrmInfo. 70505bd99ec8bed47c438ac3bb4641ce5f7ba972e7Gloria Wang static const int TYPE_ACQUIRE_DRM_INFO_FAILED = 2008; 7127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 7227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 7327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 7427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Constructor for DrmInfoEvent 7527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 7627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] uniqueId Unique session identifier 7727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] infoType Type of information 7827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @param[in] message Message description 7927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 8079cbc13ede26d08ab6633a042843a9d154c3c166Gloria Wang DrmInfoEvent(int uniqueId, int infoType, const String8 message); 8127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 8227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 8327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Destructor for DrmInfoEvent 8427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 8527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi virtual ~DrmInfoEvent() {} 8627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 8727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic: 8827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 8927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Returns the Unique Id associated with this instance 9027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 9127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @return Unique Id 9227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 9327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi int getUniqueId() const; 9427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 9527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 9627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Returns the Type of information associated with this object 9727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 9827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @return Type of information 9927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 10027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi int getType() const; 10127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 10227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi /** 10327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * Returns the message description associated with this object 10427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * 10527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * @return Message description 10627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */ 10779cbc13ede26d08ab6633a042843a9d154c3c166Gloria Wang const String8 getMessage() const; 10827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 10927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiprivate: 11027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi int mUniqueId; 11127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi int mInfoType; 11279cbc13ede26d08ab6633a042843a9d154c3c166Gloria Wang const String8 mMessage; 11327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi}; 11427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 11527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi}; 11627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 11727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#endif /* __DRM_INFO_EVENT_H__ */ 11827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 119