Mercurial > pidgin
comparison libpurple/protocols/yahoo/yahoo_doodle.c @ 32004:39d69f5bf146
Use the new accessor functions of PidginWhiteboard.
author | andrew.victor@mxit.com |
---|---|
date | Tue, 30 Aug 2011 22:07:19 +0000 |
parents | d5ddf2d1ee04 |
children | 2ec94166be43 |
comparison
equal
deleted
inserted
replaced
32003:2bf260b86086 | 32004:39d69f5bf146 |
---|---|
187 wb = purple_whiteboard_get_session(account, from); | 187 wb = purple_whiteboard_get_session(account, from); |
188 | 188 |
189 if(wb == NULL) | 189 if(wb == NULL) |
190 return; | 190 return; |
191 | 191 |
192 if(wb->state == DOODLE_STATE_REQUESTING) | 192 if(purple_whiteboard_get_state(wb) == DOODLE_STATE_REQUESTING) |
193 { | 193 { |
194 doodle_session *ds = purple_whiteboard_get_protocol_data(wb); | 194 doodle_session *ds = purple_whiteboard_get_protocol_data(wb); |
195 purple_whiteboard_start(wb); | 195 purple_whiteboard_start(wb); |
196 | 196 |
197 wb->state = DOODLE_STATE_ESTABLISHED; | 197 purple_whiteboard_set_state(wb, DOODLE_STATE_ESTABLISHED); |
198 | 198 |
199 yahoo_doodle_command_send_confirm(gc, from, imv_key); | 199 yahoo_doodle_command_send_confirm(gc, from, imv_key); |
200 /* Let's steal the imv_key and reuse it */ | 200 /* Let's steal the imv_key and reuse it */ |
201 g_free(ds->imv_key); | 201 g_free(ds->imv_key); |
202 ds->imv_key = g_strdup(imv_key); | 202 ds->imv_key = g_strdup(imv_key); |
203 } | 203 } |
204 else if(wb->state == DOODLE_STATE_ESTABLISHED) | 204 else if(purple_whiteboard_get_state(wb) == DOODLE_STATE_ESTABLISHED) |
205 { | 205 { |
206 /* TODO Ask whether to save picture too */ | 206 /* TODO Ask whether to save picture too */ |
207 purple_whiteboard_clear(wb); | 207 purple_whiteboard_clear(wb); |
208 } | 208 } |
209 | 209 |
210 /* NOTE Not sure about this... I am trying to handle if the remote user | 210 /* NOTE Not sure about this... I am trying to handle if the remote user |
211 * already thinks we're in a session with them (when their chat message | 211 * already thinks we're in a session with them (when their chat message |
212 * contains the doodle imv key) | 212 * contains the doodle imv key) |
213 */ | 213 */ |
214 else if(wb->state == DOODLE_STATE_REQUESTED) | 214 else if(purple_whiteboard_get_state(wb) == DOODLE_STATE_REQUESTED) |
215 { | 215 { |
216 /* purple_whiteboard_start(wb); */ | 216 /* purple_whiteboard_start(wb); */ |
217 yahoo_doodle_command_send_ready(gc, from, imv_key); | 217 yahoo_doodle_command_send_ready(gc, from, imv_key); |
218 } | 218 } |
219 } | 219 } |
290 wb = purple_whiteboard_get_session(account, from); | 290 wb = purple_whiteboard_get_session(account, from); |
291 | 291 |
292 if(wb == NULL) | 292 if(wb == NULL) |
293 return; | 293 return; |
294 | 294 |
295 if(wb->state == DOODLE_STATE_ESTABLISHED) | 295 if(purple_whiteboard_get_state(wb) == DOODLE_STATE_ESTABLISHED) |
296 { | 296 { |
297 /* TODO Ask user whether to save the image before clearing it */ | 297 /* TODO Ask user whether to save the image before clearing it */ |
298 | 298 |
299 purple_whiteboard_clear(wb); | 299 purple_whiteboard_clear(wb); |
300 } | 300 } |
331 return; | 331 return; |
332 | 332 |
333 /* TODO Combine the following IF's? */ | 333 /* TODO Combine the following IF's? */ |
334 | 334 |
335 /* Check if we requested a doodle session */ | 335 /* Check if we requested a doodle session */ |
336 /*if(wb->state == DOODLE_STATE_REQUESTING) | 336 /*if(purple_whiteboard_get_state(wb) == DOODLE_STATE_REQUESTING) |
337 { | 337 { |
338 wb->state = DOODLE_STATE_ESTABLISHED; | 338 purple_whiteboard_set_state(wb, DOODLE_STATE_ESTABLISHED); |
339 | 339 |
340 purple_whiteboard_start(wb); | 340 purple_whiteboard_start(wb); |
341 | 341 |
342 yahoo_doodle_command_send_confirm(gc, from); | 342 yahoo_doodle_command_send_confirm(gc, from); |
343 }*/ | 343 }*/ |
344 | 344 |
345 /* Check if we accepted a request for a doodle session */ | 345 /* Check if we accepted a request for a doodle session */ |
346 if(wb->state == DOODLE_STATE_REQUESTED) | 346 if(purple_whiteboard_get_state(wb) == DOODLE_STATE_REQUESTED) |
347 { | 347 { |
348 wb->state = DOODLE_STATE_ESTABLISHED; | 348 purple_whiteboard_set_state(wb, DOODLE_STATE_ESTABLISHED); |
349 | 349 |
350 purple_whiteboard_start(wb); | 350 purple_whiteboard_start(wb); |
351 } | 351 } |
352 } | 352 } |
353 | 353 |
370 if(wb == NULL) | 370 if(wb == NULL) |
371 return; | 371 return; |
372 | 372 |
373 /* TODO Ask if user wants to save picture before the session is closed */ | 373 /* TODO Ask if user wants to save picture before the session is closed */ |
374 | 374 |
375 wb->state = DOODLE_STATE_CANCELLED; | 375 purple_whiteboard_set_state(wb, DOODLE_STATE_CANCELLED); |
376 purple_whiteboard_destroy(wb); | 376 purple_whiteboard_destroy(wb); |
377 } | 377 } |
378 | 378 |
379 static void yahoo_doodle_command_send_generic(const char *type, | 379 static void yahoo_doodle_command_send_generic(const char *type, |
380 PurpleConnection *gc, | 380 PurpleConnection *gc, |
453 purple_whiteboard_set_protocol_data(wb, ds); | 453 purple_whiteboard_set_protocol_data(wb, ds); |
454 } | 454 } |
455 | 455 |
456 void yahoo_doodle_end(PurpleWhiteboard *wb) | 456 void yahoo_doodle_end(PurpleWhiteboard *wb) |
457 { | 457 { |
458 PurpleConnection *gc = purple_account_get_connection(wb->account); | 458 PurpleAccount *account = purple_whiteboard_get_account(wb); |
459 PurpleConnection *gc = purple_account_get_connection(account); | |
459 doodle_session *ds = purple_whiteboard_get_protocol_data(wb); | 460 doodle_session *ds = purple_whiteboard_get_protocol_data(wb); |
460 | 461 |
461 /* g_debug_debug("yahoo", "doodle: yahoo_doodle_end()\n"); */ | 462 /* g_debug_debug("yahoo", "doodle: yahoo_doodle_end()\n"); */ |
462 | 463 |
463 if (gc && wb->state != DOODLE_STATE_CANCELLED) | 464 if (gc && (purple_whiteboard_get_state(wb) != DOODLE_STATE_CANCELLED)) |
464 yahoo_doodle_command_send_shutdown(gc, wb->who); | 465 yahoo_doodle_command_send_shutdown(gc, purple_whiteboard_get_who(wb)); |
465 | 466 |
466 g_free(ds->imv_key); | 467 g_free(ds->imv_key); |
467 g_free(ds); | 468 g_free(ds); |
468 purple_whiteboard_set_protocol_data(wb, NULL); | 469 purple_whiteboard_set_protocol_data(wb, NULL); |
469 } | 470 } |
493 return g_string_free(message, FALSE); | 494 return g_string_free(message, FALSE); |
494 } | 495 } |
495 | 496 |
496 void yahoo_doodle_send_draw_list(PurpleWhiteboard *wb, GList *draw_list) | 497 void yahoo_doodle_send_draw_list(PurpleWhiteboard *wb, GList *draw_list) |
497 { | 498 { |
499 PurpleAccount *account = purple_whiteboard_get_account(wb); | |
500 PurpleConnection *gc = purple_account_get_connection(account); | |
498 doodle_session *ds = purple_whiteboard_get_protocol_data(wb); | 501 doodle_session *ds = purple_whiteboard_get_protocol_data(wb); |
499 char *message; | 502 char *message; |
500 | 503 |
501 g_return_if_fail(draw_list != NULL); | 504 g_return_if_fail(draw_list != NULL); |
502 | 505 |
503 message = yahoo_doodle_build_draw_string(ds, draw_list); | 506 message = yahoo_doodle_build_draw_string(ds, draw_list); |
504 yahoo_doodle_command_send_draw(wb->account->gc, wb->who, message, ds->imv_key); | 507 yahoo_doodle_command_send_draw(gc, purple_whiteboard_get_who(wb), message, ds->imv_key); |
505 g_free(message); | 508 g_free(message); |
506 } | 509 } |
507 | 510 |
508 void yahoo_doodle_clear(PurpleWhiteboard *wb) | 511 void yahoo_doodle_clear(PurpleWhiteboard *wb) |
509 { | 512 { |
513 PurpleAccount *account = purple_whiteboard_get_account(wb); | |
514 PurpleConnection *gc = purple_account_get_connection(account); | |
510 doodle_session *ds = purple_whiteboard_get_protocol_data(wb); | 515 doodle_session *ds = purple_whiteboard_get_protocol_data(wb); |
511 yahoo_doodle_command_send_clear(wb->account->gc, wb->who, ds->imv_key); | 516 |
517 yahoo_doodle_command_send_clear(gc, purple_whiteboard_get_who(wb), ds->imv_key); | |
512 } | 518 } |
513 | 519 |
514 | 520 |
515 /* Traverse through the list and draw the points and lines */ | 521 /* Traverse through the list and draw the points and lines */ |
516 void yahoo_doodle_draw_stroke(PurpleWhiteboard *wb, GList *draw_list) | 522 void yahoo_doodle_draw_stroke(PurpleWhiteboard *wb, GList *draw_list) |