Mercurial > audlegacy-plugins
comparison src/aosd/aosd_osd.c @ 907:f20ca9b8cd7d trunk
[svn] aosd: added some more error checking
author | giacomo |
---|---|
date | Sun, 01 Apr 2007 11:36:52 -0700 |
parents | 16e51fb5908e |
children | 8b4b381b4399 |
comparison
equal
deleted
inserted
replaced
906:16e51fb5908e | 907:f20ca9b8cd7d |
---|---|
378 | 378 |
379 | 379 |
380 gint | 380 gint |
381 aosd_osd_display ( gchar * markup_string , aosd_cfg_osd_t * cfg_osd , gboolean copy_cfg ) | 381 aosd_osd_display ( gchar * markup_string , aosd_cfg_osd_t * cfg_osd , gboolean copy_cfg ) |
382 { | 382 { |
383 if ( osd_status == AOSD_STATUS_HIDDEN ) | 383 if ( osd != NULL ) |
384 { | 384 { |
385 aosd_osd_data_alloc( markup_string , cfg_osd , copy_cfg ); | 385 if ( osd_status == AOSD_STATUS_HIDDEN ) |
386 aosd_osd_create(); | 386 { |
387 osd_status = AOSD_STATUS_FADEIN; | 387 aosd_osd_data_alloc( markup_string , cfg_osd , copy_cfg ); |
388 osd_source_id = g_timeout_add_full( G_PRIORITY_DEFAULT_IDLE , AOSD_TIMING , | 388 aosd_osd_create(); |
389 aosd_timer_func , NULL , NULL ); | 389 osd_status = AOSD_STATUS_FADEIN; |
390 osd_source_id = g_timeout_add_full( G_PRIORITY_DEFAULT_IDLE , AOSD_TIMING , | |
391 aosd_timer_func , NULL , NULL ); | |
392 } | |
393 else | |
394 { | |
395 g_source_remove( osd_source_id ); /* remove timer */ | |
396 osd_source_id = 0; | |
397 aosd_osd_hide(); | |
398 aosd_osd_data_free(); | |
399 osd_status = AOSD_STATUS_HIDDEN; | |
400 /* now display new OSD */ | |
401 aosd_osd_data_alloc( markup_string , cfg_osd , copy_cfg ); | |
402 aosd_osd_create(); | |
403 osd_status = AOSD_STATUS_FADEIN; | |
404 osd_source_id = g_timeout_add_full( G_PRIORITY_DEFAULT_IDLE , AOSD_TIMING , | |
405 aosd_timer_func , NULL , NULL ); | |
406 } | |
407 return 0; | |
390 } | 408 } |
391 else | 409 else |
392 { | 410 { |
393 g_source_remove( osd_source_id ); /* remove timer */ | 411 g_warning( "OSD display requested, but no osd object is loaded!\n" ); |
394 osd_source_id = 0; | 412 } |
395 aosd_osd_hide(); | |
396 aosd_osd_data_free(); | |
397 osd_status = AOSD_STATUS_HIDDEN; | |
398 /* now display new OSD */ | |
399 aosd_osd_data_alloc( markup_string , cfg_osd , copy_cfg ); | |
400 aosd_osd_create(); | |
401 osd_status = AOSD_STATUS_FADEIN; | |
402 osd_source_id = g_timeout_add_full( G_PRIORITY_DEFAULT_IDLE , AOSD_TIMING , | |
403 aosd_timer_func , NULL , NULL ); | |
404 } | |
405 return 0; | |
406 } | 413 } |
407 | 414 |
408 | 415 |
409 void | 416 void |
410 aosd_osd_shutdown ( void ) | 417 aosd_osd_shutdown ( void ) |
411 { | 418 { |
412 if (( osd != NULL ) && ( osd_status != AOSD_STATUS_HIDDEN )) /* osd is being displayed */ | 419 if ( osd != NULL ) |
413 { | 420 { |
414 g_source_remove( osd_source_id ); /* remove timer */ | 421 if ( osd_status != AOSD_STATUS_HIDDEN ) /* osd is being displayed */ |
415 osd_source_id = 0; | 422 { |
416 aosd_osd_hide(); | 423 g_source_remove( osd_source_id ); /* remove timer */ |
417 aosd_osd_data_free(); | 424 osd_source_id = 0; |
418 osd_status = AOSD_STATUS_HIDDEN; | 425 aosd_osd_hide(); |
426 aosd_osd_data_free(); | |
427 osd_status = AOSD_STATUS_HIDDEN; | |
428 } | |
429 } | |
430 else | |
431 { | |
432 g_warning( "OSD shutdown requested, but no osd object is loaded!\n" ); | |
419 } | 433 } |
420 return; | 434 return; |
421 } | 435 } |
422 | 436 |
423 | 437 |
429 /* create Ghosd object */ | 443 /* create Ghosd object */ |
430 if ( transparency_mode == AOSD_MISC_TRANSPARENCY_FAKE ) | 444 if ( transparency_mode == AOSD_MISC_TRANSPARENCY_FAKE ) |
431 osd = ghosd_new(); | 445 osd = ghosd_new(); |
432 else | 446 else |
433 osd = ghosd_new_with_argbvisual(); | 447 osd = ghosd_new_with_argbvisual(); |
448 | |
449 if ( osd == NULL ) | |
450 g_warning( "Unable to load osd object; OSD will not work properly!\n" ); | |
434 } | 451 } |
435 return; | 452 return; |
436 } | 453 } |
437 | 454 |
438 | 455 |