plan 9 kernel history: overview | file list | diff list

2001/1121/port/devaudio.c (diff list | history)

2001/1117/sys/src/9/port/devaudio.c:1067,10742001/1121/sys/src/9/port/devaudio.c:1067,1074 (short | long | prev | next)
1999/0320    
audiowrite(Chan *c, void *vp, long n, vlong) 
1995/0119    
{ 
	long m, n0; 
1995/0221    
	int i, nf, v, left, right, in, out; 
1995/0119    
	char buf[255], *field[Ncmd]; 
2001/1121    
	int i, v, left, right, in, out; 
	Cmdbuf *cb; 
1995/0119    
	Buf *b; 
1999/0320    
	char *a; 
1995/0119    
 
2001/1117/sys/src/9/port/devaudio.c:1085,11022001/1121/sys/src/9/port/devaudio.c:1085,1102
1995/0119    
		right = 1; 
1995/0221    
		in = 1; 
		out = 1; 
1995/0119    
		if(n > sizeof(buf)-1) 
			n = sizeof(buf)-1; 
		memmove(buf, a, n); 
		buf[n] = '\0'; 
2001/1121    
		cb = parsecmd(vp, n); 
		if(waserror()){ 
			free(cb); 
			nexterror(); 
		} 
1995/0119    
 
2001/1117    
		nf = tokenize(buf, field, Ncmd); 
1995/0119    
		for(i = 0; i < nf; i++){ 
2001/1121    
		for(i = 0; i < cb->nf; i++){ 
1995/0119    
			/* 
			 * a number is volume 
			 */ 
			if(field[i][0] >= '0' && field[i][0] <= '9') { 
				m = strtoul(field[i], 0, 10); 
2001/1121    
			if(cb->f[i][0] >= '0' && cb->f[i][0] <= '9') { 
				m = strtoul(cb->f[i], 0, 10); 
1995/0221    
				if(left && out) 
					audio.lovol[v] = m; 
				if(left && in) 
2001/1117/sys/src/9/port/devaudio.c:1110,11162001/1121/sys/src/9/port/devaudio.c:1110,1116
1995/0119    
			} 
 
			for(m=0; volumes[m].name; m++) { 
				if(strcmp(field[i], volumes[m].name) == 0) { 
2001/1121    
				if(strcmp(cb->f[i], volumes[m].name) == 0) { 
1995/0119    
					v = m; 
1995/0221    
					in = 1; 
					out = 1; 
2001/1117/sys/src/9/port/devaudio.c:1120,11462001/1121/sys/src/9/port/devaudio.c:1120,1146
1995/0119    
				} 
			} 
 
			if(strcmp(field[i], "reset") == 0) { 
2001/1121    
			if(strcmp(cb->f[i], "reset") == 0) { 
1995/0119    
				resetlevel(); 
				mxvolume(); 
				goto cont0; 
			} 
1995/0221    
			if(strcmp(field[i], "in") == 0) { 
2001/1121    
			if(strcmp(cb->f[i], "in") == 0) { 
1995/0221    
				in = 1; 
				out = 0; 
				goto cont0; 
			} 
			if(strcmp(field[i], "out") == 0) { 
2001/1121    
			if(strcmp(cb->f[i], "out") == 0) { 
1995/0221    
				in = 0; 
				out = 1; 
				goto cont0; 
			} 
1995/0119    
			if(strcmp(field[i], "left") == 0) { 
2001/1121    
			if(strcmp(cb->f[i], "left") == 0) { 
1995/0119    
				left = 1; 
				right = 0; 
				goto cont0; 
			} 
			if(strcmp(field[i], "right") == 0) { 
2001/1121    
			if(strcmp(cb->f[i], "right") == 0) { 
1995/0119    
				left = 0; 
				right = 1; 
				goto cont0; 
2001/1117/sys/src/9/port/devaudio.c:1149,11542001/1121/sys/src/9/port/devaudio.c:1149,1156
1995/0119    
			break; 
		cont0:; 
		} 
2001/1121    
		free(cb); 
		poperror(); 
1995/0119    
		break; 
 
	case Qaudio: 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)