DrmInfoStatus.h revision e943f84129326ab885cc7a69dcfa17f766b72b89
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_STATUS_H__
1827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#define __DRM_INFO_STATUS_H__
1927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
2027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#include "drm_framework_common.h"
2127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
2227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshinamespace android {
2327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
2427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi/**
2527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * This is an utility class which wraps the result of communication between device
2627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * and online DRM server.
2727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi *
2827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * As a result of DrmManagerClient::processDrmInfo(const DrmInfo*) an instance of
2927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * DrmInfoStatus would be returned. This class holds DrmBuffer which could be
3027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi * used to instantiate DrmRights in license acquisition.
3127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi *
3227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi */
3327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiclass DrmInfoStatus {
3427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic:
3527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    // Should be in sync with DrmInfoStatus.java
3627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    static const int STATUS_OK = 1;
3727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    static const int STATUS_ERROR = 2;
3827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
3927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic:
4027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    /**
4127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi     * Constructor for DrmInfoStatus
4227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi     *
4327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi     * @param[in] _statusCode Status of the communication
44e943f84129326ab885cc7a69dcfa17f766b72b89Takeshi Aimi     * @param[in] _infoType Type of the DRM information processed
4527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi     * @param[in] _drmBuffer Rights information
4627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi     * @param[in] _mimeType MIME type
4727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi     */
48e943f84129326ab885cc7a69dcfa17f766b72b89Takeshi Aimi    DrmInfoStatus(int _statusCode, int _infoType, const DrmBuffer* _drmBuffer, const String8& _mimeType);
4927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
5027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    /**
5127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi     * Destructor for DrmInfoStatus
5227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi     */
5327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    virtual ~DrmInfoStatus() {
5427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
5527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    }
5627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
5727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshipublic:
5827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    int statusCode;
59e943f84129326ab885cc7a69dcfa17f766b72b89Takeshi Aimi    int infoType;
6027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    const DrmBuffer* drmBuffer;
6127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi    String8 mimeType;
6227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi};
6327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
6427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi};
6527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
6627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi#endif /* __DRM_INFO_STATUS_H__ */
6727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi
68