13710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin/* 23710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * Copyright (C) 2013 The Android Open Source Project 33710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * 43710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * Licensed under the Apache License, Version 2.0 (the "License"); 53710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * you may not use this file except in compliance with the License. 63710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * You may obtain a copy of the License at 73710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * 83710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * http://www.apache.org/licenses/LICENSE-2.0 93710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * 103710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * Unless required by applicable law or agreed to in writing, software 113710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * distributed under the License is distributed on an "AS IS" BASIS, 123710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * See the License for the specific language governing permissions and 143710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin * limitations under the License. 153710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin */ 162f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalapackage android.hardware.camera2.impl; 173710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 182f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalaimport android.hardware.camera2.Size; 193710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 203710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkinimport java.nio.ByteBuffer; 213710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 223710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkinpublic class MetadataMarshalSize implements MetadataMarshalClass<Size> { 233710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 243710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin private static final int SIZE = 8; 253710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 263710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin @Override 273710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin public int marshal(Size value, ByteBuffer buffer, int nativeType, boolean sizeOnly) { 283710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin if (sizeOnly) { 293710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin return SIZE; 303710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin } 313710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 323710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin buffer.putInt(value.getWidth()); 333710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin buffer.putInt(value.getHeight()); 343710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 353710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin return SIZE; 363710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin } 373710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 383710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin @Override 393710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin public Size unmarshal(ByteBuffer buffer, int nativeType) { 403710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin int width = buffer.getInt(); 413710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin int height = buffer.getInt(); 423710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 433710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin return new Size(width, height); 443710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin } 453710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 463710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin @Override 473710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin public Class<Size> getMarshalingClass() { 483710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin return Size.class; 493710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin } 503710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 513710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin @Override 523710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin public boolean isNativeTypeSupported(int nativeType) { 5370c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala return nativeType == CameraMetadataNative.TYPE_INT32; 543710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin } 553710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin 563710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin @Override 573710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin public int getNativeSize(int nativeType) { 583710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin return SIZE; 593710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin } 603710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin} 61