Package de.innosystec.unrar.unpack.decode

Examples of de.innosystec.unrar.unpack.decode.AudioVariables


  {
    if (!Solid) {
      UnpChannelDelta = UnpCurChannel = 0;
      UnpChannels = 1;
      // memset(AudV,0,sizeof(AudV));
      Arrays.fill(AudV, new AudioVariables());
      // memset(UnpOldTable20,0,sizeof(UnpOldTable20));
      Arrays.fill(UnpOldTable20, (byte) 0);
    }
  }
View Full Code Here


    }
  }

  protected byte DecodeAudio(int Delta)
  {
    AudioVariables v = AudV[UnpCurChannel];
    v.setByteCount(v.getByteCount() + 1);
    v.setD4(v.getD3());
    v.setD3(v.getD2());// ->D3=V->D2;
    v.setD2(v.getLastDelta() - v.getD1());// ->D2=V->LastDelta-V->D1;
    v.setD1(v.getLastDelta());// V->D1=V->LastDelta;
    // int PCh=8*V->LastChar+V->K1*V->D1 +V->K2*V->D2 +V->K3*V->D3
    // +V->K4*V->D4+ V->K5*UnpChannelDelta;
    int PCh = 8 * v.getLastChar() + v.getK1() * v.getD1();
    PCh += v.getK2() * v.getD2() + v.getK3() * v.getD3();
    PCh += v.getK4() * v.getD4() + v.getK5() * UnpChannelDelta;
    PCh = (PCh >>> 3) & 0xFF;

    int Ch = PCh - Delta;

    int D = ((byte) Delta) << 3;

    v.getDif()[0] += Math.abs(D);// V->Dif[0]+=abs(D);
    v.getDif()[1] += Math.abs(D - v.getD1());// V->Dif[1]+=abs(D-V->D1);
    v.getDif()[2] += Math.abs(D + v.getD1());// V->Dif[2]+=abs(D+V->D1);
    v.getDif()[3] += Math.abs(D - v.getD2());// V->Dif[3]+=abs(D-V->D2);
    v.getDif()[4] += Math.abs(D + v.getD2());// V->Dif[4]+=abs(D+V->D2);
    v.getDif()[5] += Math.abs(D - v.getD3());// V->Dif[5]+=abs(D-V->D3);
    v.getDif()[6] += Math.abs(D + v.getD3());// V->Dif[6]+=abs(D+V->D3);
    v.getDif()[7] += Math.abs(D - v.getD4());// V->Dif[7]+=abs(D-V->D4);
    v.getDif()[8] += Math.abs(D + v.getD4());// V->Dif[8]+=abs(D+V->D4);
    v.getDif()[9] += Math.abs(D - UnpChannelDelta);// V->Dif[9]+=abs(D-UnpChannelDelta);
    v.getDif()[10] += Math.abs(D + UnpChannelDelta);// V->Dif[10]+=abs(D+UnpChannelDelta);

    v.setLastDelta((byte) (Ch - v.getLastChar()));
    UnpChannelDelta = v.getLastDelta();
    v.setLastChar(Ch);// V->LastChar=Ch;

    if ((v.getByteCount() & 0x1F) == 0) {
      int MinDif = v.getDif()[0], NumMinDif = 0;
      v.getDif()[0] = 0;// ->Dif[0]=0;
      for (int I = 1; I < v.getDif().length; I++) {
        if (v.getDif()[I] < MinDif) {
          MinDif = v.getDif()[I];
          NumMinDif = I;
        }
        v.getDif()[I] = 0;
      }
      switch (NumMinDif) {
      case 1:
        if (v.getK1() >= -16) {
          v.setK1(v.getK1() - 1);// V->K1--;
        }
        break;
      case 2:
        if (v.getK1() < 16) {
          v.setK1(v.getK1() + 1);// V->K1++;
        }
        break;
      case 3:
        if (v.getK2() >= -16) {
          v.setK2(v.getK2() - 1);// V->K2--;
        }
        break;
      case 4:
        if (v.getK2() < 16) {
          v.setK2(v.getK2() + 1);// V->K2++;
        }
        break;
      case 5:
        if (v.getK3() >= -16) {
          v.setK3(v.getK3() - 1);
        }
        break;
      case 6:
        if (v.getK3() < 16) {
          v.setK3(v.getK3() + 1);
        }
        break;
      case 7:
        if (v.getK4() >= -16) {
          v.setK4(v.getK4() - 1);
        }
        break;
      case 8:
        if (v.getK4() < 16) {
          v.setK4(v.getK4() + 1);
        }
        break;
      case 9:
        if (v.getK5() >= -16) {
          v.setK5(v.getK5() - 1);
        }
        break;
      case 10:
        if (v.getK5() < 16) {
          v.setK5(v.getK5() + 1);
        }
        break;
      }
    }
    return ((byte) Ch);
View Full Code Here

TOP

Related Classes of de.innosystec.unrar.unpack.decode.AudioVariables

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.