当前位置: 首页>>代码示例>>C++>>正文


C++ WaveFile::normalize方法代码示例

本文整理汇总了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;
}
开发者ID:sjw9912,项目名称:OmegaProject,代码行数:88,代码来源:Main.cpp


注:本文中的WaveFile::normalize方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。