status_t BpDrmManagerService::getAllSupportInfo( int uniqueId, int* length, DrmSupportInfo** drmSupportInfoArray) { LOGV("Get All Support Info"); Parcel data, reply; data.writeInterfaceToken(IDrmManagerService::getInterfaceDescriptor()); data.writeInt32(uniqueId); remote()->transact(GET_ALL_SUPPORT_INFO, data, &reply); //Filling DRM Support Info const int arraySize = reply.readInt32(); if (0 < arraySize) { *drmSupportInfoArray = new DrmSupportInfo[arraySize]; for (int index = 0; index < arraySize; ++index) { DrmSupportInfo drmSupportInfo; const int fileSuffixVectorSize = reply.readInt32(); for (int i = 0; i < fileSuffixVectorSize; ++i) { drmSupportInfo.addFileSuffix(reply.readString8()); } const int mimeTypeVectorSize = reply.readInt32(); for (int i = 0; i < mimeTypeVectorSize; ++i) { drmSupportInfo.addMimeType(reply.readString8()); } drmSupportInfo.setDescription(reply.readString8()); (*drmSupportInfoArray)[index] = drmSupportInfo; } } *length = arraySize; return reply.readInt32(); }
DrmSupportInfo* DrmPassthruPlugIn::onGetSupportInfo(int uniqueId) { ALOGV("DrmPassthruPlugIn::onGetSupportInfo : %d", uniqueId); DrmSupportInfo* drmSupportInfo = new DrmSupportInfo(); // Add mimetype's drmSupportInfo->addMimeType(String8("application/vnd.passthru.drm")); // Add File Suffixes drmSupportInfo->addFileSuffix(String8(".passthru")); // Add plug-in description drmSupportInfo->setDescription(String8("Passthru plug-in")); return drmSupportInfo; }