#include #include #include "wave.h" int main(int argc,char *argv[]) { /*必要最低限のwaveファイル用定数の格納場所*/ /*定義は"wave.h"に記述されている*/ WaveConstant_t mywc; unsigned int i; short int data; /*1サンプルを格納するため*/ if (argc!=3) { printf("usage:\n"); printf(" >copyWave sourcefile destinationfile\n"); printf("example:\n"); printf(" >copyWave src.wav dst.wav\n"); exit(1); } /*コマンドラインで第1引数として与えられたファイル名の入力用waveファイル*/ /*をオープンしてもらい,waveファイル用定数をmywcに受け取る。*/ /*ファイルのオープンに失敗したら,サンプル数が0になっている。*/ /*なおFILE *fpはwave.c内で確保されており,呼び出し側はfpについて考える*/ /*必要はない。*/ /*また,waveファイルの情報ヘッダー部分はすでに読み込まれている*/ mywc=openInputWaveFile(argv[1]); if (mywc.NumberOfSamples==0) { printf("can't open normal wave file\n"); exit(1); } /*コマンドラインで第2引数として与えられたファイル名の出力用waveファイル*/ /*をオープンしてもらい,waveファイル用定数mywcからwaveファイルの情報ヘッ*/ /*ダー部分に書き出してもらう。*/ /*成功したら1,失敗したら0が戻ってくる。*/ /*なおFILE *fpはwave.c内で確保されており,呼び出し側はfpについて考える*/ /*必要はない。*/ if (openOutputWaveFile(argv[2],&mywc)==0) { printf("can't open the file to write\n"); exit(1); } if ( mywc.NumberOfChannels==1) { /*モノラルデータだったら*/ for (i=0;i