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)