root/main.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 // Hlavicky
   2 #include <ctype.h>
   3 #include <stdio.h>
   4 #include <stdlib.h>
   5 #include <unistd.h>
   6 #include <gtk/gtk.h>
   7 #include <string.h>
   8 #include <fcntl.h>
   9 #include <time.h>
  10 
  11 // Definice
  12 #define GRAFIKA         0 /**< Volba pro akci - bude spusten GUI */
  13 #define KOMPRESE        1 /**< Volba pro akci - bude spustena komprese */
  14 #define DEKOMPRESE      2 /**< Volba pro akci - bude spustena dekomprese */
  15 #define GUI_FILE        "main.glade" /**< Nazev souboru GUI hlavniho okna */
  16 #define ABOUT_FILE      "about.glade" /**< Nazev souboru GUI About dialogu */
  17 #define VELIKOST_POLE   512 /**< Velikost pole uzlu a stromu */
  18 #define TIMEOUT         200 /**< Interval mereni rychlosti v ms */
  19 #define VELIKOST_BUFF   300 /**< Velikost bufferu pri kodovani dat */
  20 #define VERZE           "v0.3 Raptor 2010" /**< Verze softwaru a nick */
  21 
  22 // Struktury
  23 /**
  24  * \brief Struktura ulzu binarniho stromu
  25  *
  26  * Na zaklade struktury a vztahu uzlu v poli se provadi komprese a dekomptese
  27  */
  28 typedef struct _UZEL {
  29         guchar znak; /**< Znak kodovaneho bytu */
  30         gint cetnost; /**< Cetnost vyskytu uzlu */
  31         gint vetev1; /**< Hierarchicky podrizeny uzel s bitem 1 */
  32         gint vetev2; /**< Hierarchicky podrizeny uzel s bitem 0 */
  33         gint spoj; /**< Hierarchicky nadrizeny uzel */
  34         gchar kod[256]; /**< Textova reprezentace cesty od korene */
  35 } UZEL;
  36 
  37 /**
  38  * \brief Struktura obsahujici pointery na graficke prvky
  39  *
  40  * Pri obsluze GTK callbacku je potreba casto menit vlastnosti jinych prvku,
  41  * promennych a widgetu, nez toho, ktery callback vyvolal. Tato struktura
  42  * obsahuje pointery na vsechny promenne a widgety, se kterymi je treba
  43  * takto pracovat.
  44  */
  45 typedef struct _ChData {
  46         GtkWidget *main_window; /**< Hlavni okno */
  47         GtkWidget *label_info; /**< Informacni label */
  48         GtkWidget *entry_vystup; /**< Pole vyberu vystupniho souboru */
  49         GtkWidget *statusbar; /**< Statusbar */
  50         GtkWidget *f_ch_b; /**< Tlacitko vyberu souboru vstupu */
  51         gchar *f_in; /**< Retezec nazvu vstupniho souboru */
  52         gchar *f_out; /**< Retezec nazvu vystupniho souboru */
  53 } ChData;
  54 
  55 // Globalni promenne
  56 gint vypisy; /**< Uroven debug vypisu */
  57 UZEL pole[VELIKOST_POLE]; /**< Pole uzlu stromu */
  58 glong celk_cetnost; /**< Celkova cetnost vsech znaku souboru */
  59 glong velikost_vstup; /**< Velikost vstupniho souboru */
  60 glong velikost_vystup; /**< Velikost vystupniho souboru */
  61 glong hlavicka; /**< Velikost hlavicky */
  62 glong pocet_znaku; /**< Pocet znaku v souboru */
  63 glong pro_merak; /**< Pro vypocet rychlosti - aktualni hodnota */
  64 glong pro_merak_posledni; /**< Pro vypocet rychlosti - minula hodnota */
  65 glong pro_merak_celkem; /**< Pro vypocet prubehu - celkova hodnota */
  66 gint grafika; /**< Pri nenulove hodnote deaktivuje praci s grafikou */
  67 GThread *thread; /**< Pointer na vlakno (pouzito pri (de)kompresi v GUI */

/* [<][>][^][v][top][bottom][index][help] */