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 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int width; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int height; 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int codingScheme; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int imageId; 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int highOffset; 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int lowOffset; 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville int length; 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() { 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville width = 0; 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville height = 0; 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville codingScheme = 0; 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville imageId = 0; 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville highOffset = 0; 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville lowOffset = 0; 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville length = 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 { 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville d.width = rawData[valueIndex++] & 0xff; 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville d.height = rawData[valueIndex++] & 0xff; 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville d.codingScheme = rawData[valueIndex++] & 0xff; 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // parse image id 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville d.imageId = (rawData[valueIndex++] & 0xff) << 8; 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville d.imageId |= rawData[valueIndex++] & 0xff; 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // parse offset 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville d.highOffset = (rawData[valueIndex++] & 0xff); // high byte offset 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville d.lowOffset = rawData[valueIndex++] & 0xff; // low byte offset 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville d.length = ((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