/* 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); }