src/protocols/msn/state.c

changeset 9193
6e76f1367896
parent 8475
3b5687726055
child 9198
e8eb6d5eb9eb
equal deleted inserted replaced
9192:a9b545eb6e4f 9193:6e76f1367896
34 N_("Out To Lunch"), 34 N_("Out To Lunch"),
35 N_("Available"), 35 N_("Available"),
36 N_("Available") 36 N_("Available")
37 }; 37 };
38 38
39 void
40 msn_change_status(MsnSession *session, MsnAwayType state)
41 {
42 MsnCmdProc *cmdproc;
43 MsnUser *user;
44 MsnObject *msnobj;
45 const char *state_text;
46
47 cmdproc = session->notification->cmdproc;
48 user = session->user;
49 state_text = msn_state_get_text(state);
50
51 g_return_if_fail(session != NULL);
52
53 msnobj = msn_user_get_object(user);
54
55 if (msnobj == NULL)
56 {
57 msn_cmdproc_send(cmdproc, "CHG", "%s %d", state_text,
58 MSN_CLIENT_ID);
59 }
60 else
61 {
62 char *msnobj_str;
63
64 msnobj_str = msn_object_to_string(msnobj);
65
66 msn_cmdproc_send(cmdproc, "CHG", "%s %d %s", state_text,
67 MSN_CLIENT_ID, gaim_url_encode(msnobj_str));
68
69 g_free(msnobj_str);
70 }
71 }
72
39 const char * 73 const char *
40 msn_away_get_text(MsnAwayType type) 74 msn_away_get_text(MsnAwayType type)
41 { 75 {
42 g_return_val_if_fail(type <= MSN_HIDDEN, NULL); 76 g_return_val_if_fail(type <= MSN_HIDDEN, NULL);
43 77
44 return _(away_text[type]); 78 return _(away_text[type]);
45 } 79 }
80
81 const char *
82 msn_state_get_text(MsnAwayType state)
83 {
84 static char *status_text[] =
85 { "NLN", "NLN", "BSY", "IDL", "BRB", "AWY", "PHN", "LUN", "HDN", "HDN" };
86
87 return status_text[state];
88 }

mercurial