Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

main.c File Reference

#include <gtk/gtk.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <glade/glade.h>
#include <string.h>
#include "commands.h"

Include dependency graph for main.c:

Go to the source code of this file.

Functions

void sigpipe_clear (void)
int sigpipe_get (void)
static void sigpipe_handler (int value)
static void sigusr2_handler (int value)
int main (int argc, char *argv[])
 Segmentation fault handler.

Variables

GtkWidget * main_window
GladeXML * magick_glade
GladeXML * kino_glade
char * g_help_language
static int sigpipe = 0


Function Documentation

int main int  argc,
char *  argv[]
 

Segmentation fault handler.

This handler unwinds the stack and prints the stackframes.

Definition at line 110 of file main.c.

References bulkLoad(), g_help_language, kino2raw(), kino_glade, kinoInitialise(), kinoPostInit(), magick_glade, main_window, sigpipe_handler(), and sigusr2_handler().

00111 {
00112     if ( strstr( argv[0], "kino2raw" ) )
00113     {
00114         if ( argc > 1 )
00115             exit( kino2raw( argv[1], argc > 2 ? argv[2] : NULL ) );
00116         else
00117             exit( 1 );
00118     }
00119 #ifdef ENABLE_NLS
00120     bindtextdomain ( PACKAGE, DATADIR "/locale" );
00121     bind_textdomain_codeset( PACKAGE, "UTF-8" );
00122     textdomain ( PACKAGE );
00123 #endif
00124 
00125     signal( SIGPIPE, sigpipe_handler );
00126     signal( SIGUSR2, sigusr2_handler );
00127 #ifdef HAVE_EXECINFO_H
00128     signal( SIGSEGV,  sigsegv_handler );
00129 #endif
00130 
00131     g_help_language = strdup( "\0\0" );
00132 #ifdef HELP_LINGUAS
00133     gchar** translations = g_strsplit( HELP_LINGUAS, " ", 0 );
00134     const gchar* const * locales = g_get_language_names();
00135     int i, j;
00136     for ( i = 0; translations[i] && !g_help_language[0]; ++i )
00137     {
00138         for ( j = 0; locales[j]; ++j )
00139         {
00140             gchar** parts = g_strsplit_set( locales[j], "._", 0 );
00141             if ( parts[0] && strncmp( parts[0], translations[i], 2 ) == 0 )
00142             {
00143                 strncpy( g_help_language, parts[0], 2 );
00144                 g_strfreev( parts );
00145                 break;
00146             }
00147             g_strfreev( parts );
00148         }
00149     }
00150     g_strfreev( translations );
00151 #endif
00152     if ( !g_help_language[0] )
00153         strncpy( g_help_language, "en", 2 );
00154     fprintf( stderr, "> help language code %s\n", g_help_language);
00155 
00156     g_thread_init( NULL );
00157     gdk_threads_init();
00158     gdk_rgb_init();
00159     gtk_init( &argc, &argv );
00160     glade_init();
00161 
00162     magick_glade = glade_xml_new( DATADIR "/kino/magick.glade", NULL, NULL );
00163     kino_glade = glade_xml_new( DATADIR "/kino/kino.glade", NULL, NULL );
00164     glade_xml_signal_autoconnect( magick_glade );
00165     glade_xml_signal_autoconnect( kino_glade );
00166     main_window = glade_xml_get_widget( kino_glade, "main_window" );
00167     gtk_widget_set_events( main_window, GDK_KEY_RELEASE_MASK );
00168     gtk_window_set_default_icon_from_file( DATADIR "/kino/kino.png", NULL );
00169 
00170     kinoInitialise( main_window );
00171     gtk_widget_show_all( main_window );
00172     kinoPostInit();
00173 
00174     gdk_threads_enter();
00175     bulkLoad( argc, argv );
00176     gtk_main();
00177     gdk_threads_leave();
00178     free( g_help_language );
00179 
00180     return 0;
00181 }

void sigpipe_clear void   ) 
 

int sigpipe_get void   ) 
 

static void sigpipe_handler int  value  )  [static]
 

Definition at line 64 of file main.c.

References sigpipe.

Referenced by main().

00065 {
00066     fprintf( stderr, "SIGPIPE Received (%d) - setting indicator\n", value );
00067     sigpipe ++;
00068 }

static void sigusr2_handler int  value  )  [static]
 

Definition at line 70 of file main.c.

References startJogShuttle().

Referenced by main().

00071 {
00072     fprintf( stderr, "SIGUSR2 Received (%d) - scanning for jog/shuttle controllers\n", value );
00073     startJogShuttle();
00074 }


Variable Documentation

char* g_help_language
 

Definition at line 48 of file main.c.

Referenced by main(), and showHelp().

GladeXML* kino_glade
 

Definition at line 47 of file main.c.

Referenced by main().

GladeXML* magick_glade
 

Definition at line 46 of file main.c.

GtkWidget* main_window
 

Definition at line 45 of file main.c.

int sigpipe = 0 [static]
 

Definition at line 50 of file main.c.

Referenced by sigpipe_clear(), sigpipe_get(), and sigpipe_handler().


Generated on Sun Mar 11 22:12:12 2007 for Kino by  doxygen 1.4.2