10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project 30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License. 60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at 70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software 110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and 140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License. 150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony.cat; 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@hide} 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class ImageDescriptor { 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // members 2422d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville int mWidth; 2522d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville int mHeight; 2622d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville int mCodingScheme; 2722d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville int mImageId; 2822d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville int mHighOffset; 2922d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville int mLowOffset; 3022d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville int mLength; 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // constants 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville static final int CODING_SCHEME_BASIC = 0x11; 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville static final int CODING_SCHEME_COLOUR = 0x21; 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // public static final int ID_LENGTH = 9; 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // ID_LENGTH substituted by IccFileHandlerBase.GET_RESPONSE_EF_IMG_SIZE_BYTES 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ImageDescriptor() { 4022d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mWidth = 0; 4122d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mHeight = 0; 4222d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mCodingScheme = 0; 4322d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mImageId = 0; 4422d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mHighOffset = 0; 4522d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mLowOffset = 0; 4622d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville mLength = 0; 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Extract descriptor information about image instance. 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param rawData 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param valueIndex 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return ImageDescriptor 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville static ImageDescriptor parse(byte[] rawData, int valueIndex) { 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ImageDescriptor d = new ImageDescriptor(); 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 5922d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville d.mWidth = rawData[valueIndex++] & 0xff; 6022d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville d.mHeight = rawData[valueIndex++] & 0xff; 6122d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville d.mCodingScheme = rawData[valueIndex++] & 0xff; 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // parse image id 6422d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville d.mImageId = (rawData[valueIndex++] & 0xff) << 8; 6522d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville d.mImageId |= rawData[valueIndex++] & 0xff; 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // parse offset 6722d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville d.mHighOffset = (rawData[valueIndex++] & 0xff); // high byte offset 6822d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville d.mLowOffset = rawData[valueIndex++] & 0xff; // low byte offset 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7022d85a8e3a575a6d01d2c788587971657dfe20c6Wink Saville d.mLength = ((rawData[valueIndex++] & 0xff) << 8 | (rawData[valueIndex++] & 0xff)); 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } catch (IndexOutOfBoundsException e) { 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CatLog.d("ImageDescripter", "parse; failed parsing image descriptor"); 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville d = null; 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return d; 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 78