comparison pidgin-audacious.c @ 29:c1e5ff55f1b4 default tip

now /song command can be followed by plain text message.
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 23 Oct 2009 01:37:07 +0900
parents 72c95262fd1b
children
comparison
equal deleted inserted replaced
28:72c95262fd1b 29:c1e5ff55f1b4
504 { 504 {
505 gchar *song = NULL, *tmp = NULL, *tmp2 = NULL; 505 gchar *song = NULL, *tmp = NULL, *tmp2 = NULL;
506 PurpleConversationType type = purple_conversation_get_type(conv); 506 PurpleConversationType type = purple_conversation_get_type(conv);
507 size_t dummy; 507 size_t dummy;
508 const gchar *template = NULL; 508 const gchar *template = NULL;
509 gchar *msg;
509 510
510 /* audacious isn't playing */ 511 /* audacious isn't playing */
511 if(!is_app_playing()) { 512 if(!is_app_playing()) {
512 return PURPLE_CMD_RET_OK; 513 return PURPLE_CMD_RET_OK;
513 } 514 }
538 } 539 }
539 else 540 else
540 song = tmp2; 541 song = tmp2;
541 } 542 }
542 543
544 if(*args) {
545 msg = g_strdup_printf("%s %s", song, *args);
546 g_free(song);
547 }
548 else {
549 msg = song;
550 }
551
543 if(type == PURPLE_CONV_TYPE_CHAT) { 552 if(type == PURPLE_CONV_TYPE_CHAT) {
544 PurpleConvChat *chat = purple_conversation_get_chat_data(conv); 553 PurpleConvChat *chat = purple_conversation_get_chat_data(conv);
545 if (chat && song) 554 if (chat && msg)
546 purple_conv_chat_send(chat, song); 555 purple_conv_chat_send(chat, msg);
547 } 556 }
548 else if(type == PURPLE_CONV_TYPE_IM) { 557 else if(type == PURPLE_CONV_TYPE_IM) {
549 PurpleConvIm *im = purple_conversation_get_im_data(conv); 558 PurpleConvIm *im = purple_conversation_get_im_data(conv);
550 if(im && song) 559 if(im && msg)
551 purple_conv_im_send(im, song); 560 purple_conv_im_send(im, msg);
552 } 561 }
553 562
554 g_free(song); 563 g_free(msg);
555 return PURPLE_CMD_RET_OK; 564 return PURPLE_CMD_RET_OK;
556 } 565 }
557 566
558 static gboolean 567 static gboolean
559 is_app_playing(void) 568 is_app_playing(void)
718 /* clear status */ 727 /* clear status */
719 status_signal_cb(NULL, -1, NULL); 728 status_signal_cb(NULL, -1, NULL);
720 729
721 /* register /song command */ 730 /* register /song command */
722 cmdid_paste_current_song = 731 cmdid_paste_current_song =
723 purple_cmd_register("song", "", PURPLE_CMD_P_DEFAULT, 732 purple_cmd_register("song", "s", PURPLE_CMD_P_DEFAULT,
724 PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT, 733 PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT |
734 PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS,
725 NULL, paste_current_song, 735 NULL, paste_current_song,
726 "song: Paste currently plaing song", NULL); 736 "song: Paste currently plaing song", NULL);
727 737
728 return TRUE; 738 return TRUE;
729 } 739 }