summaryrefslogtreecommitdiffstats
path: root/mpeglib/lib/splay/synthesis.cpp
blob: 699037c91d71cefd0301439363d041fd7be1e9df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
  header for synthesis
  Copyright (C) 2001  Martin Vogt

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU Library General Public License as published by
  the Free Software Foundation.

  For more information look at the file COPYRIGHT in this package

 */


#include "synthesis.h"


#include <iostream>

using namespace std;

Synthesis::Synthesis() {

  int i;
  outpos=0;
  calcbufferoffset=15;
  currentcalcbuffer=0;

  for(i=CALCBUFFERSIZE-1;i>=0;i--)
    calcbuffer[LS][0][i]=calcbuffer[LS][1][i]=
    calcbuffer[RS][0][i]=calcbuffer[RS][1][i]=0.0;
  
  initialize_dct64();
  initialize_dct64_downsample();
}


Synthesis::~Synthesis() {
}


void Synthesis::doSynth(int lDownSample,int lOutputStereo,
			REAL *fractionL,REAL *fractionR) {
  switch(lDownSample) {
  case false:
    synth_Std(lOutputStereo,fractionL,fractionR);
    break;
  case true:
    synth_Down(lOutputStereo,fractionL,fractionR);
    break;
  default:
    cout << "unknown downsample parameter"<<lDownSample<<endl;
    exit(0);
  } 
}

  
void Synthesis::doMP3Synth(int lDownSample,int lOutputStereo,
			   REAL in[2][SSLIMIT][SBLIMIT]) {

  switch(lDownSample) {
  case false:
    synthMP3_Std(lOutputStereo,in);
    break;
  case true:
    synthMP3_Down(lOutputStereo,in);
    break;
  default:
    cout << "unknown downsample parameter:"<<lDownSample<<endl;
    exit(0);
  }
}