comparison src/ft.c @ 11281:920a37a4c1be

[gaim-migrate @ 13478] Patch from Sadrul Habib Chowdhury, with a bit of hacking from me, to add file transfer signals committer: Tailor Script <tailor@pidgin.im>
author Gary Kramlich <grim@reaperworld.com>
date Tue, 16 Aug 2005 20:44:27 +0000
parents 64e2c65ef650
children 17142948653e
comparison
equal deleted inserted replaced
11280:65658ff2deb8 11281:920a37a4c1be
108 static void 108 static void
109 gaim_xfer_set_status(GaimXfer *xfer, GaimXferStatusType status) 109 gaim_xfer_set_status(GaimXfer *xfer, GaimXferStatusType status)
110 { 110 {
111 g_return_if_fail(xfer != NULL); 111 g_return_if_fail(xfer != NULL);
112 112
113 if(xfer->type == GAIM_XFER_SEND) {
114 switch(status) {
115 case GAIM_XFER_STATUS_ACCEPTED:
116 gaim_signal_emit(gaim_xfers_get_handle(), "file-send-accept", xfer);
117 break;
118 case GAIM_XFER_STATUS_STARTED:
119 gaim_signal_emit(gaim_xfers_get_handle(), "file-send-start", xfer);
120 break;
121 case GAIM_XFER_STATUS_DONE:
122 gaim_signal_emit(gaim_xfers_get_handle(), "file-send-complete", xfer);
123 break;
124 case GAIM_XFER_STATUS_CANCEL_LOCAL:
125 case GAIM_XFER_STATUS_CANCEL_REMOTE:
126 gaim_signal_emit(gaim_xfers_get_handle(), "file-send-cancel", xfer);
127 break;
128 default:
129 break;
130 }
131 } else if(xfer->type == GAIM_XFER_RECEIVE) {
132 switch(status) {
133 case GAIM_XFER_STATUS_ACCEPTED:
134 gaim_signal_emit(gaim_xfers_get_handle(), "file-recv-accept", xfer);
135 break;
136 case GAIM_XFER_STATUS_STARTED:
137 gaim_signal_emit(gaim_xfers_get_handle(), "file-recv-start", xfer);
138 break;
139 case GAIM_XFER_STATUS_DONE:
140 gaim_signal_emit(gaim_xfers_get_handle(), "file-recv-complete", xfer);
141 break;
142 case GAIM_XFER_STATUS_CANCEL_LOCAL:
143 case GAIM_XFER_STATUS_CANCEL_REMOTE:
144 gaim_signal_emit(gaim_xfers_get_handle(), "file-recv-cancel", xfer);
145 break;
146 default:
147 break;
148 }
149 }
150
113 xfer->status = status; 151 xfer->status = status;
114 } 152 }
115 153
116 void gaim_xfer_conversation_write(GaimXfer *xfer, char *message, gboolean is_error) 154 void gaim_xfer_conversation_write(GaimXfer *xfer, char *message, gboolean is_error)
117 { 155 {
1101 1139
1102 1140
1103 /************************************************************************** 1141 /**************************************************************************
1104 * File Transfer Subsystem API 1142 * File Transfer Subsystem API
1105 **************************************************************************/ 1143 **************************************************************************/
1106 1144 void *
1107 void 1145 gaim_xfers_get_handle(void) {
1108 gaim_xfers_set_ui_ops(GaimXferUiOps *ops) 1146 static int handle = 0;
1109 { 1147
1148 return &handle;
1149 }
1150
1151 void
1152 gaim_xfers_init(void) {
1153 void *handle = gaim_xfers_get_handle();
1154
1155 /* register signals */
1156 gaim_signal_register(handle, "file-recv-accept",
1157 gaim_marshal_VOID__POINTER,
1158 NULL, 1,
1159 gaim_value_new(GAIM_TYPE_POINTER));
1160 gaim_signal_register(handle, "file-send-accept",
1161 gaim_marshal_VOID__POINTER,
1162 NULL, 1,
1163 gaim_value_new(GAIM_TYPE_POINTER));
1164 gaim_signal_register(handle, "file-recv-start",
1165 gaim_marshal_VOID__POINTER,
1166 NULL, 1,
1167 gaim_value_new(GAIM_TYPE_POINTER));
1168 gaim_signal_register(handle, "file-send-start",
1169 gaim_marshal_VOID__POINTER,
1170 NULL, 1,
1171 gaim_value_new(GAIM_TYPE_POINTER));
1172 gaim_signal_register(handle, "file-send-cancel",
1173 gaim_marshal_VOID__POINTER,
1174 NULL, 1,
1175 gaim_value_new(GAIM_TYPE_POINTER));
1176 gaim_signal_register(handle, "file-recv-cancel",
1177 gaim_marshal_VOID__POINTER,
1178 NULL, 1,
1179 gaim_value_new(GAIM_TYPE_POINTER));
1180 gaim_signal_register(handle, "file-send-complete",
1181 gaim_marshal_VOID__POINTER,
1182 NULL, 1,
1183 gaim_value_new(GAIM_TYPE_POINTER));
1184 gaim_signal_register(handle, "file-recv-complete",
1185 gaim_marshal_VOID__POINTER,
1186 NULL, 1,
1187 gaim_value_new(GAIM_TYPE_POINTER));
1188 }
1189
1190 void
1191 gaim_xfers_uninit(void) {
1192 gaim_signals_disconnect_by_handle(gaim_xfers_get_handle());
1193 }
1194
1195 void
1196 gaim_xfers_set_ui_ops(GaimXferUiOps *ops) {
1110 xfer_ui_ops = ops; 1197 xfer_ui_ops = ops;
1111 } 1198 }
1112 1199
1113 GaimXferUiOps * 1200 GaimXferUiOps *
1114 gaim_xfers_get_ui_ops(void) 1201 gaim_xfers_get_ui_ops(void) {
1115 {
1116 return xfer_ui_ops; 1202 return xfer_ui_ops;
1117 } 1203 }