示例#1
0
/*
  format_change_cb: 
  Callback called when the user selected a new video format
*/
static 
void format_change_cb( GtkWidget *ugtk, unicap_format_t *format, GtkWidget *ugtk_display )
{
   GtkWidget *property_dialog;

   property_dialog = g_object_get_data( G_OBJECT( ugtk_display ), "property_dialog" );
   g_assert( property_dialog );

   unicapgtk_video_display_stop( UNICAPGTK_VIDEO_DISPLAY( ugtk_display ) );
   unicapgtk_video_display_set_format( UNICAPGTK_VIDEO_DISPLAY( ugtk_display ), format );
   unicapgtk_video_display_start( UNICAPGTK_VIDEO_DISPLAY( ugtk_display ) );

   // reset the property dialog since some properties ( eg. frame rate ) might change when the format changes
   unicapgtk_property_dialog_reset( UNICAPGTK_PROPERTY_DIALOG( property_dialog ) );	
}
static void unicapgtk_video_display_destroy( GtkObject *object )
{
   UnicapgtkVideoDisplay *ugtk = UNICAPGTK_VIDEO_DISPLAY( object );

/*    g_object_unref( ugtk->gc ); */
   if( ugtk->capture_running )
   {
      unicapgtk_video_display_stop( ugtk );
   }

   if( ugtk->unicap_handle )
   {
      unicap_close( ugtk->unicap_handle );
      ugtk->unicap_handle = NULL;
   }

   if( ugtk->backend )
   {
      ugtk->backend_destroy( ugtk->backend_data );
      ugtk->backend = NULL;
   }

   GTK_OBJECT_CLASS (parent_class)->destroy (object);
}