1 #include "module.h" 2 3 MODULE = Purple::Pounce PACKAGE = Purple::Pounce PREFIX = purple_pounce_ 4 PROTOTYPES: ENABLE 5 6 BOOT: 7 { 8 HV *event_stash = gv_stashpv("Purple::Pounce::Event", 1); 9 HV *option_stash = gv_stashpv("Purple::Pounce::Option", 1); 10 11 static const constiv *civ, event_const_iv[] = { 12 #define const_iv(name) {#name, (IV)PURPLE_POUNCE_##name} 13 const_iv(NONE), 14 const_iv(SIGNON), 15 const_iv(SIGNOFF), 16 const_iv(AWAY), 17 const_iv(AWAY_RETURN), 18 const_iv(IDLE), 19 const_iv(IDLE_RETURN), 20 const_iv(TYPING), 21 const_iv(TYPED), 22 const_iv(TYPING_STOPPED), 23 const_iv(MESSAGE_RECEIVED), 24 }; 25 static const constiv option_const_iv[] = { 26 #undef const_iv 27 #define const_iv(name) {#name, (IV)PURPLE_POUNCE_OPTION_##name} 28 const_iv(NONE), 29 const_iv(AWAY), 30 }; 31 32 for (civ = event_const_iv + sizeof(event_const_iv) / sizeof(event_const_iv[0]); civ-- > event_const_iv; ) 33 newCONSTSUB(event_stash, (char *)civ->name, newSViv(civ->iv)); 34 35 for (civ = option_const_iv + sizeof(option_const_iv) / sizeof(option_const_iv[0]); civ-- > option_const_iv; ) 36 newCONSTSUB(option_stash, (char *)civ->name, newSViv(civ->iv)); 37 } 38 39 void 40 purple_pounce_action_register(pounce, name) 41 Purple::Pounce pounce 42 const char *name 43 44 void 45 purple_pounce_destroy(pounce) 46 Purple::Pounce pounce 47 48 void 49 purple_pounce_destroy_all_by_account(account) 50 Purple::Account account 51 52 void * 53 purple_pounce_get_data(pounce) 54 Purple::Pounce pounce 55 56 Purple::PounceEvent 57 purple_pounce_get_events(pounce) 58 Purple::Pounce pounce 59 60 const char * 61 purple_pounce_get_pouncee(pounce) 62 Purple::Pounce pounce 63 64 Purple::Account 65 purple_pounce_get_pouncer(pounce) 66 Purple::Pounce pounce 67 68 gboolean 69 purple_pounce_get_save(pounce) 70 Purple::Pounce pounce 71 72 void 73 purple_pounce_set_data(pounce, data) 74 Purple::Pounce pounce 75 void * data 76 77 void 78 purple_pounce_set_events(pounce, events) 79 Purple::Pounce pounce 80 Purple::PounceEvent events 81 82 void 83 purple_pounce_set_pouncee(pounce, pouncee) 84 Purple::Pounce pounce 85 const char *pouncee 86 87 void 88 purple_pounce_set_pouncer(pounce, pouncer) 89 Purple::Pounce pounce 90 Purple::Account pouncer 91 92 void 93 purple_pounce_set_save(pounce, save) 94 Purple::Pounce pounce 95 gboolean save 96 97 MODULE = Purple::Pounce PACKAGE = Purple::Pounces PREFIX = purple_pounces_ 98 PROTOTYPES: ENABLE 99 100 void 101 purple_pounces_get_all() 102 PREINIT: 103 GList *l; 104 PPCODE: 105 for (l = purple_pounces_get_all(); l != NULL; l = l->next) { 106 XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Pounce"))); 107 } 108 109 void 110 purple_pounces_get_all_for_ui(ui) 111 const char *ui 112 PREINIT: 113 GList *l, *ll; 114 PPCODE: 115 ll = purple_pounces_get_all_for_ui(ui); 116 for (l = ll; l != NULL; l = l->next) { 117 XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Pounce"))); 118 } 119 g_list_free(ll); 120 121 Purple::Handle 122 purple_pounces_get_handle() 123 124 gboolean 125 purple_pounces_load() 126 127 void 128 purple_pounces_unregister_handler(ui) 129 const char *ui 130