/** * 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); }
/** * 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); }
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; }
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; }
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; }