Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Informationen des ausgewählten Users.
#31
Hallo,
Vielen Dank für deine Hilfe! Smile
Hier mal der aktuelle Code:
[c]
#ifndef PURPLE_PLUGINS
#define PURPLE_PLUGINS
#endif

#include "internal.h"
#include "tapi.h"
#include "gtkplugin.h"

#include <plugin.h>
#include <version.h>

#include <gtkdebug.h>
#include <gtkutils.h>
#include <request.h>

//Für Debug-Ausgaben. Kann entfernt werden später.
#include <debug.h>

#ifndef _WIN32
static GdkAtom _Cardinal = GDK_NONE;
static GdkAtom _PurpleUnseenCount = GDK_NONE;
#endif

//static guint scan_buddies_timeout_handle;
//static void *(*notify_userinfo_ori)(PurpleConnection *gc, const char *who, PurpleNotifyUserInfo *user_info);
//static PurpleBuddy *current_scanned_buddy;

static void *(*notify_userinfo_ori)(PurpleConnection *gc, const char *who, PurpleNotifyUserInfo *user_info);
//static void *(*birthday_reminder_notify_userinfo)(PurpleConnection *gc, const char *who, PurpleNotifyUserInfo *user_info);

/**
* Diese Methode testet den <b>Anruf</b>.
* Es wird eine Debug-Ausgabe getätigt.
*/
static void test() {
/*
* Die folgende Zeile setzt den Anruf ab. Die anzurufende Telefon-Nummer muss nur noch
* dynamisch ermittelt werden, je nach ausgewähltem User.(TODOSmile
*
*/
// tapiRequestMakeCall("01769974796*", NULL, NULL, NULL);
//Diese Zeile blendet die Buddy-List aus.
purple_blist_set_visible(false);
purple_debug_info("plugin-call-a-buddy", "User wird angerufen.\n");
}

static void *call_a_buddy_notify_userinfo(PurpleConnection *gc, const char *who, PurpleNotifyUserInfo *user_info) {
purple_debug_warning("plugin-call-a-buddy", "In der Funktion ..._notify_userinfo");

/* Info-Fenster unterdrücken */
return NULL;
}

/**
* Hier werden die User-Informationen extrahiert und mit der dadurch gewonnenen
* Telefon-Nummer ein Anruf durchgeführt.
*/
static void call_user(PurpleBlistNode *node) {

PurpleAccount *acc = NULL;
PurpleConnection *gc = NULL;
PurplePlugin *prpl = NULL;
PurplePluginProtocolInfo *prpl_info = NULL;
PurpleNotifyUiOps *ops;

purple_debug_warning("plugin-call-a-buddy", "Variablen wurden initialisiert.\n");

const char *name = NULL;

PurpleBuddy *buddy = (PurpleBuddy*) node;
acc = purple_buddy_get_account(buddy);

purple_debug_warning("plugin-call-a-buddy", "Node Konvertiert und Acc geholt.\n");

gc = acc->gc;
purple_debug_warning("plugin-call-a-buddy", "GC wird geholt.\n");
if(!gc) {
return;
}

prpl = purple_connection_get_prpl(gc);
purple_debug_warning("plugin-call-a-buddy", "Hole Protocol.\n");

if(!prpl) {
return;
}

prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
purple_debug_warning("plugin-call-a-buddy", "Plugin_Protocol_INFO wird geholt. \n");

if(!prpl_info || !prpl_info->get_info) {
return;
}

prpl_info->get_info(gc, name);
purple_debug_warning("plugin-call-a-buddy", "Entsprechende Infos werden ermittelt \n");

ops = purple_notify_get_ui_ops();
purple_debug_warning("plugin-call-a-buddy", "Notify_Get_UI_Ops \n");

notify_userinfo_ori = ops->notify_userinfo;
// purple_debug_warning("plugin-call-a-buddy", (char*)*notify_userinfo_ori);

//Erstellt Funktionszeiger.
ops->notify_userinfo = call_a_buddy_notify_userinfo;
// purple_debug_warning("plugin-call-a-buddy", "Birthday_Reminder_Notify_Userinfo \n");

if(!PURPLE_BLIST_NODE_IS_BUDDY(node)) {
purple_debug_fatal("plugin-call-a-buddy", "Es wird versucht einen Nicht-User anzurufen.\n");
return;
}
test();
}

static void extend_buddy_context_menu(PurpleBlistNode *node, GList **menu) {
PurpleMenuAction *action = NULL;
GList *submenu = NULL;

action = purple_menu_action_new(_("User anrufen."), PURPLE_CALLBACK(call_user), NULL, NULL);
*menu = g_list_append(*menu, action);
}
static gboolean plugin_load(PurplePlugin *plugin) {
purple_signal_connect(purple_blist_get_handle(), "blist-node-extended-menu", plugin, PURPLE_CALLBACK(extend_buddy_context_menu), NULL);
purple_debug_warning("plugin-call-a-buddy", "Plugin_Load\n");
return TRUE;
}

static PurplePluginInfo info = {
PURPLE_PLUGIN_MAGIC, /**<- Magic */
PURPLE_MAJOR_VERSION, /**<- Major Version */
PURPLE_MINOR_VERSION, /**<- Minor Version */
PURPLE_PLUGIN_STANDARD, /**<- Type */
PIDGIN_PLUGIN_TYPE, /**<- UI_Requirements */
0, /**<- Flags */
NULL, /**<- Dependencies */
PURPLE_PRIORITY_DEFAULT, /**<- Priority */

"plugin-call-a-buddy", /**<- ID */
"Call a Buddy", /**<- Name */
"0.1", /**<- Version */
"Call a Buddy via Context-Menu", /**<- Summary */

"Call a Buddy via Context-Menu", /**<- Description */
"James Vornhagen <james.vornhagen@staufenbiel.de", /**<- Author */
"", /**<- Homepage */

plugin_load, /**<- load */
NULL, /**<- unload */
NULL, /**<- destroy */

NULL, /**<- ui_info */
NULL, /**<- extra_info */
NULL, /**<- prefs_info */
NULL, /**<- actions */

NULL, /**<- Reserved for next Versions */
NULL, /**<- Reserved for next Versions */
NULL, /**<- Reserved for next Versions */
NULL /**<- Reserved for next Versions */
};

static void init_plugin(PurplePlugin *plugin) {
purple_debug_warning("plugin-call-a-buddy", "Plugin initialisiert.");
}

PURPLE_INIT_PLUGIN(call_a_buddy, init_plugin, info);
[/c]

Wenn du möchtest, kann ich ihn dir auch als Anhang senden Smile
Zitieren


Nachrichten in diesem Thema
RE: Informationen des ausgewählten Users. - von jamesv1994 - 01.10.2013, 09:02

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste