12c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/* 22c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Copyright (C) 2004-2010 NXP Software 32c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Copyright (C) 2010 The Android Open Source Project 42c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * 52c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Licensed under the Apache License, Version 2.0 (the "License"); 62c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * you may not use this file except in compliance with the License. 72c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * You may obtain a copy of the License at 82c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * 92c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * http://www.apache.org/licenses/LICENSE-2.0 102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * 112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * Unless required by applicable law or agreed to in writing, software 122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * distributed under the License is distributed on an "AS IS" BASIS, 132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * See the License for the specific language governing permissions and 152c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent * limitations under the License. 162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent */ 172c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/********************************************************************************** 192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent INCLUDE FILES 202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent***********************************************************************************/ 212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#include "LVC_Mixer_Private.h" 232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent#include "LVM_Macros.h" 242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/********************************************************************************** 262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent FUNCTION LVCore_MIXSOFT_1ST_D16C31_WRA 272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent***********************************************************************************/ 28d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri#ifdef BUILD_FLOAT 29d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katurivoid LVC_Core_MixInSoft_D16C31_SAT( LVMixer3_FLOAT_st *ptrInstance, 30d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri const LVM_FLOAT *src, 31d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri LVM_FLOAT *dst, 32d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri LVM_INT16 n) 33d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri{ 34d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri 35d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri LVM_INT16 OutLoop; 36d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri LVM_INT16 InLoop; 37d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri LVM_INT32 ii,jj; 38d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Mix_Private_FLOAT_st *pInstance = (Mix_Private_FLOAT_st *)(ptrInstance->PrivateParams); 39d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri LVM_FLOAT Delta = pInstance->Delta; 40d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri LVM_FLOAT Current = pInstance->Current; 41d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri LVM_FLOAT Target = pInstance->Target; 42d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri LVM_FLOAT Temp; 43d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri 44d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri InLoop = (LVM_INT16)(n >> 2); /* Process per 4 samples */ 45d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri OutLoop = (LVM_INT16)(n - (InLoop << 2)); 46d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri 47d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if(Current < Target){ 48d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (OutLoop){ 49d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Temp = Current + Delta; 50d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Current = Temp; 51d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (Current > Target) 52d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Current = Target; 53d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri 54d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri for (ii = OutLoop; ii != 0; ii--){ 55d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Temp = ((LVM_FLOAT)*dst) + (((LVM_FLOAT)*(src++) * Current)); 56d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (Temp > 1.0f) 57d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = 1.0f; 58d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri else if (Temp < -1.0f) 59d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = -1.0f; 60d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri else 61d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = (LVM_FLOAT)Temp; 62d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 63d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 64d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri 65d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri for (ii = InLoop; ii != 0; ii--){ 66d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Temp = Current + Delta; 67d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Current = Temp; 68d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (Current > Target) 69d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Current = Target; 70d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri 71d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri for (jj = 4; jj != 0 ; jj--){ 72d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Temp = ((LVM_FLOAT)*dst) + (((LVM_FLOAT)*(src++) * Current)); 73d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (Temp > 1.0f) 74d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = 1.0f; 75d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri else if (Temp < -1.0f) 76d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = -1.0f; 77d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri else 78d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = (LVM_FLOAT)Temp; 79d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 80d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 81d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 82d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri else{ 83d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (OutLoop){ 84d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Current -= Delta; 85d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (Current < Target) 86d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Current = Target; 87d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri 88d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri for (ii = OutLoop; ii != 0; ii--){ 89d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Temp = ((LVM_FLOAT)*dst) + (((LVM_FLOAT)*(src++) * Current)); 90d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (Temp > 1.0f) 91d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = 1.0f; 92d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri else if (Temp < -1.0f) 93d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = -1.0f; 94d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri else 95d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = (LVM_FLOAT)Temp; 96d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 97d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 982c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 99d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri for (ii = InLoop; ii != 0; ii--){ 100d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Current -= Delta; 101d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (Current < Target) 102d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Current = Target; 103d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri 104d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri for (jj = 4; jj != 0 ; jj--){ 105d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri Temp = ((LVM_FLOAT)*dst) + (((LVM_FLOAT)*(src++) * Current)); 106d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri if (Temp > 1.0f) 107d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = 1.0f; 108d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri else if (Temp < -1.0f) 109d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = -1.0f; 110d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri else 111d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri *dst++ = (LVM_FLOAT)Temp; 112d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 113d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 114d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri } 115d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri pInstance->Current = Current; 116d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri} 117d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri#else 1182c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurentvoid LVC_Core_MixInSoft_D16C31_SAT( LVMixer3_st *ptrInstance, 1192c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent const LVM_INT16 *src, 1202c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 *dst, 1212c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 n) 1222c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent{ 1232c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1242c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 OutLoop; 1252c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 InLoop; 1262c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT16 CurrentShort; 1272c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT32 ii,jj; 1282c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Mix_Private_st *pInstance=(Mix_Private_st *)(ptrInstance->PrivateParams); 1292c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT32 Delta=pInstance->Delta; 1302c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT32 Current=pInstance->Current; 1312c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT32 Target=pInstance->Target; 1322c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent LVM_INT32 Temp; 1332c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1342c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent InLoop = (LVM_INT16)(n >> 2); /* Process per 4 samples */ 1352c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent OutLoop = (LVM_INT16)(n - (InLoop << 2)); 1362c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1372c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if(Current<Target){ 1382c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (OutLoop){ 1392c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent ADD2_SAT_32x32(Current,Delta,Temp); /* Q31 + Q31 into Q31*/ 1402c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Current=Temp; 1412c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (Current > Target) 1422c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Current = Target; 1432c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1442c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent CurrentShort = (LVM_INT16)(Current>>16); /* From Q31 to Q15*/ 1452c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1462c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent for (ii = OutLoop; ii != 0; ii--){ 1472c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Temp = ((LVM_INT32)*dst) + (((LVM_INT32)*(src++) * CurrentShort)>>15); /* Q15 + Q15*Q15>>15 into Q15 */ 1482c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (Temp > 0x00007FFF) 1492c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = 0x7FFF; 1502c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent else if (Temp < -0x00008000) 1512c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = - 0x8000; 1522c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent else 1532c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = (LVM_INT16)Temp; 1542c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 1552c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 1562c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1572c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent for (ii = InLoop; ii != 0; ii--){ 1582c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent ADD2_SAT_32x32(Current,Delta,Temp); /* Q31 + Q31 into Q31*/ 1592c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Current=Temp; 1602c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (Current > Target) 1612c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Current = Target; 1622c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1632c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent CurrentShort = (LVM_INT16)(Current>>16); /* From Q31 to Q15*/ 1642c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1652c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent for (jj = 4; jj!=0 ; jj--){ 1662c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Temp = ((LVM_INT32)*dst) + (((LVM_INT32)*(src++) * CurrentShort)>>15); /* Q15 + Q15*Q15>>15 into Q15 */ 1672c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (Temp > 0x00007FFF) 1682c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = 0x7FFF; 1692c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent else if (Temp < -0x00008000) 1702c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = - 0x8000; 1712c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent else 1722c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = (LVM_INT16)Temp; 1732c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 1742c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 1752c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 1762c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent else{ 1772c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (OutLoop){ 1782c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Current -= Delta; /* Q31 + Q31 into Q31*/ 1792c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (Current < Target) 1802c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Current = Target; 1812c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1822c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent CurrentShort = (LVM_INT16)(Current>>16); /* From Q31 to Q15*/ 1832c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1842c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent for (ii = OutLoop; ii != 0; ii--){ 1852c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Temp = ((LVM_INT32)*dst) + (((LVM_INT32)*(src++) * CurrentShort)>>15); /* Q15 + Q15*Q15>>15 into Q15 */ 1862c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (Temp > 0x00007FFF) 1872c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = 0x7FFF; 1882c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent else if (Temp < -0x00008000) 1892c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = - 0x8000; 1902c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent else 1912c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = (LVM_INT16)Temp; 1922c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 1932c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 1942c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 1952c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent for (ii = InLoop; ii != 0; ii--){ 1962c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Current -= Delta; /* Q31 + Q31 into Q31*/ 1972c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (Current < Target) 1982c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Current = Target; 1992c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2002c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent CurrentShort = (LVM_INT16)(Current>>16); /* From Q31 to Q15*/ 2012c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent 2022c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent for (jj = 4; jj!=0 ; jj--){ 2032c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent Temp = ((LVM_INT32)*dst) + (((LVM_INT32)*(src++) * CurrentShort)>>15); /* Q15 + Q15*Q15>>15 into Q15 */ 2042c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent if (Temp > 0x00007FFF) 2052c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = 0x7FFF; 2062c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent else if (Temp < -0x00008000) 2072c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = - 0x8000; 2082c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent else 2092c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent *dst++ = (LVM_INT16)Temp; 2102c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 2112c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 2122c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent } 2132c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent pInstance->Current=Current; 2142c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent} 215d7d013446a64c6de9f0f2dfe098a721b140e0b48Ramesh Katuri#endif 2162c8e5cab3faa6d360e222b7a6c40a80083d021acEric Laurent/**********************************************************************************/ 217