本文整理汇总了C++中WaveFile::normalize方法的典型用法代码示例。如果您正苦于以下问题:C++ WaveFile::normalize方法的具体用法?C++ WaveFile::normalize怎么用?C++ WaveFile::normalize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WaveFile
的用法示例。
在下文中一共展示了WaveFile::normalize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
// Parsing
printf("%s\n%s\n", argv[0], argv[1]);
char targetName[256];
strcpy(targetName, argv[0]);
for(int n=strlen(targetName)-1; n>=0; --n)
{
if(targetName[n] != '\\')
{
targetName[n] = '\0';
}
else
{
targetName[n] = '\0';
break;
}
}
strcat(targetName, "\\Data\\Test.dat");
FILE *myFile = fopen(targetName, "wb");
WaveFile myWave;
if(myFile == NULL)
{
printf("Something is wrong\n");
getchar();
fclose(myFile);
return 0;
}
if(argc != 2)
{
printf("Drag a WavFile on this icon.\n");
getchar();
}
else
{
myWave.loadWave(argv[1]);
myWave.normalize();
printf("File Name : %s\n", argv[1]);
int buffer;
buffer = myWave.length;
fwrite(&buffer, sizeof(int), 1, myFile);
printf("Length : %d\n", buffer);
if(ferror(myFile))
{
printf("Something is wrong...\n");
}
buffer = myWave.sample_rate;
fwrite(&buffer, sizeof(int), 1, myFile);
printf("Sample Rate : %d\n", buffer);
for(int n=0; n<myWave.length; ++n)
{
if(myWave.data[0][n] >= 1.0)
{
buffer = int32_max - 1;
}
else if(myWave.data[0][n] < -1.0)
{
buffer = -int32_max;
}
else
{
buffer = int(int32_max*myWave.data[0][n]);
}
fwrite(&buffer, sizeof(int), 1, myFile);
}
printf("Done!\n");
}
fclose(myFile);
return 0;
}