Esempio n. 1
0
void playback_set_volume (int l, int r)
{
    if (playing && playback_get_ready () && current_decoder &&
     current_decoder->set_volume && current_decoder->set_volume (l, r))
        return;

    output_set_volume (l, r);
}
Esempio n. 2
0
static int set_volume_db(struct action_event *event) {
	const char *str_decibel_in = upnp_get_string(event, "DesiredVolume");
	service_lock();
	float raw_decibel_in = atof(str_decibel_in);
	float decibel = change_volume_decibel(event, raw_decibel_in);

	output_set_volume(exp(decibel / 20 * log(10)));
	service_unlock();

	return 0;
}
Esempio n. 3
0
static int set_volume(struct action_event *event) {
	const char *volume = upnp_get_string(event, "DesiredVolume");
	service_lock();
	int volume_level = atoi(volume);  // range 0..100
	if (volume_level < volume_range.min) volume_level = volume_range.min;
	if (volume_level > volume_range.max) volume_level = volume_range.max;
	const float decibel = volume_level_to_decibel(volume_level);

	char db_volume[10];
	snprintf(db_volume, sizeof(db_volume), "%d", (int) (256 * decibel));

	const double fraction = exp(decibel / 20 * log(10));
	fprintf(stderr, "Setting volume to #%d = %.2fdb (%.4f)\n",
		volume_level, decibel, fraction);

	change_volume_and_notify(event, volume, db_volume);
	output_set_volume(fraction);
	set_mute_toggle(volume_level == 0);
	service_unlock();

	return 0;
}
Esempio n. 4
0
static int set_volume(struct action_event *event) {
	const char *volume = upnp_get_string(event, "DesiredVolume");
	service_lock();
	int volume_level = atoi(volume);  // range 0..100
	if (volume_level < volume_range.min) volume_level = volume_range.min;
	if (volume_level > volume_range.max) volume_level = volume_range.max;
	const float decibel = volume_level_to_decibel(volume_level);

	char db_volume[10];
	snprintf(db_volume, sizeof(db_volume), "%d", (int) (256 * decibel));

	Log_info("control", "Setting %d volume-db to %d" , volume_level,(int)decibel);

	const double fraction = exp(decibel / 20 * log(10));

	change_volume(volume, db_volume);
	output_set_volume(fraction, volume_level);
	set_mute_toggle(volume_level == 0);
	service_unlock();

	return 0;
}