Mercurial > pidgin
comparison src/protocols/napster/napster.c @ 3572:bdd0bebd2d04
[gaim-migrate @ 3670]
Phase II. No longer do you have to worry about protocol plugins. When
Gaim probes plugins on load, it will detect protocol plugins and add them
to the list of available protocols. When you try to log an account on with
one of them, Gaim will automatically load the plugin--when no more accounts
need the protocol--Gaim will automatically unload it. Protocol plugins are
no longer available in the plugins ui, and no protocols are compiled statically
by default.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Mon, 30 Sep 2002 01:05:18 +0000 |
parents | 7a3f16a375a5 |
children | 737322cce04b |
comparison
equal
deleted
inserted
replaced
3571:a88c62c5b7da | 3572:bdd0bebd2d04 |
---|---|
61 | 61 |
62 gchar *email; | 62 gchar *email; |
63 GSList *channels; | 63 GSList *channels; |
64 }; | 64 }; |
65 | 65 |
66 static char *nap_name() | |
67 { | |
68 return "Napster"; | |
69 } | |
70 | |
71 | |
72 /* FIXME: Make this use va_arg stuff */ | 66 /* FIXME: Make this use va_arg stuff */ |
73 static void nap_write_packet(struct gaim_connection *gc, unsigned short command, const char *message) | 67 static void nap_write_packet(struct gaim_connection *gc, unsigned short command, const char *message) |
74 { | 68 { |
75 struct nap_data *ndata = (struct nap_data *)gc->proto_data; | 69 struct nap_data *ndata = (struct nap_data *)gc->proto_data; |
76 unsigned short size; | 70 unsigned short size; |
548 nap_write_packet(gc, 0xd0, (char *)buddies->data); | 542 nap_write_packet(gc, 0xd0, (char *)buddies->data); |
549 buddies = buddies -> next; | 543 buddies = buddies -> next; |
550 } | 544 } |
551 } | 545 } |
552 | 546 |
553 | 547 static char** nap_list_icon(int uc) |
554 static GList *nap_user_opts() | 548 { |
555 { | 549 return napster_xpm; |
556 GList *m = NULL; | 550 } |
551 | |
552 static struct prpl *my_protocol = NULL; | |
553 | |
554 void napster_init(struct prpl *ret) | |
555 { | |
557 struct proto_user_opt *puo; | 556 struct proto_user_opt *puo; |
558 | 557 ret->add_buddies = nap_add_buddies; |
559 puo = g_new0(struct proto_user_opt, 1); | 558 ret->remove_buddy = nap_remove_buddy; |
560 puo->label = "Server:"; | 559 ret->add_permit = NULL; |
561 puo->def = NAP_SERVER; | 560 ret->rem_permit = NULL; |
562 puo->pos = USEROPT_NAPSERVER; | 561 ret->add_deny = NULL; |
563 m = g_list_append(m, puo); | 562 ret->rem_deny = NULL; |
564 | 563 ret->warn = NULL; |
565 puo = g_new0(struct proto_user_opt, 1); | 564 ret->chat_info = nap_chat_info; |
566 puo->label = "Port:"; | 565 ret->join_chat = nap_join_chat; |
567 puo->def = "8888"; | 566 ret->chat_invite = NULL; |
568 puo->pos = USEROPT_NAPPORT; | 567 ret->chat_leave = nap_chat_leave; |
569 m = g_list_append(m, puo); | 568 ret->chat_whisper = NULL; |
570 | 569 ret->chat_send = nap_chat_send; |
571 return m; | 570 ret->keepalive = NULL; |
572 } | |
573 | |
574 static char** nap_list_icon(int uc) | |
575 { | |
576 return napster_xpm; | |
577 } | |
578 | |
579 static struct prpl *my_protocol = NULL; | |
580 | |
581 void napster_init(struct prpl *ret) | |
582 { | |
583 ret->protocol = PROTO_NAPSTER; | 571 ret->protocol = PROTO_NAPSTER; |
584 ret->name = nap_name; | 572 ret->name = g_strdup("Napster"); |
585 ret->list_icon = nap_list_icon; | 573 ret->list_icon = nap_list_icon; |
586 ret->user_opts = nap_user_opts; | |
587 ret->login = nap_login; | 574 ret->login = nap_login; |
588 ret->close = nap_close; | 575 ret->close = nap_close; |
589 ret->send_im = nap_send_im; | 576 ret->send_im = nap_send_im; |
590 ret->set_info = NULL; | 577 ret->set_info = NULL; |
591 ret->get_info = NULL; | 578 ret->get_info = NULL; |
609 ret->chat_leave = nap_chat_leave; | 596 ret->chat_leave = nap_chat_leave; |
610 ret->chat_whisper = NULL; | 597 ret->chat_whisper = NULL; |
611 ret->chat_send = nap_chat_send; | 598 ret->chat_send = nap_chat_send; |
612 ret->keepalive = NULL; | 599 ret->keepalive = NULL; |
613 | 600 |
601 puo = g_new0(struct proto_user_opt, 1); | |
602 puo->label = g_strdup("Server:"); | |
603 puo->def = g_strdup(NAP_SERVER); | |
604 puo->pos = USEROPT_NAPSERVER; | |
605 ret->user_opts = g_list_append(ret->user_opts, puo); | |
606 | |
607 puo = g_new0(struct proto_user_opt, 1); | |
608 puo->label = g_strdup("Port:"); | |
609 puo->def = g_strdup("8888"); | |
610 puo->pos = USEROPT_NAPPORT; | |
611 ret->user_opts = g_list_append(ret->user_opts, puo); | |
612 | |
614 my_protocol = ret; | 613 my_protocol = ret; |
615 } | 614 } |
616 | 615 |
617 #ifndef STATIC | 616 #ifndef STATIC |
618 | 617 |
619 char *gaim_plugin_init(GModule * handle) | 618 void *gaim_prpl_init(struct prpl *prpl) |
620 { | 619 { |
621 load_protocol(napster_init, sizeof(struct prpl)); | 620 napster_init(prpl); |
622 return NULL; | 621 prpl->plug->desc.api_version = PLUGIN_API_VERSION; |
623 } | 622 } |
624 | |
625 void gaim_plugin_remove() | |
626 { | |
627 struct prpl *p = find_prpl(PROTO_NAPSTER); | |
628 if (p == my_protocol) | |
629 unload_protocol(p); | |
630 } | |
631 | |
632 char *name() | |
633 { | |
634 return "Napster"; | |
635 } | |
636 | |
637 char *description() | |
638 { | |
639 return PRPL_DESC("Napster"); | |
640 } | |
641 | |
642 #endif | 623 #endif |