1231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu/* 2231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * Copyright 2015 The Android Open Source Project 3231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * 4231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * Licensed under the Apache License, Version 2.0 (the "License"); 5231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * you may not use this file except in compliance with the License. 6231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * You may obtain a copy of the License at 7231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * 8231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * http://www.apache.org/licenses/LICENSE-2.0 9231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * 10231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * Unless required by applicable law or agreed to in writing, software 11231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * distributed under the License is distributed on an "AS IS" BASIS, 12231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * See the License for the specific language governing permissions and 14231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu * limitations under the License. 15231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu */ 16231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 17231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 18231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#ifndef ANDROID_MEDIA_RESOURCE_H 19231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#define ANDROID_MEDIA_RESOURCE_H 20231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 21231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <binder/Parcel.h> 22231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#include <utils/String8.h> 23231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 24231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wunamespace android { 25231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 26231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wuclass MediaResource { 27231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wupublic: 28ea15fd29af81490311af9e12949b43524c39400eRonghua Wu enum Type { 29ea15fd29af81490311af9e12949b43524c39400eRonghua Wu kUnspecified = 0, 30ea15fd29af81490311af9e12949b43524c39400eRonghua Wu kSecureCodec, 31ea15fd29af81490311af9e12949b43524c39400eRonghua Wu kNonSecureCodec, 32ea15fd29af81490311af9e12949b43524c39400eRonghua Wu kGraphicMemory 33ea15fd29af81490311af9e12949b43524c39400eRonghua Wu }; 34ea15fd29af81490311af9e12949b43524c39400eRonghua Wu 35ea15fd29af81490311af9e12949b43524c39400eRonghua Wu enum SubType { 36ea15fd29af81490311af9e12949b43524c39400eRonghua Wu kUnspecifiedSubType = 0, 37ea15fd29af81490311af9e12949b43524c39400eRonghua Wu kAudioCodec, 38ea15fd29af81490311af9e12949b43524c39400eRonghua Wu kVideoCodec 39ea15fd29af81490311af9e12949b43524c39400eRonghua Wu }; 40ea15fd29af81490311af9e12949b43524c39400eRonghua Wu 41231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu MediaResource(); 42ea15fd29af81490311af9e12949b43524c39400eRonghua Wu MediaResource(Type type, uint64_t value); 43ea15fd29af81490311af9e12949b43524c39400eRonghua Wu MediaResource(Type type, SubType subType, uint64_t value); 44231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 45231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu void readFromParcel(const Parcel &parcel); 46231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu void writeToParcel(Parcel *parcel) const; 47231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 48231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu String8 toString() const; 49231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 50231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu bool operator==(const MediaResource &other) const; 51231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu bool operator!=(const MediaResource &other) const; 52231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 53ea15fd29af81490311af9e12949b43524c39400eRonghua Wu Type mType; 54ea15fd29af81490311af9e12949b43524c39400eRonghua Wu SubType mSubType; 55231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu uint64_t mValue; 56231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu}; 57231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 58ea15fd29af81490311af9e12949b43524c39400eRonghua Wuinline static const char *asString(MediaResource::Type i, const char *def = "??") { 59ea15fd29af81490311af9e12949b43524c39400eRonghua Wu switch (i) { 60ea15fd29af81490311af9e12949b43524c39400eRonghua Wu case MediaResource::kUnspecified: return "unspecified"; 61ea15fd29af81490311af9e12949b43524c39400eRonghua Wu case MediaResource::kSecureCodec: return "secure-codec"; 62ea15fd29af81490311af9e12949b43524c39400eRonghua Wu case MediaResource::kNonSecureCodec: return "non-secure-codec"; 63ea15fd29af81490311af9e12949b43524c39400eRonghua Wu case MediaResource::kGraphicMemory: return "graphic-memory"; 64ea15fd29af81490311af9e12949b43524c39400eRonghua Wu default: return def; 65ea15fd29af81490311af9e12949b43524c39400eRonghua Wu } 66ea15fd29af81490311af9e12949b43524c39400eRonghua Wu} 67ea15fd29af81490311af9e12949b43524c39400eRonghua Wu 68ea15fd29af81490311af9e12949b43524c39400eRonghua Wuinline static const char *asString(MediaResource::SubType i, const char *def = "??") { 69ea15fd29af81490311af9e12949b43524c39400eRonghua Wu switch (i) { 70ea15fd29af81490311af9e12949b43524c39400eRonghua Wu case MediaResource::kUnspecifiedSubType: return "unspecified"; 71ea15fd29af81490311af9e12949b43524c39400eRonghua Wu case MediaResource::kAudioCodec: return "audio-codec"; 72ea15fd29af81490311af9e12949b43524c39400eRonghua Wu case MediaResource::kVideoCodec: return "video-codec"; 73ea15fd29af81490311af9e12949b43524c39400eRonghua Wu default: return def; 74ea15fd29af81490311af9e12949b43524c39400eRonghua Wu } 75ea15fd29af81490311af9e12949b43524c39400eRonghua Wu} 76ea15fd29af81490311af9e12949b43524c39400eRonghua Wu 77231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu}; // namespace android 78231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu 79231c3d169ad029689f9d688b68179af7e96b8d78Ronghua Wu#endif // ANDROID_MEDIA_RESOURCE_H 80