コード例 #1
0
ファイル: xmmsv_c2c.c プロジェクト: vdust/xmms2-devel
/**
 * Format a client-to-client message.
 *
 * Messages are dictionaries of the form:\n
 * "sender" : id of the sender client\n
 * "destination" : id of the destination client\n
 * "id" : 0 if the message doesn't expect reply, else a message id\n
 * "payload" : the contents of the message
 *
 * @param sender the id of the sender client
 * @param dest the id of the destination client
 * @param id the id of the message
 * @param payload the contents of the message
 *
 * @return the formatted message
 *
 * @note Increases the refcount of payload.
 */
xmmsv_t *
xmmsv_c2c_message_format (int sender, int dest, int id,
                          xmmsv_t *payload)
{
	xmmsv_ref (payload);
	return xmmsv_build_dict (XMMSV_DICT_ENTRY_INT ("sender", sender),
	                         XMMSV_DICT_ENTRY_INT ("destination", dest),
	                         XMMSV_DICT_ENTRY_INT ("id", id),
	                         XMMSV_DICT_ENTRY ("payload", payload),
	                         XMMSV_DICT_END);
}
コード例 #2
0
ファイル: main.c プロジェクト: chrippa/xmms2
/**
 * This returns the main stats for the server
 */
static xmmsv_t *
xmms_main_client_stats (xmms_object_t *object, xmms_error_t *error)
{
	xmms_main_t *mainobj = (xmms_main_t *) object;
	gint uptime = time (NULL) - mainobj->starttime;

	return xmmsv_build_dict (XMMSV_DICT_ENTRY_STR ("version", XMMS_VERSION),
	                         XMMSV_DICT_ENTRY_INT ("uptime", uptime),
	                         XMMSV_DICT_END);
}
コード例 #3
0
ファイル: playlist.c プロジェクト: dsheeler/xmms2
xmmsv_t *
xmms_playlist_current_pos_msg_new (xmms_playlist_t *playlist,
                                   guint32 pos, const gchar *plname)
{
	gchar *cannonical_name;
	xmmsv_t *dict;

	cannonical_name = xmms_playlist_canonical_name (playlist, plname);

	dict = xmmsv_build_dict (XMMSV_DICT_ENTRY_INT ("position", pos),
	                         XMMSV_DICT_ENTRY_STR ("name", cannonical_name),
	                         XMMSV_DICT_END);

	g_free (cannonical_name);

	return dict;
}
コード例 #4
0
ファイル: main.c プロジェクト: dreamerc/xmms2
static gboolean
xmms_main_client_list_foreach (xmms_plugin_t *plugin, gpointer data)
{
	xmmsv_t *dict;
	GList **list = data;

	dict = xmmsv_build_dict (
	        XMMSV_DICT_ENTRY_STR ("name", xmms_plugin_name_get (plugin)),
	        XMMSV_DICT_ENTRY_STR ("shortname", xmms_plugin_shortname_get (plugin)),
	        XMMSV_DICT_ENTRY_STR ("version", xmms_plugin_version_get (plugin)),
	        XMMSV_DICT_ENTRY_STR ("description", xmms_plugin_description_get (plugin)),
	        XMMSV_DICT_ENTRY_INT ("type", xmms_plugin_type_get (plugin)),
	        XMMSV_DICT_END);

	*list = g_list_prepend (*list, dict);

	return TRUE;
}
コード例 #5
0
ファイル: playlist.c プロジェクト: dsheeler/xmms2
xmmsv_t *
xmms_playlist_changed_msg_new (xmms_playlist_t *playlist,
                               xmms_playlist_changed_actions_t type,
                               xmms_medialib_entry_t id, const gchar *plname)
{
	gchar *cannonical_name;
	xmmsv_t *dict;

	cannonical_name = xmms_playlist_canonical_name (playlist, plname);

	dict = xmmsv_build_dict (XMMSV_DICT_ENTRY_INT ("type", type),
	                         XMMSV_DICT_ENTRY_STR ("name", cannonical_name),
	                         XMMSV_DICT_END);

	g_free (cannonical_name);

	if (id) {
		xmmsv_dict_set_int (dict, "id", id);
	}

	return dict;
}