166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk/* 266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * Copyright (C) 2013 The Android Open Source Project 366ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * 466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * Licensed under the Apache License, Version 2.0 (the "License"); 566ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * you may not use this file except in compliance with the License. 666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * You may obtain a copy of the License at 766ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * 866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * http://www.apache.org/licenses/LICENSE-2.0 966ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * 1066ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * Unless required by applicable law or agreed to in writing, software 1166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * distributed under the License is distributed on an "AS IS" BASIS, 1266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1366ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * See the License for the specific language governing permissions and 1466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * limitations under the License. 1566ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk */ 1666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 1766ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunkpackage android.hardware.camera2.utils; 1866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 1966ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunkimport android.os.Parcel; 2066ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunkimport android.os.Parcelable; 2166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunkimport android.os.IBinder; 2266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 2366ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk/** 2466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk * @hide 2566ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk */ 2666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunkpublic class BinderHolder implements Parcelable { 2766ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk private IBinder mBinder = null; 2866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 2966ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk @Override 3066ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public int describeContents() { 3166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk return 0; 3266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk } 3366ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 3466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk @Override 3566ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public void writeToParcel(Parcel dest, int flags) { 3666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk dest.writeStrongBinder(mBinder); 3766ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk } 3866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 3966ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public void readFromParcel(Parcel src) { 4066ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk mBinder = src.readStrongBinder(); 4166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk } 4266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 4366ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public static final Parcelable.Creator<BinderHolder> CREATOR = 4466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk new Parcelable.Creator<BinderHolder>() { 4566ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk @Override 4666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public BinderHolder createFromParcel(Parcel in) { 4766ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk return new BinderHolder(in); 4866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk } 4966ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 5066ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk @Override 5166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public BinderHolder[] newArray(int size) { 5266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk return new BinderHolder[size]; 5366ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk } 5466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk }; 5566ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 5666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public IBinder getBinder() { 5766ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk return mBinder; 5866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk } 5966ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 6066ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public void setBinder(IBinder binder) { 6166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk mBinder = binder; 6266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk } 6366ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 6466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public BinderHolder() {} 6566ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 6666ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk public BinderHolder(IBinder binder) { 6766ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk mBinder = binder; 6866ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk } 6966ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 7066ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk private BinderHolder(Parcel in) { 7166ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk mBinder = in.readStrongBinder(); 7266ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk } 7366ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk} 7466ef64514464a1bb9c7931993cc8db3d7539f39aRuben Brunk 75