#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include"write_head.cpp"
#ifndef STRUCTURE
#include"structure.cpp"
#endif

void headpart(	struct Decimal **p ,FILE *fp1  ,FILE *fp2,	struct Head_data formhead, int *N)
{
	int i;
	char data[5];
	

	printf("---------riffヘッダ----------\n");
	fgets(formhead.riff , 5 , fp1);
	printf("%s\n",formhead.riff);


	printf("---------ファイルサイズ----------\n");
	fgets(formhead.fsize , 5 , fp1);
	for(i=3; i>=0 ; i-- ){
//		s += (int)fsize[i]*pow(16,i);
		printf("%x ",formhead.fsize[i]);
	}

	printf("\n---------waveヘッダ----------\n");
	fgets(formhead.wave , 5 , fp1);
	printf("%s\n",formhead.wave);

	printf("---------fmtチャンク----------\n");
	fgets(formhead.fmt , 5 , fp1);
	printf("%s\n",formhead.fmt);

	printf("---------チャンクサイズ----------\n");
	fgets(formhead.chank , 5 , fp1);
	for(i=0; i<=3 ; i++ ){
//		s += (int)data[i]*pow(16,i);
		printf("%x ",formhead.chank[i]);
	}

	printf("\n---------フォーマットID--------\n");
	fgets(formhead.formatID , 3 , fp1);
	for(i=3; i>=0 ; i--){
		printf("%x ",formhead.formatID[i]);
	}

	printf("\n-------チャンネル数--------\n");
	fgets(formhead.channel , 3 , fp1);
	for(i=3; i>=0 ; i--){
		printf("%x ",formhead.channel[i]);
	}
	
	printf("\n-------サンプリングレート--------\n");
	fgets(formhead.samplerate , 5 , fp1);
	for(i=3; i>=0 ; i--){
		printf("%x ",formhead.samplerate[i]);
	}
	
	printf("\n-------データ速度--------\n");
	fgets(formhead.dataspeed , 5 , fp1);
	for(i=3; i>=0 ; i--){
		printf("%x ",formhead.dataspeed[i]);
	}

	printf("\n-------ブロックサイズ--------\n");
	fgets(formhead.block , 3 , fp1);
	for(i=3; i>=0 ; i--){
		printf("%x ",formhead.block[i]);
	}

	printf("\n-------サンプルあたりビット数--------\n");
	fgets(formhead.bitpersample , 3 , fp1);
	for(i=0; i<=1 ; i++){
		printf("%x ",formhead.bitpersample[i]);
	}
	
	printf("\n--------dataチャンク--------\n");
	fgets(formhead.data , 5 , fp1);
	printf("%s",formhead.data);
	
//	printf("%s\n",data);
//	printf("%d",s);

	printf("\n--------波形データのバイト数--------\n");
	fgets(formhead.mkfsize , 5 , fp1);
	for(i=3; i>=0 ; i--){
		printf("%x ",data[i]);
	}

	//write_head(fp2, formhead);
	
	/*wave波形に関する変数*/
	struct Decimal *wave;
	struct Decimal *head;
	struct Decimal	*old;					//　　old:一つ前の領域を示すポインター

	head = (struct Decimal *)malloc(sizeof (struct Decimal));
	*p = head;

	printf("\n--------波形データ--------\n");
	printf("N = %d\n",*N);
	do{
		(*p)->next = (struct Decimal *)malloc(sizeof(struct Decimal));	//10進数データの領域を確保
		(*p) = (*p)->next;
		(*p)->a[0] = fgetc(fp1);
		(*p)->a[1] = fgetc(fp1);
		(*p)->data = ((signed char)(*p)->a[1]<<8) + (unsigned char) (*p)->a[0];        //16進数データを10進数データに変換しリストに保存
//		printf("%d : wave->data = %d\n",*N,wave->data);
		*N = *N + 1;
	}while(!feof(fp1));
		(*p)->next = NULL;
	
		(*p) = head->next;
	printf("N = %d\n",*N);
	printf("aaa %d\n",(*p) -> data);
}
