--- a/libpurple/prpl.c Fri Aug 08 23:34:27 2008 +0000 +++ b/libpurple/prpl.c Sat Aug 09 02:24:38 2008 +0000 @@ -515,3 +515,61 @@ return NULL; } + + + +PurpleMedia * +purple_prpl_initiate_media(PurpleAccount *account, + const char *who, + PurpleMediaStreamType type) +{ +#ifdef USE_VV + PurpleConnection *gc = NULL; + PurplePlugin *prpl = NULL; + PurplePluginProtocolInfo *prpl_info = NULL; + + if (account) + gc = purple_account_get_connection(account); + if (gc) + prpl = purple_connection_get_prpl(gc); + if (prpl) + prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); + + if (prpl_info && prpl_info->initiate_media) { + /* should check that the protocol supports this media type here? */ + return prpl_info->initiate_media(gc, who, type); + } else { + return NULL; + } +#else + return NULL; +#endif +} + +gboolean +purple_prpl_can_do_media(PurpleAccount *account, + const char *who, + PurpleMediaStreamType type) +{ +#ifdef USE_VV + PurpleConnection *gc = NULL; + PurplePlugin *prpl = NULL; + PurplePluginProtocolInfo *prpl_info = NULL; + + if (account) + gc = purple_account_get_connection(account); + if (gc) + prpl = purple_connection_get_prpl(gc); + if (prpl) + prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); + + if (prpl_info && prpl_info->can_do_media) { + return prpl_info->can_do_media(gc, who, type); + } else { + return FALSE; + } +#else + return FALSE; +#endif +} +