コード例 #1
0
ファイル: scatter.c プロジェクト: jinjoh/NOOR
void plugin_seq_doit(Cast *cast, float facf0, float facf1, int sx, int sy, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *out, ImBuf *use)
{
	float f1, f2, t1, t2, t3;
	int x, y, lr;
	
	/* fill imbuf 'out' with black */
	fill_out(out, 0,0,0,0);


	switch (cast->type) {
		case 0:
			srand48(cast->seed);
			break;
		case 1:
			srand48(cast->seed + facf0 * 1000);
			break;
	}

	for (y = 0; y < sy; y++) {
		switch (cast->type) {
			case 0:
				if ((y & 1) == 0) {
					f1 = drand48() - 0.5;
					f2 = drand48() - 0.5;
					f1 = cast->swing * f1;
					f2 = cast->swing * f2;
					if (cast->wrap) f2 += 1.0;
					lr = drand48()>0.5;
					t1 = facf0;
				} else t1 = facf1;
				
				t2 = 1.0 - t1;
				t3 = 3.0 * (f1 * t1 * t1 * t2 + f2 * t1 * t2 * t2);
				if (cast->wrap) t3 += t2 * t2 * t2;
				x = sx * t3;
				if (lr) x = -x;
				break;
			case 1:
				f1 = drand48() - 0.5;
				f1 = f1 * cast->swing;
				if ((y & 1) == 0) f1 *= facf0;
				else f1 *= facf1;
				x = f1 * sx;
				break;
		}
		
		rectcpy(out, ibuf1, 0, y, x, y, 32767, 1);
		if (cast->wrap) {
			rectcpy(out, ibuf1, 0, y, x + sx, y, 32767, 1);
			rectcpy(out, ibuf1, 0, y, x + sx + sx, y, 32767, 1);
			rectcpy(out, ibuf1, 0, y, x - sx, y, 32767, 1);
			rectcpy(out, ibuf1, 0, y, x - sx - sx, y, 32767, 1);
		}
	}
}
コード例 #2
0
ファイル: playlist.cpp プロジェクト: meh2481/kissme
std::list<song> playlist_load(std::string sFilename)
{
	std::list<song> ret;
	if(sFilename.find(".m3u", sFilename.size() - 4) != std::string::npos ||
		 sFilename.find(".m3u8", sFilename.size() - 5) != std::string::npos)
		ret = fill_out(playlist_load_M3U(sFilename), ttvfs::StripLastPath(sFilename));
	else if(sFilename.find(".asx", sFilename.size() - 4) != std::string::npos)
		ret = fill_out(playlist_load_ASX(sFilename), ttvfs::StripLastPath(sFilename));
	else if(sFilename.find(".pls", sFilename.size() - 4) != std::string::npos)
		ret = fill_out(playlist_load_PLS(sFilename), ttvfs::StripLastPath(sFilename));
	else if(sFilename.find(".wpl", sFilename.size() - 4) != std::string::npos)
		ret = fill_out(playlist_load_WPL(sFilename), ttvfs::StripLastPath(sFilename));
	else if(sFilename.find(".xspf", sFilename.size() - 5) != std::string::npos)
		ret = fill_out(playlist_load_XSPF(sFilename), ttvfs::StripLastPath(sFilename));
	else if(sFilename.find(".xml", sFilename.size() - 4) != std::string::npos)
		ret = fill_out(playlist_load_iTunes(sFilename), ttvfs::StripLastPath(sFilename));
	else if(sFilename.find(".kiss", sFilename.size() - 5) != std::string::npos)
		ret = convert_to_global(playlist_load_kissme(sFilename), ttvfs::StripLastPath(sFilename));
	else
		std::cout << "Playlist file format " << sFilename.substr(sFilename.size() - 3) << " unsupported." << std::endl;
		
	return ret;
}