Пример #1
0
int outputGetParameter(int param)
{
	switch (param)
	{
		case OUTPARAM_RATE:
			return rate;
		case OUTPARAM_CHANNELS:
			return channels;
		case OUTPARAM_FORMAT:
			return format;
		case OUTPARAM_GETFORMATS:
			return audio_get_formats();
		default:
			fprintf(stderr, "Nierozpoznany parametr %s %d\n",
				__FILE__, __LINE__ );
			return;
	}
}
Пример #2
0
void audio_capabilities(struct audio_info_struct *ai)
{
	int fmts;
	int i,j,k,k1=NUM_RATES-1;
	struct audio_info_struct ai1 = *ai;

        if (param.outmode != DECODE_AUDIO) {
		memset(capabilities,1,sizeof(capabilities));
		return;
	}

	memset(capabilities,0,sizeof(capabilities));
	if(param.force_rate) {
		rates[NUM_RATES-1] = param.force_rate;
		k1 = NUM_RATES;
	}

	/* if audio_open fails, the device is just not capable of anything... */
	if(audio_open(&ai1) < 0) {
		perror("audio");
	}
	else
	{
		for(i=0;i<NUM_CHANNELS;i++) {
			for(j=0;j<NUM_RATES;j++) {
				ai1.channels = channels[i];
				ai1.rate = rates[j];
				fmts = audio_get_formats(&ai1);
				if(fmts < 0)
					continue;
				for(k=0;k<NUM_ENCODINGS;k++) {
					if((fmts & encodings[k]) == encodings[k])
						capabilities[i][k][j] = 1;
				}
			}
		}
		audio_close(&ai1);
	}

	if(param.verbose > 1) print_capabilities(ai);
}
Пример #3
0
void audio_capabilities(struct audio_info_struct *ai)
{
	int fmts;
	int i,j,k,k1=NUM_RATES-1;
	struct audio_info_struct ai1 = *ai;

        if (param.outmode != DECODE_AUDIO) {
		memset(capabilities,1,sizeof(capabilities));
		return;
	}

	memset(capabilities,0,sizeof(capabilities));
	if(param.force_rate) {
		rates[NUM_RATES-1] = param.force_rate;
		k1 = NUM_RATES;
	}

#ifndef NO_DECODE_AUDIO
	if(audio_open(&ai1) < 0) {
		perror("audio");
		exit(1);
	}
#endif

	for(i=0;i<NUM_CHANNELS;i++) {
		for(j=0;j<NUM_RATES;j++) {
			ai1.channels = channels[i];
			ai1.rate = rates[j];
			fmts = audio_get_formats(&ai1);
			if(fmts < 0)
				continue;
			for(k=0;k<NUM_ENCODINGS;k++) {
				if((fmts & encodings[k]) == encodings[k])
					capabilities[i][k][j] = 1;
			}
		}
	}

#ifndef NO_DECODE_AUDIO
	audio_close(&ai1);
#endif

	if(param.verbose > 1) {
		fprintf(stderr,"\nAudio capabilities:\n        |");
		for(j=0;j<NUM_ENCODINGS;j++) {
			fprintf(stderr," %5s |",audio_val2name[j].sname);
		}
		fprintf(stderr,"\n --------------------------------------------------------\n");
		for(k=0;k<k1;k++) {
			fprintf(stderr," %5d  |",rates[k]);
			for(j=0;j<NUM_ENCODINGS;j++) {
				if(capabilities[0][j][k]) {
					if(capabilities[1][j][k])
						fprintf(stderr,"  M/S  |");
					else
						fprintf(stderr,"   M   |");
				}
				else if(capabilities[1][j][k])
					fprintf(stderr,"   S   |");
				else
					fprintf(stderr,"       |");
			}
			fprintf(stderr,"\n");
		}
		fprintf(stderr,"\n");
	}
}