/*waveファイル読み込み*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<fstream>
#ifndef STRUCTURE
#include"structure.cpp"
#endif 
#include"head_part.cpp"
#include"funcWavelet.cpp"
#include<math.h>

void main()
{
    FILE *fp,*fout,*fout1;
	double f_s = 44100.;	//サンプリング周波数
	char filename1[100],filename2[100],filename3[100];		//読み込みファイル名　書き込みファイル名
	double f_l,f_h;
	strcpy(filename1,"hasegawa_a.wav");
	strcpy(filename2,"hasegawa_a.dat");
	fp = fopen(filename1 , "rb");
    int N; //データ点数
	struct Decimal *p;
	struct Head_data formhead;
	headpart(&p, fp ,fout, formhead,&N);
	getch();
    printf("N = %d\n",N);
	int *x = new int [N];
	for(int i = 0; i<N; i++){
		if(p->next == NULL){
			printf("NULLぽ\n");
			N = i;
		}
		if(p->next != NULL){
			x[i] = p -> data;
			p = p->next;
		}
		
	}	
    printf("ok");
	fout = fopen(filename2,"w");
	N = N - 100; /*なんか変なノイズが入るため*/
	for(int i = 0; i < N-1; i++){
		fprintf(fout,"%lf %d\n",(double)i/(double)f_s,x[i]);
	}
	int dataLength;
	int level = 0;
	while(pow(2,level)<N) level ++;
	dataLength = pow(2,level);
	double *x1 = new double [dataLength];
	for(int i = 0; i< dataLength; i++){
		if(i<N){
			x1[i] = x[i];
		}
		else{
			 x1[i] = 0; 
		}
	}	
//	fft_func(x_fft,y_fft,fout1);
	printf("level = %d",level);
	getch();
	funcWavelet(level,x1);
	printf("END\n");
}