view libpurple/dbus-useful.c @ 32398:544e6ed9d850

The function gst_msg_db_to_percent already retyrns a number between 0.0 and 1.0, and a GtkProgressBar is between 0.0 and 1.0, so I don't know why the level is multiplied by 5. Maybe microphones aren't that loud? I expect the "volume" control to increase it, so I'm not so sure. I guess we'll see what people think. Fixes #14426.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Thu, 22 Dec 2011 04:27:59 +0000
parents f75041cb3fec
children
line wrap: on
line source

#include <string.h>
#include <glib.h>

#include "dbus-useful.h"
#include "conversation.h"
#include "util.h"


PurpleAccount *
purple_accounts_find_ext(const char *name, const char *protocol_id,
		       gboolean (*account_test)(const PurpleAccount *account))
{
	PurpleAccount *result = NULL;
	GList *l;
	char *who;

	if (name)
		who = g_strdup(purple_normalize(NULL, name));
	else
		who = NULL;

	for (l = purple_accounts_get_all(); l != NULL; l = l->next) {
		PurpleAccount *account = (PurpleAccount *)l->data;

		if (who && strcmp(purple_normalize(NULL, purple_account_get_username(account)), who))
			continue;

		if (protocol_id && strcmp(purple_account_get_protocol_id(account), protocol_id))
			continue;

		if (account_test && !account_test(account))
			continue;

		result = account;
		break;
	}

	g_free(who);

	return result;
}

PurpleAccount *purple_accounts_find_any(const char *name, const char *protocol)
{
	return purple_accounts_find_ext(name, protocol, NULL);
}

PurpleAccount *purple_accounts_find_connected(const char *name, const char *protocol)
{
	return purple_accounts_find_ext(name, protocol, purple_account_is_connected);
}